Devil's Pie
A window-matching utility, inspired by Sawfish's "Matched Windows" option and the lack of the functionality in Metacity. Metacity lacking window matching is not a bad thing — Metacity is a lean window manager, and window matching does not have to be a window manager task.
Devil's Pie can be configured to detect windows as they are created, and match the window to a set of rules. If the window matches the rules, it can perform a series of actions on that window. For example, I can make all windows created by X-Chat appear on all workspaces, and the main Gkrellm1 window does not appear in the pager or task list.
Download
Latest download is devilspie-0.22.tar.gz.
Bug Reporting
You can report bugs in Devil's Pie in the GNOME Bugzilla.
Devil's Pie "Sweet Music, Soul Music?" 0.22
Devil's Pie (someones favourite window manipulation tool) 0.22 is out. Just one bug fix, which shows that my users all use OpenBox.
- Fix decorate/undecorate with OpenBox (thanks Rafał Mużyło)
- Fix typos in man page (Loïc Minier)
Downloads are in the usual place.
Devil's Pie "A Love Supreme" 0.21
Devil's Pie (someones favourite window manipulation tool) 0.21 is out. Now with even more actions!
- Add change_workspace action (#453464, thanks Adam Więckowski)
- Add decorate action (#449634, thanks Galkin Vasily)
- Add quit action (thanks Leon Zhang)
- Handle wnck_screen_get_active_workspace() failing (#343546)
Downloads are in the usual place.
Devil's Pie Tutorial
Christer Edwards over at Ubuntu Tutorials has written a short tutorial on Devil's Pie. Thanks Christer!
Now if only people would stop using a hack I wrote several years ago and fix the real problems...
NP: The Last Flowers from the Darkness, Mark Van Hoen
Devil's Pie in Linux Format
Jeff Waugh talks about Devil's Pie in his interview with Linux Format (issue 87).
However, there's this really cool thing called Devil's Pie, which is an extra little thing you run. It just plugs in and you can completely script the way Metacity works, using Lisp. Much in the same way you could with Sawfish, except for being a plugin and being directly focused on scripting the window manager. You can do amazing stuff. The work on that has actually been sponsored by Pixar.
Thanks Jeff! Any more of this and people will start thinking I'm paying you...
NP: Flight 602, Aim
Devil's Pie "Wearing That Dress" 0.20.1
Devil's Pie (someones favourite window manipulation tool) 0.20.1 is out. Brown paper bag release, whoops!
- Fix parsing (Lars Damerow)
- Fix test suite
Downloads are in the usual place.
Devil's Pie "Wearing That Dress" 0.20.2
Devil's Pie (someones favourite window manipulation tool) 0.20.2 is out. Brown paper bag release, whoops!
- Fix window_workspace (Andrew Yates)
Downloads are in the usual place.
Devil's Pie "Wearing That Dress" 0.20
Devil's Pie (someones favourite window manipulation tool) 0.20 is out. New features galore!
- Handle multiple expressions in a file (Lars Damerow)
- Add spawn_sync and spawn_async actions to start processes (David Decotigny)
- Add println, str, hex, and expand print (DD)
- Add window_xid matcher (DD)
Downloads are in the usual place.
Devil's Pie in Fedora
Sebastian Vahl just mailed me to say that he has packaged Devil's Pie for Fedora Core (5, 6, and development) in Extras. Thanks Sebastian!
Devil's Pie "Sell Sell Sell" 0.19
Devil's Pie (someones favourite window manipulation tool) 0.19 is out. Just a fix for older systems here.
- Don't use wnck_window_set_geometry as it was introduced in GNOME 2.16 (#381233).
Downloads are in the usual place.
Devil's Pie "Simmer To A Sizzle Like The Days Of Old" 0.18
Devil's Pie (someones favourite window manipulation tool) 0.18 is out. Features galore in this release!
- Add window_property matcher (Nigel Tao)
- Add set_viewport action (James Willcox)
- Add opacity action (Pavel Palat)
- Add sticky action (Steve Leung)
- Add unmaximise action (Alex Menk)
- Add unminimise action (Richard Neill)
- Fix negative offsets in geometry action (Vincent Ho, Midred)
Downloads are in the usual place.
In Print
Those nice people at Linux Magazine have written an article covering Devil's Pie. Apart from the traditional mis-spelling of my surname, it's a great article. Thanks Linux Magazine!
Name Dropped
Jeff Waugh was kind enough to name drop Devil's Pie at FOSDEM whilst being interviewed for Source21.nl.
...We haven't been talking about some of the really cool stuff you can do with gnome. Things like Devil's Pie or Brightside, which make the window manager work in totally different ways: they take Metacity which is a very conservative, very simple, it just manages your windows kind of window manager, and they turn it into something which does edge flipping and all kinds of cool stuff, a programmable window environment, those kind of things.
Yay Jeff!
NP: Last.fm Neighbour Radio
Devil's Pie "Out Of Gas, Still Burning" 0.17.1
Devil's Pie (someones favourite window manipulation tool) 0.17.1 is out. This time I actually declare the dependency on Glib 2.10...
- Depend on GLib 2.9.1 onwards
Downloads are in the usual place.
Devil's Pie "Stay With Me While We Grow Old" 0.17
Devil's Pie (someones favourite window manipulation tool) 0.17 is out. Nothing interesting, just a fix so that it builds with GLib 2.10.
- Fix compile with GLib 2.10
Downloads are in the usual place.
Another Tutorial
I just found Yet Another Devil's Pie Tutorial online. That puts the count of unofficial tutorials up to three... obviously people out there want to document Devil's Pie but everyone is doing it in their own corner of the world, so I've just added a skeleton structure to the Devil's Pie wiki page. If anyone out there has a passion for Devil's Pie and wants to start adding documentation for the configuration file format, feel free!
NP: Groove Salad, SomaFM
Devil's Pie Bugzilla
There is now a Devil's Pie product in the GNOME Bugzilla, so any bugs can be filed there instead of sending me a mail (which I'll then forget about). Thanks to the super-rad Bugzilla upgrade, the summary page is pretty useful.
NP: Dial 'M' For Monkey, Bonobo
Devil's Pie Tutorial
On Xlife there is a brief tutorial on Devil's Pie. I should merge it into the README and add a reference for the actions at some point, but it's a good start.
NP: A Rush Of Blood The The Head, Coldplay
Devil's Pie "Lazy Release" 0.14
Devil's Pie (someones favourite window manipulation tool) 0.14 is out. A nice and lazy release here, I just merged patches from other people.
- Add Set Geometry (Guido Boehm)
- Fix Set Window Type (Stefan van der Haven)
- Make Pin work as expected (Jean-Yves Lefort)
- Append new expressions, not prepend (Lars Damerow)
- Fix typos in README (Larry Virden)
Downloads are in the usual place.
Devil's Pie "Wind The Frog" 0.13
Devil's Pie (someones favourite window manipulation tool) 0.13 is out. This release is far more exciting than 0.12!
- Total rewrite.
- No, really. A complete rewrite, no file left untouched. Many thanks to Pixar Animation Studios for sponsoring this work.
- Use s-expressions instead of XML as the configuration file format, allowing matches to be combined in new and exciting ways with (and) (or) and (not) operators.
- Read configuration from both the users home directory and /etc, allowing centralised configuration.
- Add the beginnings of a test suite.
Downloads are in the usual place. I'll have Debian packages uploaded shortly I expect.
Thanks again to Pixar, for without their kindness this release would never have happened.
Devil's Pie "Trying To Make Their Paper" 0.12
Devil's Pie (someones favourite window manipulation tool) 0.12 is out. This release is very boring and is mainly a cleanup release:
- Quit if no flurbs were loaded
- Use GOption instead of popt
- Major code cleanup
Downloads are in the usual place.
Thanks to a little help from a very nice Devil's Pie user, expect another release tomorrow. Brace yourself, it's going to be surprising!
Devil's Pie "Used To Love you" 0.11
Devil's Pie (everyone favourite window manipulation tool) 0.11 is out. This release fixes a few bugs which meant that the window type and execute actions were not usable, and adds a shading action.
- Add an action to shade windows by Anonymous. I didn't write it but I've lost the mail the patch came in...
- Fix the window type action
- Fix the execute action
- Check for xsltproc in configure, as it's required
Downloads are in the usual place. I'll have Debian Sid packages uploading shortly.
Devil's Pie "Can't Join Them? Beat Them" 0.10
Devil's Pie (everyone favourite window manipulation tool) 0.10 is finally out. This release is very special as it actually compiles with GNOME 2.10, many thanks to Crispin Flowerday for the final patch to complete this.
- Re-implement the required private wnck functions (Crispin Flowerday)
- Add min/max hints to the opacity action property
- Display the min/max hints in the generated documentation
Downloads are in the usual place. I'll have Debian Sid and/or Ubuntu Hoary packages shortly.
Devil's Pie "Mystery Boxes" 0.8
Devil's Pie (everyone favourite window manipulation tool) 0.8 is out. This release is full of new features thanks to many contributed patches, so grab this now and have fun.
- Bring back --apply-to-existing, so you can work on existing windows
- Add maximized_horizontally and _vertically to the resize action (John Russell)
- Add an execute action (John Russell)
- Add an opacity setting action (Guido Boehm)
- Generate decent matcher/action documentation at build-time from the source
- Check that regular expressions parsed correctly, fixing a common bug
- Less compile warnings
Downloads are in the usual place, a tarball is here, Debian packages here, and will be in unstable tomorrow.
Devil's Pie "Stumpy" 0.7
Devil's Pie (everyone favourite window manipulation tool) 0.7 is out. It appears I forgot to tell the world about 0.6 ("Salmon Sunset"), so I'll put all the changes here.
- Fix the fullscreen action
- Set the Motif hint when setting the decoration hint (Vaclav Lorenc)
Downloads are in the usual place, a tarball is here. Debian packages being uploaded to burtonini.com/debian now and will be in Debian... shortly. The Sarge freeze will affect this, of course.
Devil's Pie "Right Where I Want You" 0.5.1
Devil's Pie (everyone favourite window manipulation tool) 0.5.1 is out. Brown paper bag release to fix a typo.
Downloads are in the usual place, a tarball is here.
Devil's Pie "Right Where I Want You" 0.5
Devil's Pie (everyone favourite window manipulation tool) 0.5 is out.
- Add an action to set the geometry of a window, by Henrik Brix Andersen.
Downloads are in the usual place, a tarball is here. Debian packages being uploaded shortly.
NP: Keep It Unreal, Mr Scruff
Devil's Pie "Derren Brown Is A Witch" 0.4
Devil's Pie (everyone favourite window manipulation tool) 0.4 is out. Not bad since the last release was in September... Changes are:
- Add an action to set the window type atom (Olivier Andrieu)
- Add an action to set the decorate window hint in OpenBox (Vaclav Lorenc)
- Watch all screens for events, instead of just the default
Downloads are in the usual place, a tarball is here. Debian packages will be prepared tomorrow, I'm going to bed now. The tarball has a spec file, so rpmbuild should work.
Devil's Pie "David Blaine has smelly socks" 0.3.1
Devil's Pie (everyone favourite window manipulation tool) 0.3.1 is out. Finally. Again. Changes are:
- Don't crash when a window role is null in various places (Rob Mayoff)
- Don't crash on unknown properties (RM)
- Being very slow at applying patches (me)
Downloads are in the usual place, a tarball is here.
Devil's Pie "Floating Skulls" 0.3
Devil's Pie (everyone favourite window manipulation tool) 0.3 is out. Finally. Changes are:
- Vastly improved documentation (Gaetan de Menten)
- Add a "fullscreen" property (requires libwnck 2.3.something)
- Many bug fixes (Patrick Aussems)
Downloads are in the usual place, a tarball is here. A Debian package has been uploaded into Sid, hopefully it will be accepted soon. The tarball has a spec file, so rpmbuild -tb should work.
Devil's Pie 0.2.4
Devil's Pie (everyone favourite window manipulation tool) 0.2.4 is out. It appears that I intended to do a 0.2.4 release many moons ago, since it has regular expression matching for window titles and application names, but I never got around to it...
In this last week I have received not one but two different RPM spec files for it, so I thought I best get a release with them in out before I get more!
Thanks to Patrick Aussems for the regexp code, and Michael Raab/Lars R. Damerow for the RPM spec files.
Downloads are in the usual place, a tarball is here and Debian packages are available. The tarball has a spec file, so rpmbuild -tb should work.
Devil's Pie 0.2.3
Devil's Pie 0.2.3 is out, available at the usual location. This release is nothing more than a rebuild of the GOB files, with GOB 2.0.3. This will cure any problems along the lines of "FooMatcher cannot be found" when Devil's Pie was built using GCC 3.
Devil's Pie 0.2.2
Devil's Pie 0.2.2 is out, available at the usual location. This release fixes a few bugs, adds a default configuration file, and adds actions to set the WM_STATE_BELOW and WM_STATE_ABOVE hints.
Debian packages are also available from my apt-get-able repository, at http://www.burtonini.com/debian/.