Ubuntu Brainstorm is quite nice. I submitted my first idea today:
I had some trouble booting into my computer earlier this week. It’s fixed now, but the Universal Applets release that I promised will be delayed by a few days.
Schnellnavigation: Jump to start of page | Jump to posts | Jump to navigation
For those of you that are trying to follow my Universal Applets development, things are a bit of a mess. There are two forum threads and several emails to several different lists.
To make things a bit easier to follow, I’m going to repost everything of importance on this blog.
This thread on the Awn forum should be used for most discussion.
I’m reposting a shortened version of this email to the Gnome-love list. The bolded bit talks about the project’s current status.
…
I’m trying to fix the problem by creating a universal applets framework for GNOME that’s mostly based on Screenlets. The goal is to create a common applet format that can be easily loaded into any gtk (and even qt) application without forcing the applet developer to give up on specialized applet functionality.
The framework consists of two main parts- Screenlets and ScreenletContainers. Both are written in Python, but can easily be reimplemented in C or in any other language.
Screenlets contain a gtk.Layout. They can pack widgets into the gtk.Layout, draw on it, or do both. Screenlets support theming, editable options (options which save real time and can be edited with a gui), and DBUS services without any extra work on the developers part. They are completely scalable.
ScreenletContainers are responsible for loading and displaying Screenlets. The ScreenletContainer base class implements most of the functions necessary for loading and showing a Screenlet in a generic location. Any application can import the ScreenletContainer class and use it directly (or subclass it) to add on support for Screenlets.
There is a ToplevelContainer class which descends from ScreenletContainer and is responsible for embedding Screenlets in a toplevel window. ToplevelContainer adds on a few extra options for displaying Screenlets. (E.g. “keep above other windows”, “show on all desktops”, “show as a compiz fusion widget”, and so on and so forth.)
Right now, screenlets interact with their containers using hacked legacy code. Eventually, all communication will be done via DBUS and the screenlet will be embedded inside the container using GtkPlugs/Sockets. Dragging a screenlet from the desktop to Awn, Gnome-panel, or Kiba Dock will resize the screenlet and embed it in the dock/panel optionally only showing an icon sized preview.
Due to the way that things are going to be implemented, application developers will be able to wrap parts of their apps inside Screenlets. For example, if you have GIMP running, you’ll be able to pop the ruler screenlet out of GIMP and drag it on to your desktop. When you’re done using it on the desktop, you’ll be able to either dock it in the panel or drag it back into GIMP or even another app like Inkscape.
A few weeks ago I wrote up a post explaining the rationale behind the idea. You can find it here: http://theesylum.com/2008/02
The code is on launchpad here. One or two of the old screenlets may not work due to the major changes I’ve made lately. I’m going to push a revision in a few minutes fixing some of them.
Just to clarify, I’m (currently) the only developer working on this and (at this point) the code is independant of the Screenlets project. If anyone is interested in helping out then please email me.
Natan
I just pushed the first real commit of my branch of Screenlets to Launchpad.
It’s still a regression from the end users perspective. Don’t bother looking at it unless you’re a developer. There’s a slightly longer explanation here.
Quick side note: I really need to write a whole post about GHOP. For now, I’d just like to (publicly) give my thanks to everyone who participated and made it happen. You know who you are, and my email to the GHOP mailing list will have to suffice until I have the time to write a post here.
I’ve created a new branch of Screenlets on Launchpad for Universal Applets. Right now the branch is just the same as trunk, but I’ll be pushing a revision soon.
Here’s a screenshot of how things are looking right now:
See this for an explanation of what Desktop 2.0 is.
Here’s a quick mockup of a Growl-like notifications server for GNOME.
Update: Please see this forum thread for details.
What is “Desktop 2.0?”
“Desktop 2.0″ is to the operating system what Web 2.0 is to the Internet. The following are the key elements of Desktop 2.0 (unless you’re new to Linux, you may want to skip a large part of the following explanation and go directly to here):
Note that many of the above elements often overlap
The following are the GNOME Desktop 2.0 apps that show the most potential:
The Problem
Due to Linux’s open nature, code should be easily reusable and developers should be able to work together and build on each others work. Unfortunately, that’s not at all what’s happening.
A Possible Solution
The logical place to begin coding a Applets Server would be Screenlets. It may make the most sense to split Screenlets (assuming the developers agree, of course) into a core server (like the one mentioned above) and a seperate application that actually draws the Applets/Screenlets on the screen. (I’ll write more about this in a later post, so sorry if it doesn’t make any sense now. The point of this post is to explain the why and not the how.)
Other Conclusions
The Online Desktop, Awn Applets, Screenlets, Gimmie, and Deskbar often overlap. There needs to be more reuse and sharing of code. Universal Applets is only a start.
This article focused only on the GNOME desktop. A comparison to how KDE does things would be interesting. In doing research for this post I ran into KDE Plasmoids. I haven’t tried them yet, but they seem to be a KDE equivalent
Check it out: The original Sim City’s source code has been released under the GPL. I’ll probably give it a look once GHOP is over.
I’ve been doing GHOP tasks for the Gnome Online Desktop. My most recent task was to code an email stock for Bigboard. There’s a snapshot at the bottom of the post.
I’m about to begin working on a new app soon to edit and “remix” fdo iconsets. It’ll be the Linux equivalent of CandyBar. If you’re interested in helping out, leave a comment or just ping me on irc.

Schnellnavigation: Jump to start of page | Jump to posts | Jump to navigation