For a long time now I’ve been bugged by GNOME Bug 86382.
Recent versions of GNOME have featured a window list applet which behaves badly when situated on a vertical panel (which is where I like to have mine). Older versions were ok except the buttons would expand and contract to make enough vertical space to hold the window title if written vertically, even though the window titles were written horizontally. Recent versions have much worse behaviour where once you get over about 7 windows open the window list will flicker rapidly between displaying in 1 or two columns making it almost impossible to click on the button you want.
There have been various patches attached to the bug, and today I managed to get the latest installed on my Ubuntu Hardy 8.04 machine by building custom .debs for the relevant components. I’m posting exactly what I did here in case it’s useful to anyone who wants to get this patch installed, and also as a general reference for what you need to do to apply a patch and install it using Ubuntu’s (or Debian’s) package management system as a well-behaved package.
The patches are to libwnck and gnome-panel, and they implement the behaviour I want, which is horizontal text, and buttons of fixed height in a window list which expands as needed to fill the available space. With this patch installed, I find a vertical panel is the best way to manage a large number of open windows.
I don’t recommend running this script – better to read and understand it yourself. Nevertheless (and with no guarantees whatsoever) if you do run it as is on a Hardy machine, it should install patched versions of libwnck and gnome-panel which work better with vertical panels.
# Get all the libraries and source code we need sudo apt-get install build-essential fakeroot dpkg-dev sudo apt-get build-dep libwnck gnome-panel # Create a directory to do all our messing about in mkdir build-libwnck cd build-libwnck/ # Get the source code for the 2 components we are building apt-get source libwnck apt-get source gnome-panel # Do libwnck first cd libwnck-2.22.3 # Create a changelog entry cat <<END > new-entry.txt libwnck (2.22.3-0ubuntu2) hardy-proposed; urgency=low * applied libwnck vertical window list fix from Alexey Rusakov and Vincent Untz -- Anon <email@example.com> Wed, 10 Dec 2008 20:50:00 +0000 END cat new-entry.txt debian/changelog > debian/changelog-new rm debian/changelog mv debian/changelog-new debian/changelog rm new-entry.txt # Get the libwnck patch and apply it wget -O libwnck-fix-vertical.patch "http://bugzilla.gnome.org/attachment.cgi?id=124112" patch -p2 < libwnck-fix-vertical.patch # Build the package aclocal automake dpkg-buildpackage -rfakeroot -b # Install the libwnck packages cd .. sudo dpkg -i libwnck*.deb # Now do gnome-panel cd gnome-panel-2.22.2 # Create a changelog entry cat <<END > new-entry.txt gnome-panel (1:2.22.2-0ubuntu1.2) hardy-proposed; urgency=low * applied libwnck vertical window list fix from Alexey Rusakov and Vincent Untz -- Anon <firstname.lastname@example.org> Wed, 10 Dec 2008 20:50:00 +0000 END cat new-entry.txt debian/changelog > debian/changelog-new rm debian/changelog mv debian/changelog-new debian/changelog rm new-entry.txt # Get the gnome-panel patch and apply it wget -O gnome-panel-fix-vertical.patch "http://bugzilla.gnome.org/attachment.cgi?id=107133" patch -p2 < gnome-panel-fix-vertical.patch # Build the package aclocal automake dpkg-buildpackage -rfakeroot -b # Install the gnome-panel packages cd .. sudo dpkg -i *panel*.deb
Update: fixed incorrect comment – thanks Stefan.
Update: changed -p0 to -p2 in the patch commands.