Manual placement for metacity

One of the features that seems to be missing from modern window managers (metacity, kwin) is the ability for the user to specify the position of new windows. This is referred to as manual, or interactive, placement.

Automatic placement policies work well enough on small displays, but with large, multiscreen displays they often position windows in inconvenient places. We have several machines with dual 1600x1200 screens and one with four 1600x1200 screens. When used with automatic placement the user almost always finds it necessary to reposition newly-created windows.

The patch here adds a manual placement policy to metacity. The policy is disabled by default but can be enabled using gconf-editor.

(I used to have a patch for metacity 2.14.0 to make strict focus approximation mode configurable. That has been included in metacity 2.14.3 and above and is no longer available here.)

Here are patched RPMs of metacity 2.30.3 for Fedora 14:

and of metacity 2.30.0 for Fedora 13:

and of metacity 2.28.0 for Fedora 12:

The patch has been backported to the versions of metacity that come with Red Hat Enterprise Linux. In these RPMs manual placement is the default. For RHEL 3 and 4 Mark Draheim's patches to allow windows to be moved off the top of the screen are also included. The RHEL 5 and 6 versions include an additional patch to add a 'raise_ancestor' configuration option. This defaults to false to preserve the same behaviour as in earlier versions of RHEL.

The manual placement patches for RHEL aren't provided separately as they need to be applied after the many patches Red Hat have included in their RPMs. Get the source RPM if you want to see the details.

RHEL 3 RHEL 4 RHEL 5 RHEL 6
ix86 RPM 2.4.55-7.26.tig1 2.8.6-2.13.tig1 2.16.0-16.tig2 2.28.0-23.tig1
x86_64 RPM 2.4.55-7.24.tig1 2.8.6-2.13.tig1 2.16.0-16.tig2 2.28.0-23.tig1
Source RPM 2.4.55-7.26.tig1 2.8.6-2.13.tig1 2.16.0-16.tig2 2.28.0-23.tig1

The RPMs are signed with this RPM signing key.


Ron Yorston
6th January 2005 (updated 17th February 2015)