Taken from the GNOME Wiki
The idea being OMG! is to have a central user awarding system where users collect trophies based on their activities and experience on the desktop environment. e.g:
- For installing "Banshee" the user gets awarded with the "Banshee Discovery Trophy".
- For working with Cheese for 30 minutes the user gets awarded with "Photogenic Trophy".
- For Editing 100 documents using "gedit" the user gets awarded with "Badass Trophy"
OMG! BasicsOMG! is a little daemon. Applications communicate with it over DBus. As an awarding system awards users are awarded with trophies: A trophy consists of:
- ID: String generated automatically from the Title + "-" + Application
- Title: String with the title of the trophy
- Description: String with a more detailed description of WHY the user got the trophy
- Application: String with the path to the application executable
- Timestamp: Integer with a Timestamp of when it was awarded.
- Icon Path: String with the path to the Icon for the Trophy
- Status: A boolean describing if the Trophy is awarded unlocked or is locked until the requirements are fulfilled
- Priority: Integer from 0 - 2 describing how relevantly big the achievement is.
OMG! Simple APIThus the API is very straight forward
- RegisterTrophy (String Title, String Description, String Application, String IconPath, Integer Priority): No Return
- OMG.RegisterTrophy("Welcome Rug", "You ran OMG! for the first time", "application://omg", "", 0)
- AwardTrophy (String Title, String Application): No Return
- MG.AwardTrophy("Welcome Rug", "application://omg" )
- DeleteTrophy (String Title, String Application): No Return
- OMG.DeleteTrophy( "Welcome Rug", "application://omg" )
- GetTrophies ( ): Returns an Array of Trophies (String Title, String Description, String Application, Integer Timestamp, String IconPath, Boolean Status, Integer Priority.
- Applications should have the possibility to register their trophies over DBus and not statically define them upfront
- Applications know most about their activities thus they should hand out the awards and trace the activity of the user or allow Zeitgeist to track it for them
- Awards will be logged by Zeitgeist to have a timeline option around "When did I achieve something"
- More to come...
- bzr branch lp:omg