This specification presents ideas to develop a desktop framework similar to what JuJu does for the web.


A framework that allows users to easily use predefined sets of actions across all aspects of the desktop presents an interesting opportunity to redefine the desktop metaphor.

Such a framework could be extensible for all strata of user experiences; the system level, inter-application, and intra-application.

Users can interface this framework with existing HUD and dash technologies.

Existing knowledge bases can be distilled into predefined sets of actions. This framework would leverage these sets of actions and/or heuristically derived system data to yield the following:

  • simplification of user experience by minimizing computer and application knowledge/experience requirements (i.e. it becomes easier to use)
  • greatly enhance problem solving (i.e. the computer provides smart solutions)
  • users experience enhanced functionality and greater capability at a more rapid rate (i.e. users can do more)

Crowd sourcing sets of actions could be implemented as well. Curation and packaging would be required, but developing an API or application should increase efficiency and quality.

Since Juju and Charms were the catalyst, the blueprint authors denoted the framework 'Vudu' (pronounced as 'voodoo') and the sets of steps as 'Spells'. These terms will be used in later parts of this document for clarity and brevity.

User Stories

Due to the difference in development requirements, the User Stories are subdivided into the three different strata; system, inter-application, and intra-application.

system strata

These use cases will address how users might interact with the operating system.

  1. johnny wants to add a network printer
  2. barbara can't connect to the internet
  3. barton wants to create an magazine for print


These use cases will address how users might interact within a single application .

  1. sachi wants to repetitively retouch photos from a social gathering sharpen, crops, and rotates the images.
  2. Jean-Pierre wants to


These use cases will address how users will interact with the operating system.

  1. Phillipe wants to record his band and needs to start five applications, load templates, and make audio routing connections.
  2. adjoa wants to

Schedule / Visibility

  • sabdfl said this would happen not this cycle (presumably quantal) but next cycle (presumably r-cycle)
  • what is the visibility of this project? i.e. can we blog/post about it?
    • charles profitt said he asked sabdfl and was told we can blog about it
    • should we confirm this again with sabdfl?

Feature Sets

List of suggested features broken down by usage strata.

System Level Features

  • HUD interface
  • default spells package installed by default
  • might use natural language and fuzzy logic
  • heuristically solve problems or determine appropriate solutions
  • might provide list of possible solutions with most probably default selection, user chooses
  • help users solve system level problems
  • might help users install sets of packages to support object/tasks

Inter-application Features

  • dash interface
  • default spells package installed by default
  • users can edit/create spells
  • spells can be crowdsourced
  • help users with repeating actions within single applications

Intra-application Features

  • HUD interface
  • default spells package installed by default
  • users can edit/create spells
  • spells can be crowdsourced
  • defined API or application to assist crowdsourcing spells
  • help users start sets of applications, change appropriate settings, make connections, or copy files
  • help users install sets of packages to support objective/task


  • JuJu/Charms was original inspiration and remains similar, analogous system
  • decided that JuJu/Charms were not appropriate framework to use
  • D-BUS will most likely be used
  • apps probably need patches to expose settings to D-BUS
  • would a Vudu library be useful?
  • the ladish project (in launchpad) is an example of an intra-application strata solution
  • mark-mims said to look at QML to define profiles rather than packages
  • mhall119 said to make sure vudu spells work and translate to tablets, phones, and tvs

Unresolved issues

Highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

Media Ideas


Specs/DesktopJuJu (last edited 2012-06-04 14:22:17 by mhall119)