Apr 3, 2011

End of an Era: PyGTK

I just released PyGTK 2.24, which will almost certainly be the last major PyGTK release. The future of Python on the GNOME platform is PyGObject + GObject Introspection. From my experience over the last few months porting a number of my projects, the future is bright.

In a cruel twist of irony, the state of PyGTK on Windows and Mac has never been better. The credit for the windows work (and some great documentation improvements this cycle) must go to Dieter Verfaillie

I hope that the new stack will reach the same level of capability on other platforms as GTK+ 2.24, but in the large scheme of things the renewed development excitement surrounding GTK+ 3.0 and GNOME 3 is excellent consolation.

As a user I would like to thank those developers before me for creating PyGTK. It was the first 'pythonic' UI toolkit for linux, and a pleasure to use. As the recent maintainer of PyGTK I would especially like to thank those recent developers who helped me, in particular Dieter Verfaillie who really pushed PyGTK over the line regarding Windows support, into the great state it is now.

I'll leave you with some graphical statistics (generated using pepper) for the 12 year history of PyGTK. If planet strips the wordpress gallery then please click here.







update: To clarify a point raised in the comments, PyGTK will be maintained in the exact same was as the GTK+-2.0 series will be maintained. Bug fix releases will be made if necessary, but no new features will be added. If you want the new GTK+-3.0 features then you should use PyGObject + GObject Introspection.

The PyGTK code will not disappear from any servers, it will continue to be shipped in all distributions for the forseeable future, it will continue to work very well on windows, and many applications will continue to use it.

Dec 24, 2010

PyGTK All-in-one Installer for Windows

The PyGTK team is pleased to announce the return of the highly popular all-in-one installer for Windows.

The PyGTK All-in-one installer provides an alternative installation method for PyGTK users on Windows. It bundles PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, the gtk+-bundle and Glade in one handy installer.

Currently 32 bit Python 2.6 and 2.7 versions are supported on Windows XP and above.

Dieter Verfaillie deserves enormous thanks for this work. Firstly, he performed the tedious job of ensuring that all the component MSI installers were exactly correct, and secondly, the really difficult task of deconstructing these individual installers and reassembling their contents into a single cohesive executable.

This is a true all-in-one installer, it does not simply call out to launch the individual MSI files.

  • More screenshots here.

  • Please file bugs as appropriate.

  • We are looking to collaborate with others who want to create gtk+ (and friends) all-in-one installers for Windows. We anticipate the tools to generate these installers will move to GNOME in future - perhaps in a common repository. Suggestions and feedback welcome.

Nov 19, 2010

GTK+ Viewer for Microsoft Kinect

I'm hacking on the new Kinect at the moment and the OpenGL viewer didn't work for me so I threw together this terrible quality gtk+ one. I'll clean up the code and try to get this into OpenKinect ASAP.

GTK+ viewer for Microsoft Kinect

Jun 10, 2010

Map Updates

I recently made a number of improvements to osm-gps-map, the easy to use mapping widget. The motivation for these came at the request of the foxtrotGPS developers (foxtrotGPS is a community developed fork of TangoGPS). These changes enhanced the API for adding images and tracks to the map, and in addition allowed me to clean up the basic API making it easier to use for the common case. But, there is more, especially relevant to Gtk+/GNOME 3.0.

osm-gps-map demo application

Feb 5, 2010

Nautilus + Coverflow part two

After two complete rewrites following my initial experiments, the other gloobus developers (badchoice and kitkat) have continued to work on integrating this coverflow view into nautilus.

The implementation of the coverflow widget this time is a little more sane. It is passed a GtkTreeModel of GFiles, and basically does everything in isolation. The coupling to nautilus is quite loose, so the idea is that the widget can be reused easily by others.

The code is available from the linked blog post, or from github.

Jan 22, 2010

Misc Hacking

I had two days off while I moved offices, so I got a chance to catch up on my backlog of random hacking.


I released osm-gps-map v0.5.0 which adds a few new features (such as keyboard navigation) but also contains many bugfixes and performance improvements. Check the release notes for more information. The next item on the TODO is merging the OSD/layers branch.


I released Conduit 0.3.17 which was long overdue. Mostly a bugfix release and updating to new API. The Conduit homepage has also moved to live.gnome.org. Progress on Conduit is a bit slow at the moment, it does everything I want it to (I have a budget cellphone so phone synce does not interest me), and is pretty stable. I have some SOC work I would like to merge, but basically I am looking for developers and inspiration...

PyGTK for Windows

I finished off the fixes to build correct PyGTK+ installers on windows, hopefully closing bug #589671. I uploaded new installers with the fixes people have reported. I expect these installers to become the 'final' installers at some point. Feedback welcome.

PyGTK Hacking

I wanted to play with the new client side windows work in Gtk+, so I ported the effects gtk-demo to Python. This required a bit of ctypes magic to access the new API (good), and some more ctypes magic to interact with new signals that appears to have unfriendly prototypes (not so good, bug filed here).

PyGTK example using client side windows

Jan 11, 2010

Gtk+ Map Widget

It has been a long time between blogs. I thought I should talk about the piece of software that has been responsible for the most emails in my inbox over the last few days - osm-gps-map, the Gtk+ based map widget. What started as a widget for use in one small application of mine has grown considerably.

  • I recently released 0.4.0, a bugfix release.

  • I created a mailing list, if you are a user or interested osm-gps-map, them please join.

But I thought I should take some time to highlight some of the most interesting users of osm-gps-map, particualry those users on the Maemo platform.

Maep, OSM2Go and GPXView (by Till Harbaum)

Maep Screenshot Maep



BrainStorm (by Adam Boggs)

  • BrainStorm is a storm chasing application that plots your track, and overlays current radar and severe warning imagery on the map.

Brainview eCoach

  • eCoach is an application for recording and managing sport activities with Nokia N900, it records heart rate data from various monitors, and plots your path on the map as you exercise.



  • With the help of these users, the future of osm-gps-map looks very positive.

  • I am currently working on merging Till's improvements to master to discourage people from copying osm-gps-map source into their application.

  • If you are a user of osm-gps-map and I have forgotten you then I am sorry. Please contact me and join the osm-gps-map mailing list.

May 27, 2009

Playing With Clutter

Some of you out there might be familiar with Gloobus. Over the last few nights I spent some time integrating Gloobus inside nautilus.

This is a proof of concept. I have done very little so far - it shows the first 8 files in the directory, and allows you to navigate between them with animation. It is mostly just a port of Gloobus from C++ into a ClutterGroup derived Actor in C, most of the thanks should go to the Gloobus author.

It features the same bugs as Gloobus, like poor support for resizing the window, positioning bugs, and it does not scale to very many files. It also leaks like a sieve (that one's on me). Here is my inadequacy represented in video form.

Those of you who regularly work with computers and other technology will be aware of how important it is to have a good quality internet connection. If you are looking into getting a new broadband connection then I recommend you look at O2 uk broadband reviews.

However, if you would still like to take a look and perhaps fix all the bugs, the steps for testing it are

  1. Install clutter-gtk-0.9

  2. Download nautilus from my Git repository (the clutter branch) https://github.com/nzjrs/nautilus/tree

  3. Build the test program cd src/file-manager make -f Makefile.covflow && ./test-covflow

  4. Built nautilus with --enable-clutter-view

  5. Run the newly build nautilus cd src ./nautilus -q ./nautilus --no-desktop

This is very early work so the standard disclaimers apply. I needed to get this off my chest so I could get back to PhD work.

Apr 23, 2009

Map Widget Release

I made a new April resolution to start blogging reguarly again. The first step of that long journey begins now.

OpenStreetMap GPS Mapping Widget - 0.3

I just released v0.3 of osm-gps-map, the easy to use Gtk+ mapping widget. Highlights for this release include;

  • A new major contributor, Alberto Mardegan, who worked on many of the new features of this release. Thanks a lot Alberto!

  • Draw map tracks with Cairo by default.

  • Interpolate between zoom levels while waiting for a tile to download.

  • Stop using GET_PRIVATE, and cache priv* for performance.

  • Keep an extra border of images offscreen for smoother scrolling at the edges of the map.

  • Keep the last N tiles in memory to improve render performance (previously they were loaded from disk)

  • Add some new api; osm_gps_set_center, osm_gps_map_scroll.

Conduit Hacking

Hacking on Conduit continues, with much happyness for two reasons;

  • GNOME has moved to git! Wahoo! I owe the sysadmin team many beers, except for Jc2k who I know could not handle them anyway.

  • Conduit got a SOC project, congratulations Alexandre!

  • Work is ongoing to merge in the new configuration and settings serialization code.

  • More on this later, I promise...

Jan 23, 2009

Some More Software

As was the theme of yesterdays post, here comes some more software that I have hacked on recently and can now be found on Github.

osm-gps-map osm-gps-map is a Gtk+ widget (and Python bindings) that when given GPS co-ordinates, draws a GPS track, and points of interest on a moving map display. It Currently supports a number of different mapping sources;

  • openstreetmap (default)

  • openaerialmap

  • maps-for-free

  • satellite maps from a number of proprietary providers

It also has the following features

  • Intelligent caching of maps, including the ability to request a specific area of the map to be cached ahead of time

  • Recording of points of interest on the map (and the ability to add arbitary pixmaps at those points

  • Automatically draws a GPS track (a line showing the history of past added points)

  • Automatic centering on new GPS points

  • Support for multiple other tracks of co-ordinate points

  • Adjustable Zoom

  • Includes a comprehensive example

  • Simple, flat API

I have been running it on a number of embedded boards (beagleboard, Overo) for some commercial work I have been doing (hence the minimal dependencies). For those Planet GNOME readers, It is kind of like libchamplain but without the Clutter part.

facebook-notify Reaction to the posting of my Facebook notifier for GNOME was positive, and I made a few quick fixes to remove some crasher bugs.

The biggest source of frustration at this point is that libwebkitgtk segfaults, upon destroy, almost every time it encounters a page that requires the initialization of an NPAPI plugin. Disabling plugins using the built in BrowserSettings object does not seem to have any effect.

Is there a RoadMap or any plans for an updated WebKitGtk release before the next round of distro updates?

Conduit I have been hacking on Conduit a bit over the last few days, and thanks to Julien Lavergne we now have updated builds for Intrepid and Jaunty. Julien also packaged a trunk snapshot (and set up the infrastructure to allow easier updating of such snapshots). I recommend all users of Conduit add our PPA.

← Previous Next → Page 2 of 10