Indicators were introduced in Ubuntu with version 9.10 and will sooner or later replace the notification area. Some programs like Rhythmbox, Gwibber and Evolution are already using indicators instead of notification icons (at least in Ubuntu).

An indicator is basically an icon in your panel, that tells you something about the state of the program. For example, the messaging indicator turns green when you get an email.

But, you can also interact with the indicator. By clicking on the icon, a menu pops up where you can start playing music, jump to your music player, go to your inbox, quit an application, etc.

Here are two indicators, that are new in Ubuntu 10.04.

Sound Indicator

Me Menu

What’s special about these indicators, is that they have a volume slider and a text entry field. Usually you don’t find that in a menu. That’s cool, they put application functionality into the indicator. No need to locate or open Gwibber to post a new tweet. Just click on the Me Menu, type and hit enter.

Then I made this mockup.


It’s a simple todo list. Yes, there are already a lot of of todo apps, Tasque for example. But these applications are too complicated. You can set a due date, set a colour, group tasks or even create sub tasks. It’s a lot of work to manage your todo list. I want to work on my tasks, not on managing my tasks.

Also, a lot of tasks come from email or your browser. If I get an email that says “Do this”, I don’t copy that email into my todo list. Too much work. Instead, I move it into an email folder, called TODO. If I read something on the internet that leads to something I want to or must do, I use Read it later.

So “Try Lubuntu” in the mockup, actually wouldn’t be in my todo list, because I would save the website in Read it later, or I just download the ISO to my download folder, which also serves as a todo list.

As I made this mockup, I had a simple todo list for basic things in mind. Similar to a Post-it note on your desk, or a shopping list. Quick adding, quick strikethrough. I think an indicator would be perfect for this.

Ok let's code...

As it turns out, the programming part is not as easy as it looks. The menu that pops up, when you click on an indicator, is a GTK Menu. And you can’t put text entry fields or markup-ed text (strikethrough) into a GTK Menu or a GTK MenuItem. You’ll have to build a custom widget.

Because I don’t have a desktop programming background, and I’m new to GTK, I’m still in the process of figuring out how to accomplish this in Python. Any tips or references would be appreciated.

I think it would be great, if there was a library, some sort of GTK extension, that helps an app developer to put widgets like entry fields, sliders, etc into menus. I can imagine a lot of programs would benefit by this.