Just installed RedHat 8.0, and discovered they've changed the window manager from sawfish to metacity, and don't even ship enlightenment anymore. The story, apparently, is that the sawfish project went moribund, so the GNOME guys switched to metacity.
Here follows technical notes on my reconfiguration issues.
Reinstalling enlightenment and all the libraries it depends on every time I set up a new linux machine is getting really old, and the only reason I really even do it is because last time I looked around it was the only one configureable enough to let me use a few features I've been hooked on since the days of OpenWin in SunOS 4. Namely:
So I looked around a little, and found that, while Red Hat's default desktop config only exposes options for the first of my preferences (focus follows mouse), metacity does have hidden options for the others. Alt-F7 switches the mouse to window-move mode, which is kind of nifty, and there are available hooks for keyboard raise and lower -- just no keys bound to them by default.
[[Update (03/01/06): It has been pointed out to me that all of these can actually be set from the Preferences>Keyboard Shortcuts control panel. Sigh. So they can. The problem with making these things "intuitive" for "ordinary users" is that those of us used to the old way of doing things get left high and dry. ]].
For reference of any who google their way here, here is the (almost)
complete documentation of functions metacity makes available for
key binding. (I'm leaving off run_command
, mostly because
I'm lazy and don't expect to use it, but if that sounds like something
you'd want, look in /etc/gconf/schemas/metacity.schemas
.
Set these properties like so:
shell% gconftool-2 --type=string --set /apps/metacity/global_keybindings/switch_windows '<Alt>Tab'
Name | Default binding | Description |
---|---|---|
switch_windows |
<Alt>Tab |
Move focus between windows |
switch_panels |
<Control><Alt>Tab |
Move focus between panels and the desktop |
cycle_windows |
<Alt>Escape |
Move focus between windows |
cycle_panels |
<Control><Alt>Escape |
Move focus between panels and the desktop |
show_desktop |
<Control><Alt>d |
Hide all windows and focus desktop |
switch_to_workspace_1 |
disabled |
Switch to workspace 1 |
switch_to_workspace_2 |
disabled |
Switch to workspace 2 |
switch_to_workspace_3 |
disabled |
Switch to workspace 3 |
switch_to_workspace_4 |
disabled |
Switch to workspace 4 |
switch_to_workspace_5 |
disabled |
Switch to workspace 5 |
switch_to_workspace_6 |
disabled |
Switch to workspace 6 |
switch_to_workspace_7 |
disabled |
Switch to workspace 7 |
switch_to_workspace_8 |
disabled |
Switch to workspace 8 |
switch_to_workspace_9 |
disabled |
Switch to workspace 9 |
switch_to_workspace_10 |
disabled |
Switch to workspace 10 |
switch_to_workspace_11 |
disabled |
Switch to workspace 11 |
switch_to_workspace_12 |
disabled |
Switch to workspace 12 |
switch_to_workspace_left |
<Control><Alt>Left |
Switch to workspace on the left |
switch_to_workspace_right |
<Control><Alt>Right |
Switch to workspace on the right |
switch_to_workspace_up |
<Control><Alt>Up |
Switch to workspace above the current space |
switch_to_workspace_down |
<Control><Alt>Down |
Switch to workspace below the current space |
Set these properties like so:
shell% gconftool-2 --type=string --set /apps/metacity/window_keybindings/activate_window_menu '<Alt>space'
Name | Default binding | Description |
---|---|---|
activate_window_menu |
<Alt>space |
Activate window menu |
toggle_fullscreen |
disabled |
Toggle fullscreen mode |
toggle_maximized |
disabled |
Toggle maximization state |
toggle_shaded |
disabled |
Toggle shaded state |
close |
<Alt>F4 |
Close a window |
minimize |
<Alt>F9 |
Minimize a window |
begin_move |
<Alt>F7 |
Move a window |
begin_resize |
<Alt>F8 |
Resize a window |
toggle_on_all_workspaces |
disabled |
Toggle whether the window is on all workspaces |
move_to_workspace_1 |
disabled |
Move window to workspace 1 |
move_to_workspace_2 |
disabled |
Move window to workspace 2 |
move_to_workspace_3 |
disabled |
Move window to workspace 3 |
move_to_workspace_4 |
disabled |
Move window to workspace 4 |
move_to_workspace_5 |
disabled |
Move window to workspace 5 |
move_to_workspace_6 |
disabled |
Move window to workspace 6 |
move_to_workspace_7 |
disabled |
Move window to workspace 7 |
move_to_workspace_8 |
disabled |
Move window to workspace 8 |
move_to_workspace_9 |
disabled |
Move window to workspace 9 |
move_to_workspace_10 |
disabled |
Move window to workspace 10 |
move_to_workspace_11 |
disabled |
Move window to workspace 11 |
move_to_workspace_12 |
disabled |
Move window to workspace 12 |
move_to_workspace_left |
disabled |
Move window one workspace to the left |
move_to_workspace_right |
disabled |
Move window one workspace to the right |
move_to_workspace_up |
disabled |
Move window one workspace up |
move_to_workspace_down |
disabled |
Move window one workspace down |
raise_or_lower |
disabled |
Raise window if obscured, lowers it otherwise |
raise |
disabled |
Raise window above other windows |
lower |
disabled |
Lower window below other windows |
And in case anyone would like to have it, here's the script I'm using to reset my own keybindings. Make it executable and set it to run when you log in.
#!/bin/sh # ctrl-alt-up to raise window (disabling old binding) gconftool-2 --type=string --set /apps/metacity/global_keybindings/switch_to_workspace_up 'disable' gconftool-2 --type=string --set /apps/metacity/window_keybindings/raise '<Ctrl><Alt>Up' # ctrl-alt-down to lower window (disabling old binding) gconftool-2 --type=string --set /apps/metacity/global_keybindings/switch_to_workspace_down 'disable' gconftool-2 --type=string --set /apps/metacity/window_keybindings/lower '<Ctrl><Alt>Down' # alt-space to move window (changing old binding) gconftool-2 --type=string --set /apps/metacity/window_keybindings/activate_window_menu '<Ctrl><Alt>space' gconftool-2 --type=string --set /apps/metacity/window_keybindings/begin_move '<Alt>space' # shift-alt-left/right to move window to workspace left/right gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_left '<shift><alt>Left' gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_right '<shift><alt>Right' # ctrl-f1/f2/f3/f4 to jump to workspaces gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_1 '<Ctrl>F1' gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_2 '<Ctrl>F2' gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_3 '<Ctrl>F3' gconftool-2 --type=string --set /apps/metacity/window_keybindings/move_to_workspace_4 '<Ctrl>F4'
is it possible to set up "active border" on metacity?
thanks!!
Is it possible to mouse-drag items across workspaces?
Posted by: Jeff on June 9, 2003 10:54 AMIs it possible to mouse-drag items across/between different workspaces?
Posted by: Jeff on June 9, 2003 10:55 AMYou can mouse-drag the mini-images of windows between workspaces in the Gnome Panel -- and if you play with the Preferences (rightclick the workspace applet), you can make those minis big enough to actually grab hold of. I use an array of workspaces four across and one deep, so they display better.
But most of the time I use keybindings on move_to_workspace_left/right to move windows around. Just focus a window and hit shift-alt-left/right-arrow to move to the next or previous workspace.
Posted by: colin on June 9, 2003 11:37 AMDoes anybody know if it is possible to set e keybinding to start an application? I did not manage to find a way ho to do. Can anybody help?
Thanks
Posted by: Tomas Kaluza on June 19, 2003 02:59 PMI'm having other problems, I use other features, such removeing the pop-to-front on click... I often use the ability to move a window behind other windows..
I find it frustrating, with every new version of RedHat, I loose functionality in the window interface.. This functionality, and configurability of the window manager has always been what I loved about X-Based operating systems.
Anyone know how to replace meta-city with a better window manager ?
regards
Michael Nielsen.
You should be able to create a ~/.xsession script and get it when you choose the "Default" session when you log in under gdm. The last line of your ~/.xsession should be something like:
(at least, if you're using the enlightenment window manager, which it sounds like is what you want). If you want to start other programs (terminals, xclocks, instances of emacs or mozilla, just add lines like
/usr/bin/enlightenment > $HOME/.enlightenment/ERRORS
earlier in the ~/.xsession script.
mozilla &
I haven't tested this with RH 9, but this is how it used to work.
any comments / suggestions on using metacity without gnome? I would especially like to be able to create custom menus keyed to the 3 mouse buttons.
Posted by: Jeff on October 3, 2003 01:22 AMDoes anyone know of a way to change the mouse keys config in metacity, like to click and hold the right mouse button instead of the middle mouse button to resize a window? I'd really rather use the right mouse button...
Posted by: ernie on October 3, 2003 02:53 PMSawfish also had the ability to bind keys with custom code. I set a key to just raise xterms and another to just raise emacs windows. How do I do this in metacity?
Posted by: Matt on November 23, 2003 10:55 PMI have been looking for an option to make windows popup under the mouse cursor in metacity, but can't find it. Does anyone know if this is possible at all?
The only window placement i can get is in the top left corner for _each_ window.
Some help would be appreciated.
Oh yeah...for those looking for a GUI interface to configuring metacity, check out: gconf-editor
Posted by: Jasper on November 27, 2003 05:11 PM