I'm also planning on playing with the frippery stuff. It's good. There are improvements that can be made which will, with any luck, teach me bits and pieces. I'll document that too.
So here goes. I'm a planner. I like planning out what I'm trying to accomplish. Normally this is done on scraps of paper or, even better, on a whiteboard. It helps me get things straight. So this post isn't going to contain ANY code. Rather, I'm going to put up my notes (though, because it's going on this blog, I've done it up in dia. Funnily enough, I now find it easier to use than Visio).
So the aim is to have an icon in the top left corner, that when it's clicked, brings up something similar to the Ubuntu netbook interface (discontinued just after Ubuntu 10.04). Primarily, it should show applications sorted by category.
Next, I'd like to add favourites back in. And finally, I think it'd be very cool to have a pane showing running applications and perhaps the option to also show information on each (CPU usage, memory usage etc.) in the same style as the rest of the interface.
As part of this interface, but as a separate extension, I want to get rid of the god awful bit that comes up next to the hot corner - the bit that shows the name and partial icon of the current active application and replace it with some sort of window picker. Having to go into a whole other pane or being forced to learn shortcuts (Think about the frustration of using a different OS from what you're used to. Changes in shortcut keys create a barrier to usage in which case, presenting options via the GUI lowers that point of entry). The alternative here is to create a Mac OSX style dock on the left hand side which ONLY shows running applications (rather than favourites as well) and have the favourites in a "quick launcher" style pane next to the "hot corner".
So - to the very beginning: the netbook interface.
This is basically it. The ST library doesn't actually have a VBox and HBox anymore (I'm talking GTK) though it helps to keep thinking in this way. The ST library instead has a Box widget which you can then set as horizontal or vertical.
Normally I would make a class that extends the properties and methods of a box - i.e. each category would be a box which contained an icon and label and an array of applications. And each application would be a box with also contained an icon and a label and also the information needed for launching an application.
There are problems with this approach.
- My first attempt of doing this crashed. The box has to be initialised somehow. This just wasn't working. Accessing any property of the box without initialising it crashed. I'll document what I did here in my next post on this subject.
Request for feedback - is this actually helping anyone out there? Is anyone likely to use any of these extensions when they're finally done?