This page serves as a cauldron where ideas for projects in DeskbarApplet can boil in and mature. If you have any ideas yourself, please add them to the list!
Currently the descriptions are a bit short - use your imagination and fill them out yourself!
If some specific project gather enough momentum it should create it's own subpage like DeskbarApplet/DotIndex.
MikkelKamstrup: There's actually a point to the deskbar.something naming - it makes stuff easier to talk about. Why not just use the WikiLikeNames then? - Short answer: I hate CamelCase. Moreover, look at a name like deskbar.bling it's totally hype! :-D
1. Beyond Brainstorming
A few measures we can take to get past this brainstorming.
If someone (preferably with commit rights - although that's not a must) steps up to the job, he/she notifies the rest of us, and is then considered anchor man
- Add a few deadlines/milestones with preset dates... Fx. Brainstorm, Draft, Implementation, Test, Deploy
2. deskbar.index
Details: [DeskbarApplet/DotIndex]
3. Keywords
- Memory footprint reduction
- Start up time reduction
- Integration with other searchable applications
Create a storage back end for deskbar. A searchable index if you like. This should be a convenience store for handlers doing small time indexing. The index backend should be easily replacable.
Possible backends:
Beagle Metadata Storage (I don't think that branch is merged yet)
- A Python Dict - sorta like what we have now, except it's centralized
A database conforming to the Python DB 2.0 spec
Links:
Notes:
It is worth noting that beagle was started for almost this exact reason, as an indexing backend to dashboard, as a result, it is built almost exactly for this purpose, and it has been designed for the pluggable nature that something like this would require. A little known feature about beagle it that it possesses 'Query Domains' such that deskbar could create its own backend within the beagle infrastructure, and query only the specified domain. Just a note, ask about this integration on the dashboard-hackers e-mail list, and you will get plenty of information
--KevinKubasik
- Python 2.5 contains the sqlite3 module by default. A backend based on that may be a cool thing.
4. deskbar.core
Details: DeskbarApplet/DotCore
5. Keywords
- Completely separate deskbar core from applet functionality
Applet functionality in a class DeskbarApplet subclassing DeskbarUI
DeskbarCore class without notions of applets, UI is very abstract, a console ui should also be possible
Notes: Instead of each app using deskbar having its own instance of a DeskbarCore, the deskbar core could be a singleton exposing a dbus api.
6. deskbar.plug
Details: DeskbarApplet/DotPlug
7. Keywords
- Other apps can integrate deskbar-like features
This depends on the deskbar.core goal. Apps can integrate deskbar instantiating a deskbar core, telling it what handlers to use (possibly app specific), and what ui to use (non applet clause is important here). A view based on gtk.IconView could be useful here.
8. deskbar.bling
Details: DeskbarApplet/DotBling
9. Keywords
gtk 2.10 is compositor aware
- translucency
- shaped windows
- animated windows? Imagine results "unrolling" the window...
Small sample pygtk script using composition here, snatched from a blog entry by Mike Hearn. MacSlow also has an interesting blog entry with some fancy windowing effects, it's implemented in C#, but should be easily portable. There is also an example for dynamically shaped windows available.
10. deskbar.profiling
Details: DeskbarApplet/DotProfiling
11. Keywords
- A profiling framework to detect perfomance regressions
Python 2.5 contains a new profiling toolkit from GSoC. Maybe worth a look?
12. deskbar.test
Details: DeskbarApplet/DotTest
13. Keywords
- Unit testing framework
14. deskbar.usability
Details: DeskbarApplet/DotUsability
15. Keywords
Is deskbar usable?
- Force non-tech friend through a few predefined tasks and see how they fare
16. deskbar.newstuff
Details: DeskbarApplet/PluginManager
17. Keywords
Implement the famous NewStuffManager
- Central repo to get new cool handlers directly from the deskbar prefs
- Update handlers not supported by distros
Add Drag & Drop feature to easily install handlers (like GNOME's theme manager)
There's a lengthy discussion behind the details link.
18. deskbar.ui
Details: DeskbarApplet/DotUI
19. Keywords
- General ui tweaks and
- Allow to "bookmark" results with a keyboard combination
20. deskbar.superapplet
Details: DeskbarApplet/DotSuperApplet
21. Keywords
Deskbar should be the only applet in the panel
We could replicate the functionality of any reasonable applet. The clock applet for instance if we create a handler giving a hit on "time" or "date" showing system time. Maybe a unified "System Info" handler could contain this functionality. Among other replacements we already have the window-switcher handler.
22. deskbar.popup
Details: DeskbarApplet/DotPopup
23. Keywords
- Alt-F2 run dialog replacement
- look in deskbar/ui/window the code is almost ready
We had to scrap popup mode in the last part of the 2.16 cycle. The ui needs some polish, but is mostly done. The biggest problem is that a menu item cannot show the ui - without loading the entire applet that is. Deskbar needs a remote control to be activated by outside events. Did anyone say dbus? Furthermore we have some problems focusing the window without a proper gtk event. The current code also has trouble focusing the ui when the keyboard trigger is fired.
24. deskbar.opensearch
Details: DeskbarApplet/DotOpenSearch
25. Keywords
- New handler capable of querying opensearch interfaces
- Handler dialog with a handful preset togglable opensearch interfaces
- Handler config to allow entering new interface urls
This will allow live queries to be performed on a wide range of search engines - there are 447 registered feeds here, they include pubmed, newyork times, wikipedia, flickr, imdb, just to name a few high rolers.
Resources:
Python lib under Artistic License - is the license a problem.
26. deskbar.deskbug
Details: DeskbarApplet/DotDeskBug
27. Keywords
- New handler capable of evaluating expressions on the deskbar internals
Typing %% deskbar.ui.get_entry().select_region(0,1) would select the first character in the entry (%% is just some random escape char). The possibility to evaluate an expression and get the output in a Zenity dialog should also be available. Fx ## len(deskbar.module_list) would open a window showing the number of availble modules.
This functionality will likely require some restructuring of the deskbar code. Also I don't know if it will be useful anyway... But a cool feature nonetheless :-D
28. deskbar.prefsep
Details: DeskbarApplet/DotPrefSep
29. Keywords
- Split pref dialog into a separate app
Save memory, by not having the entire pref dialog in memory all the time
MikkelKamstrup: I've looked through the module handling code in DeskbarApplet.py an this appears to be easy. As far as I can see the main part that needs to be done is to load handlers into a ModuleList and checking their status via gconf. The code is actually already there, it just needs some refactoring.
MikkelKamstrup: There was done a little testing on this goal and it seemed to only save a tiny bit of memory so it's probably not worth the trouble. It might require some more testing to completely rule it out.
30. deskbar.bugshield
Details: DeskbarApplet/DotBugShield
31. Keywords
- Clearly mark exceptions when they occur in third party handlers so we are not flooded by bugs from those
- More aggressive try/catching. Log errors instead.
- Any old exception appears as a "Crasher", when they often doesn't cause any real problem
Singling out exceptions from 3rd party handlers will require a bit of framework in deskbar, but should not be a massive task. On each release we could just generate a list of shipped handlers and check against that at some proper places...