HowTo: Pack Gtk CellRenderers vertically in a Gtk TreeView

var treeview = Gtk.TreeView();
var column = new Gtk.TreeViewColumn();

var cellrenderer_1 = Gtk.CellRendererPixbuf();
var cellrenderer_2 = Gtk.CellRendererText();

column.add_attribute(cellrenderer_1, "pixbuf", 0);
column.add_attribute(cellrenderer_2, "markup", 1);

(column.get_area() as Gtk.Orientable).set_orientation(Gtk.Orientation.VERTICAL);

column.pack_start(cellrenderer_1, false);
column.pack_start(cellrenderer_2, false);


SlickPanel 0.02 Released!

Hi! After a long wait, SlickPanel 0.02 has been released.

The changes in this release include lots of bug fixes, but most of all the ability to configure your panel. While not all of this is completely finished (some things like changing the background of the panel and its orientation and not fully complete yet), the majority is.

To configure SlickPanel, all you have to do is run:


And you will open the SlickPanel Settings application:

Remember that this is still early days and so SlickPanel is not what I would call stable yet 🙂 However if you do want to try it out, check out the installation instructions here.

Development of SlickPanel : Configuration

I thought since it has been a while since I posted anything on SlickPanel, I would update you on what I am currently doing on it. At the moment I am both creating a configuration backend for SlickPanel and a program to configure it. To do this I am parsing an XML file (with libxml2) which looks something like this:

<slickpanel:settings> <slickpanel:panel > 

All of this code, which is both common to the actual panel, and the settings program is compiled into a static library so that I can call it from both applications.

The settings program itself will look something like this:

Of course all is coded in Vala and GTK3 🙂

Presenting SlickPanel

When I switched to Oneiric, I tried Unity and GNOME Shell however I found I preferred my classic setup of GNOME Panel and used a external application launcher.

However, I was surprised to find that GNOME Panel had not very well maintained in Oneiric. In fact it is buggy and I had to go through some effort to get Indicators working on it.

After looking at GNOME Panel and other options (such as wingpanel) I realised there was not a quick, stable, extensible (and pretty!) desktop panel for GTK.

So I made one 🙂

SlickPanel is a modern panel that provides common tools such as a list of open windows and an indicator bar.

Its goals are:

  • Provide a robust, and quick desktop panel
  • Make it easy to customise and extend, rather than hide options
  • Use modern technologies rather than be backwards-compatible
  • Make it easy to hack on!

Current Status

SlickPanel is not ready for production use, this is an alpha release. Currently it will provide a panel at the top of the screen, containing a list of open windows (which can be minimized, maximized etc.) and the list of indicators.

In the next release I will try to focus on customisability (is that a word?) – making it easy to configure SlickPanel exactly the way you want it (

How to Install

Add the SlickPanel Daily PPA to your Software Sources and the install the package slickpanel. Then run it using the command slickpanel

More Info

All other information can be found on Launchpad ( and if anyone wants to get involved with developing etc. please get in touch (

Colorific! – A Useful Tool for Gtk/Cairo Developers

Recently I have been doing some work with Gtk and Cairo (i.e. drawing custom widgets).

To make sure the custom widget doesn’t look strange in all GTK themes except your own, a nice convention is to use GTK colours from the user’s GTK theme.

However sometimes it can be difficult knowing which colour to use, whether one colour in one theme will work for another colour in another theme…

So I created Colorific, a simple little program that shows you all the colours you have to work with in a GTK theme, and allows you to switch GTK theme on the fly.

To download and install it, just run the following commands:

bzr branch lp:~and471/+junk/colorific
cd colorific

Colorific! should then be available from Applications > Programming > Colorific!

To remove it, just run: