Category Archives: Life

Hello, Planet GNOME

Well, I’m told that this blog is now aggregated on Planet GNOME. For those who haven’t met me yet, my name is Jonathon Jongsma and I live in the great city of Minneapolis, in the USA. I’ve been contributing to gtkmm (yes, that new website is my fault), am co-maintainer of cairomm, and have my own little side-project named Agave (which incidentally was the project I started in order to teach myself gtk(mm) programming, so don’t be too surprised at the questionable quality of some of the early code). Anyway, thanks to all those who’ve already made me feel welcome in the GNOME community.

In other news, my wonderful wife Joanne is nearing the end of her first trimester of pregnancy, so we anticipate having our first child around the beginning of next year. So I’ve been spending a lot of my time cooking meals and trying to find foods that won’t be immediately regurgitated.

Colorscheme to Agave

At long last, I’ve released a new version of GNOME Colorscheme. Only I’ve changed the name of the application with this release. The new name is Agave. I decided to change the name of the application after I found that people often assumed (due to the name) that it was an application that could be used to change the colorscheme of their desktop (i.e. window borders, etc). Plus I was just never happy with such a generic name.

Other than the name change / re-branding, there’s not a lot of major changes, but there are few minor improvements and an additional translation (Catalan). And now that I’ve got the name-change release out of the way, I can get back to working on some bigger changes to the application. I’ve been working on a branch to implement a custom TreeModel which can use standard C++ containers (e.g. std::vector) as its data store. This is of course completely uninteresting from a user perspective, but it makes the code much cleaner and maintainable as I don’t have to keep a standard container synchronized with the data in a ListModel and vice versa. I’ve just merged these changes back into master.

I have hopes that at some point a generic standard-container-based TreeModel can be shipped with gtkmm, but I think it needs a bit of testing here before I can propose adding anything to gtkmm. The implementation I’m using right now is still a bit rough around the edges since this is the first time I’ve ever implemented a custom TreeModel, but I think it’ll get there eventually.

In addition, I’ve got a few ideas regarding improving the UI for picking colors, and some other things. So that should start picking up soon as well.

In addition, with many thanks to Ross Burton, Agave is making its way into the Debian repository. You can keep an eye on its progress in the Debian NEW queue. Also, it looks like you can grab it from Ross’s personal repository if you want to try it out before it actually gets accepted into the official repository. Thanks Ross.

Colorscheme on Microsoft Windows

After a little bit of hacking, I’ve succeeded in getting GNOME Colorscheme to run under windows XP. I had to hack a few things to get it to build, and it’s still not perfect. For instance, in addition to making gconf optional, I made libgnomeui optional as well. The end result is that it doesn’t have quite the functionality available on linux, but it’s still relatively useable.

I haven’t yet committed the changes I had to make to get it to work, but will soon. If you want to try it out, you should install gtkmm 2.8 with Cedric’s Windows gtkmm installer (the developer environment, not just the runtime), and also install MinGW, and the autotools from cygwin. You’ll have to use the following commandline for now:

./configure --disable-gconf --disable-gnomeui --datadir="c:\some\path\to\install\icons\etc"

By the way, that last little --datadir switch feels really ugly to me. Does anybody know how people usually do this stuff on windows? I’d prefer to use autoconf and automake on Windows, but doing so results in a datadir variable set to something like /usr/local/share, which is valid within a cygwin shell, but obviously not when running the compiled program outside of cygwin. I’ve worked around this by specifying an explicit datadir, but if feels like there should be a better way… Anybody?