Unity Window Quicklists

The Unity desktop that the recent releases of Ubuntu uses is kind of nice overall, but there are some specific things that are really hard to do, one of which is finding and focussing on one window of a particular type of application when you may have many other windows of that application you are not interested in. For example, a lot of the time I have three browser windows, a few gedit editors and around ten terminal windows open. When I am doing something I am normally interested in one browser window, one editor and one terminal. If I want to move from the browser to the terminal I am interested in I don’t want the other 9 terminals popping up over the browser, I only want the one that relates to that browser.

What kind of makes sense to me is that you should be able to right click on the things in the launcher and see the list of windows and choose the one you want. Luckily Unity is quite extensible, there are APIs for adding quicklists to the launcher icons and there is enough information kicking about in dbus to find the window names and get callbacks to happen when things get updated like a window title changes or a window gets added or removed.

I put my thoughts together in a little python script, which I have now packaged and put in a PPA (which was harder than it sounds) so if the screenshot makes sense to you and you are running Ubuntu with Unity (2d or 3d) then you can install it with the following commands:

sudo apt-add-repository ppa:alanbell/unity
sudo apt-get update
sudo apt-get install unity-window-quicklists

Then log out and back in again to get a much more usable desktop if you tend to use lots of windows

58 Comments

  • Aleks says:

    That is a very logical way of organizing many open windows. Thanks for the ppa :).

  • Billy says:

    10 terminals and multiple Gedit windows? Your primary problem isn’t Unity’s less-than-optimal window management, it’s that you’re not working smartly enough. You’re wasting too much time and mental energy messing around with point-and-click and window-level interactions.

    You sound like a power user. For terminals you should already be using tmux or screen, or at the very least GNOME Terminal’s tab feature (which seems to have reasonable keybindings). Gedit also allows you to open multiple tabbed documents in a single instance, although serious development demands Vim or Emacs. Streamline your workflow from the bottom up, you won’t be sorry.

    • Alan Bell says:

      No, the problem with my window manager isn’t that I am using too many windows. It is a window manager, that is what is is *for*. tmux is a console based window manager, it is nice, I use byobu a lot, quite a few of my terminal sessions are connecting to byobu windows on various servers. A window manager is for managing windows, I don’t see why I should restrict the number of windows I use and use a terminal based window manager because my GUI window manager makes things harder for me than it needs to be. Anyhow, there is no conflict with the quicklists and other methods of managing your windows, it just adds another way to get to a specific place quickly and easily.

  • Peter says:

    Unable to locate package unity-window-quicklists

  • Dennis A. says:

    Looks great. I will try that and see how doing. I hope to see something like that working native soon 🙂

  • Dennis A. says:

    ow… Don’t work with x64 yet? At least didn’t work for me in Oneiric.

    • Alan Bell says:

      the ppa is only building for Precise, and I don’t think the script works in Oneiric. I am not sure if it is a simple fix or if there just isn’t enough API in Unity in Oneiric.

  • nelf81 says:

    this is the smartest and simplest way to use Unity Window Quicklists. Very good idea but there is just a problem for whom is using 11.10: the application is just for precise.

    Please adapt the application for oneiric as well.

    • Alan Bell says:

      oneiric support would be nice I guess, but in a few weeks Precise will be out and people will be upgrading to the new LTS. I am quite happy to support Oneiric, I might try running it in a VM later to see if all the API bits are there.

  • Kai Mast says:

    Why not just use virtual desktops?

    • Alan Bell says:

      I do, this means I can still see what windows exist on other workspaces and select one and it swooshes over to it and raises it. Works nice.

  • manny says:

    this looks great, but it needs truncating / character limit like in dockbarX.

    i.e:

    http://libertadzero.files.wordpress.com/2009/12/popurri8.jpeg

    http://i649.photobucket.com/albums/uu220/blogwork/101604-1.png

    is it possible right now?

    if not i think will need a feature request for the api.

    hopefully this will get implemented by default, very useful!

    • Alan Bell says:

      interesting, that would be quite possible to do right now, I have kind of a big screen and I like to see the full window title, but it could certainly be done.

      • Guitarzan says:

        I modified the script to truncate the title just by slicing it. If you want the code to how, I can send it to you, just need to know where to send it to.

  • Romain says:

    Do you plan on doing a oneiric version? I installed this (so the precise version) on oneiric but it doesn’t seem to work.

    • Alan Bell says:

      I am not sure all the dbus bits are there and in the same places in Oneiric as they are in Precise. It is quite a simple script, do have a look at it, just open /usr/bin/quicklists in gedit or your favourite editor. Patches are welcome (or will be in a few hours when I put it on Launchpad in bzr

      • Romain says:

        I tried, but I’ve never used these libraries before, so it’s a bit hard.
        Here the output I get when running the script (I added some debug in the init_quicklists() function and changed one line to see exactly where it crashed):

        $ python quicklists.py
        /usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0′ failed
        import gobject._gobject

        type(bamf) =

        dir(bamf) = [‘DeferredMethodClass’, ‘INTROSPECT_STATE_DONT_INTROSPECT’, ‘INTROSPECT_STATE_INTROSPECT_DONE’, ‘INTROSPECT_STATE_INTROSPECT_IN_PROGRESS’, ‘ProxyMethodClass’, ‘_Introspect’, ‘__class__’, ‘__dbus_object_path__’, ‘__delattr__’, ‘__dict__’, ‘__doc__’, ‘__format__’, ‘__getattr__’, ‘__getattribute__’, ‘__hash__’, ‘__init__’, ‘__module__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘__weakref__’, ‘_bus’, ‘_introspect_add_to_queue’, ‘_introspect_block’, ‘_introspect_error_handler’, ‘_introspect_execute_queue’, ‘_introspect_lock’, ‘_introspect_method_map’, ‘_introspect_reply_handler’, ‘_introspect_state’, ‘_named_service’, ‘_pending_introspect’, ‘_pending_introspect_queue’, ‘_requested_bus_name’, ‘bus_name’, ‘connect_to_signal’, ‘get_dbus_method’, ‘object_path’, ‘requested_bus_name’]

        bamf.__dict__ = {‘_requested_bus_name’: ‘org.ayatana.bamf’, ‘_introspect_lock’: , ‘_pending_introspect_queue’: [], ‘__dbus_object_path__’: ‘/org/ayatana/bamf/matcher’, ‘_bus’: , ‘_pending_introspect’: , ‘_introspect_state’: 1, ‘_introspect_method_map’: {}, ‘_named_service’: dbus.UTF8String(‘:1.70′)}

        Traceback (most recent call last):
        File “quicklists.py”, line 114, in
        init_quicklists()
        File “quicklists.py”, line 112, in init_quicklists
        a = bamf.RunningApplicationsDesktopFiles(dbus_interface=’org.ayatana.bamf.matcher’)
        File “/usr/lib/python2.7/dist-packages/dbus/proxies.py”, line 143, in __call__
        **keywords)
        File “/usr/lib/python2.7/dist-packages/dbus/connection.py”, line 630, in call_blocking
        message, timeout)
        dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method “RunningApplicationsDesktopFiles” with signature “” on interface “org.ayatana.bamf.matcher” doesn’t exist

        Hope that helps.

        • Alan Bell says:

          it does help 🙂 so that means that the Bamf Application Matching Framework https://launchpad.net/bamf that is in Oneiric doesn’t have the method I am using to find what applications are running and the locations of their .desktop files. This is a bit of a shame.

          • Romain says:

            I guess I’ll have to wait 6 more weeks then, too bad 🙁
            Thanks for the help.

          • Alan Bell says:

            dive in now 🙂 I have been using Precise as my daily desktop for quite some time, it is kind of like 11.10, but more fixed (mostly)

          • Romain says:

            I’m not really comfortable upgrading to an alpha/beta/rc, but that’s ok, I can wait.

  • Danillo says:

    Wonderful! I had opened a bug about this 6 months ago, but I still have no response: https://bugs.launchpad.net/unity/+bug/817302

    Thank you for that! Cheers!

  • Swarnendu Biswas says:

    Hi,

    I am trying out your package on Precise on a x86_64 system. However, the script doesn’t seem to work. Any suggestions?

    • Doug McMahon says:

      See my 2nd comment below, until this is fixed you can edit the .desktop as noted

      sudo -H gedit /etc/xdg/autostart/unity-window-quicklists.desktop

  • Doug McMahon says:

    Alan- for some reason here, 12.04 beta up, your autostart .desktop will not work with the OnlyShowIn=UNITY; line.
    Also it may be useful to let user see in their autostart with a NoDisplay=false
    (if I take your current .desktop & make it visible it also won’t even show until I remove the above noted line

    On a separate note – I guess this by nature will ‘kill’ off the nautilus bookmark quicklist? If so not the worst thing, though would be nice if reconcilable somehow
    (Here I’ve returned the Bookmarks enyry to the Desktop focus menu, never considered it redundant myself

    • Doug McMahon says:

      It turns out your .desktop line should be OnlyShowIn=Unity;
      Only cap the U

      • Alan Bell says:

        oops, thought I had done that, maybe not in the version that made it to the package. I will update it later.

    • Doug McMahon says:

      Finally – I’ve returned some often used bookmarks to the quicklist with Desktop Action(s) in a local nautilus-home.desktop, using Open for all which then groups them separately from active quicklist entries
      Overall your window-quicklists is working well, there is an very occasional glitch when a window is on a different Ws, doesn’t switch to, just notifies thru launcher icon. Can’t see a pattern yet as most times it works fine on diff. WS’s

      • b3n says:

        did you just say that you fix the Nautilus Bookmark bug? if so, please share. thanks.

        @Alan, this is a great feature. big thanks !

  • […] | The Open Sourcerer AKPC_IDS += "6065,";Popularity: unranked [?] Wikio Wikio Artículos […]

  • […] sudo apt-get install unity-window-quicklistsEnsuite déconnectez vous et reconnectez vous.Source : theopensourcerer.comVous pouvez lire aussi ::Ubuntu 11.04 – Gérer facilement vos quicklists du Launcher […]

  • Sebastián says:

    Great script!!! But can this be done by hovering the mouse over the icon, instead of right clicking?

    • Chris says:

      Yes please! On my notebook its uncomfortable to hit the right mouse button. I won’t use unity without such a feature. Does no one of the unity-users use openoffice with 10-20 windows open? If you have to work with texts and charts this is usual. You can’t use unity with openoffice properly. Its just stupid! Btw: Dockbarx could be an alternative.

  • Colin says:

    This is what I have been looking for, awesome job! I am literally baffled that something like this wasn’t part of the Unity toolbar, it seems like such an important feature.

    Anyone who says you don’t need this, and to change your workflow doesn’t know what they’re talking about. Like you, I keep a lot of terminal windows and browser windows and other types of windows open, and I *NEED* to have a selectable list of those windows available somewhere.

    My 2 cents based on other comments.

    1) I had to do the edit to the .desktop file to change it from UNITY to Unity then it works fine.
    2) I don’t think I would like the request to truncate titles like the other person wanted. I would have to try it out with that option set, but I have a feeling it is important to be able to see the full window title and path to distinguish between the terminals correctly. Especially if you have several terminals open to the same server.
    3) This is getting picky, but I would like a way to have terminal titles sorted by server hostname. This is how it is in the classic gnome toolbar when you group similar windows, then select a window group. I don’t think it alphabetises any other type of window group, but for terminals when you have 20+ it’s amazing being able to quickly find the right one because the hostnames are in alphabetical order.
    4) You mentioned that it lists terminals that are on other desktops, and when you select one it auto-switches workspaces and brings up the window. This didn’t happen for me, when I selected a terminal on another workspace, the terminal icon in the unity launcher started shaking around for a bit then stopped, but nothing. I’m trying out 12.04 in a VM so maybe that has some effect since there isn’t a dedicated graphics card, I’m not sure.
    5) I’m not sure if there was any way to have the file browser windows (nautilus?) show up, but right now when you right click the “folder” icon there are quick links to Documents, Downloads, Music etc, but when you open several folders, none of them show up in that list.

    Anyways thanks for putting out this mod it’s awesome!

  • Tomy says:

    I had to do the edit to /etc/xdg/autostart/unity-window-quicklists.desktop file to change it from UNITY to Unity.

    Works for me. I like it.

    Thank you Alan, Thank you

  • Mario says:

    Thank you, it’s very useful here in 12.04. I have one problem though: there is a double occurence for every libreoffice writer open window. Two of the first document, two of the second, two of the third. Only in libreoffice, not in other applications.

  • Dread Knight says:

    Hello! This looks very helpful.
    I also made a mock-up related to the panel that would improve unity a lot in a similar way, but in the case you’re running a lot of different apps, check it out http://dreadknight666.deviantart.com/#/d4wz0fo

  • Biji says:

    Should be stock feature of ubuntu

  • Liam says:

    This is fantastic, thank you, it should be included by default (or at least as an option).

  • Sébastien says:

    Great extension, unfortunately the bookmarked folders disappear from the nautilus list when using it. Anyway of keeping the bookmarks visible when right clicking on the nautilus icon? Otherwise I can’t see a quick way to get to these folders (like when using the Places tab in gnome 2).

    Cheers.

  • Claude says:

    When I start a new session, I can see Nautilus bookmarks. When i open a couple of Nautilus Windows, unity-window-quicklists removes the bookmarks and display instead the opened Nautilus Windows. I think it would be better not to remove the bookmarks.

  • Gordon says:

    Installed Quicklists as above and fine except for Thunderbird. It seems to work after login but after closing Thunderbird and reopening no longer works. Any suggestions?

    • Rick says:

      I saw this too. Very disappointing

      • Rick says:

        It’s very repeatable as well. You’d think this wouldn’t be too had to track down.

        • Alan Bell says:

          feel free to track it down and fix it 🙂 I am not really doing anything more with this code, it was just a prototype to demo a concept to the developers really. They don’t want to do application switching this way so it isn’t really going anywhere.

          • Rick says:

            I’d be out of my league trying to fix it. It’s too bad they’re not interested. There does need to be an simple way to access all open instances of an application. (Heck, even twm does that.) I thought quicklists was a good way to go in that it retains the look and feel of Unity. I don’t know what it’s called, but the Unity way of bringing all the windows together and then choosing is sometimes useful but the vast majority of the time it’s overkill and awkward.

            By the way, I just dioscovered that it’s worse with thunderbird than I thought. As soon as new mail message arrives. thunderbird reverts it’s initial quicklist state — Contacts, compose — and it remains that way until you log out and back in again.

          • Rick says:

            By the way, Quicklists is very cool. I’m going to continue to use it. As far as I can tell, the only application it doesn’t work consistently for is thunderbird and I can live with that.

        • Rick says:

          I should have said: “your extension to quick lists is very cool…” since quicklists themselves come with 12.04

  • Saurabh says:

    Are you planning to update this for Ubuntu 12.10 ? It will be very helpful ! Thanks !

  • Richard Harrison says:

    This is a great app; I appreciate the effort. For me, it doesn’t work with Google Chrome, though. It seems to work great with all my other applications (LibreOffice, Opera, Terminal, etc.) Any ideas on how to make Chrome respond similarly? (FYI, when I first installed window-quicklist, I’m almost positive it worked with Chrome. It seems to have quit working at some point, rather than having never worked.)

  • manny says:

    seems this could finally become a default feature!

    https://bugs.launchpad.net/unity/+bug/1107866

  • XiaoaiX says:

    hi, there seems to be a bug. I like to use xpdf a lot. But there is a bug in xpdf in 12.04. And someone give a version without bug and I am using it. But the quicklist here seems not to work well on it. Only when I first log in and run a few xpdfs, I can see the quicklist on the left unity bar. After I closed all xpdf and then open some other xpdf, there is no quicklist for xpdf. But the quicklist for others are still working. I dont know whether this is a bug of your quicklist or unity or the xpdf? The xpdf packages was downloaded from here
    http://us.archive.ubuntu.com/ubuntu/pool/main/p/poppler/libpoppler13_0.16.7-2ubuntu2_amd64.deb
    and
    http://us.archive.ubuntu.com/ubuntu/pool/universe/x/xpdf/xpdf_3.02-21_amd64.deb

  • Mark says:

    Thanks a lot.

    I really missed this feature, moving away from XP 🙂

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>