Metacity joy…
As I wrote a while back the development version of Metacity now has support for _NET_MOVERESIZE_WINDOW. I’ve just compiled a bleeding edge version checked out of subversion and it’s all working fine. Excellent news for Jendela.
Incoherent mumblings
Posts tagged ‘jendela’
As I wrote a while back the development version of Metacity now has support for _NET_MOVERESIZE_WINDOW. I’ve just compiled a bleeding edge version checked out of subversion and it’s all working fine. Excellent news for Jendela.
I doubt anyone really noticed but a few weeks ago I retired Jendela due to inactivity in GNOME bug 344521. Without those changes I just couldn’t write the tool I imagined. Since I raised that bug on version 2.14 of Metacity and both 2.16 and 2.18 passed by without the patch applied I didn’t hold much hope of it ever getting anywhere. Lo and behold, the bug is closed, the patch is applied. Excellent news! I’m reviving Jendela
Just uploaded a release, version 0.5, to GnomeFiles. Of course I also created a page for it.
Hopefully someone will enjoy it.
After an attempt at hacking “window packing” into Jendela I ran into a bit of a showstopper: Metacity doesn’t support _NET_MOVERESIZE_WINDOW. Now this is a bit of a problem, because “window packing” is all about moving windows around on the screen.
Confusingly Metacity does register the relevant XAtom, meaning that wmctrl doesn’t work (it’ll first try the XAtom, if it exists it uses the EWMH way, otherwise it reverts back to calling XMoveResizeWindow). Bad, bad Metacity!
Well, it turns out the code is already in Metacity, just commented out. The changelog says it’s pending “feature thaw”, whatever that means. Apparently something’s frozen solid because it’s been pending since July 2004
I decided I need to take a stab at this and raised bug 344521.
My local development repo is being uploaded to http://therning.org/magnus_bzr/jendela.dev/ as I write this.
There isn’t much functionality yet–you can shade windows–but hopefully I’ll have time to change that over the next few days.
Unfortunately it seems the Python bindings for wnck aren’t quite up to scratch. I’m getting numerous run-time warnings and sometimes even segmentation faults when doing some stuff (e.g. when shading all windows on the current desktop). I’ve “verified” it’s a problem in the Python binings by hacking together a quick and dirty program in C that does the same thing, with the difference that it doesn’t segfault
It turns out this was just the excuse I needed to take a closer look at the GLib object system and GObject. It was a long time since I wrote anything real in C (experimentation on Windows just doesn’t count) and I’m enjoying myself.
For now the Jendela-in-Python BZR repo is taken down, soon to be replaced by a repo with Jendela-in-C.
Well, the last few days I’ve been filing bugs and trying to write patches. They are all related to my intention of getting rid of Openbox and using Metacity in its place. This is the current list:
libwnck to set a window’s geometry. Done and approved libwnck. With it in place it’s possible to get the geometry of a window. Done, but not approved.I guess this makes it pretty clear what I’m intending to do. I call it Jendela. It’ll be a command-line tool for window manipulation, written in Python. Ideally this tool will make it possible for me to implement the window manipulation functions that I think are missing in Metacity (see below for an explanation why I think this is a good thing). Combine it with something like xhotkeys or xbindkeys and Metacity will become a lot more usable indeed.
So, why do I think Metacity missing features is a good thing? Well, it’s simple, it’s the Unix way! Metacity should be kept lean and mean, small in size and number of features, but good at what it does. Then there should be ways of connecting other programs to influence Metacity’s behaviour. That is where libwnck comes into the picture. I’m hoping that one day Metacity will start removing features relating to keyboard shortcuts for window manipulations due to tools like Jendela. Well, that’ll probably remain a dream for a long time to come though.
Jendela is not ready for consumption yet but I’m trying to push my bzr repo as regularly as possible. You can find it at http://therning.org/magnus_bzr/jendela.dev/.