← Back to team overview

unity-design team mailing list archive

Window quicklists on the launcher application buttons

 

Hi all,

I have been using Unity for about a year and I am still not getting on well with it as a window manager, I used a different alt-tab switcher for a while, but I want to be able to work with the default setup so I have moved back to the totally vanilla unity setup. As I use it all the time for work it is kind of important to me that I can arrange the windows how I want, by raising one particular window of an application to the top of the stack, without raising every other window of that type. I am not sure the alt-tab switcher in unity is going to be fixed, as far as I can make out it is designed that way so that it works well with the gimp multi window UI (which to be fair, it does, at the expense of every other application). Anyhow, so that I could use my desktop, I figured I would have a play with some of the API codes and things that Unity exposes and build a system for focussing on the window I want without stuff I don't want happening. As unity doesn't care which application adds a quicklist to a launcher (any app can tinker with numbers, progress bars and quicklists belonging to any other app) I figured I could write something that adds a quicklist to each launcher icon with the window titles for the app in question and switches to them when selected. It uses dbus to find out what windows there are and wnck to activate the selected window. It listens to dbus signals for adding, removing and renaming windows, and for applications starting and stopping. It seems to work ok mostly, just gets a bit confused if unity crashes. The code is probably a bit rubbish (I only found out about dbus a couple of days ago). You can download the script from
http://people.ubuntu.com/~alanbell/quicklists.py
just run it with "python quicklists.py" and it should add quicklists to your Unity launcher, it runs until ctrl+c and when you interrupt it there will probably be left over quicklist entries scattered all over the place. I think it uses some dbus things that are fairly new in precise, but I couldn't find documentation on when methods were added (in fact the API documentation in general is hard to find) If this is considered generally useful then I would appreciate some help packaging it, rewriting it properly, or ripping the whole thing up and doing it properly in Unity core.

Alan.


Follow ups