Making GNOME 2.2 Usable with ViewportsEdit
While I support the GNOME Project's recent work on improving usability, I'm not a big fan of the switch from using viewports to workspaces by default. What's the difference? Both viewports and workspaces are a way of configuring virtual desktops.
- A "workspace" is one of several complete independent virtual desktops
- A "viewport" is a screen-sized portion of a virtual desktop which can be much larger than your physical screen.
In practice, the major difference is that windows can span viewport boundaries, but not workspace boundaries. Apparently this is confusing behavior for many people, so the GNOME folks have decided to get rid of viewports. However, viewport-spanning can be a very useful feature, particularly if you ever have to deal with files containing really long lines and want to stretch some Xterms out to 400 character line lengths... There's been a lot of griping and arguing about the merits of viewports vs. desktops on various mailing lists, and I don't want to repeat it here. Suffice it to say that I want viewports, and luckily that option is still available - it just takes some more work to set up.
The following instructions work for Debian "testing" as of November 7, 2003. If this page is still online and horribly out of date and you're reading it in 2011 or something like that, I apologize!
Switching to SawfishEdit
First you have to switch from the new and improved(read "broken and feature-poor") GNOME window manager metacity to the (much better, IMO) sawfish. Make sure you've got sawfish installed (via apt-get or rpm or emerge, etc...) Basically you want to kill metacity and then start sawfish, but by default if you kill the current window manager, gnome-session restarts it. So tell it not to:
Go to the Current Session tab. Find metacity in the list of running programs, and change the Style drop down box from "Restart" to "Normal". Now you can kill metacity without it immediately respawning.
killall metacity sawfish &
And that's it. You should now be running sawfish as your window manager. gnome-session will remember this and will start sawfish for you on all future logins.
Editing your .sawfishrcEdit
The viewports setup is no longer available in the sawfish GUI, but support for viewports themselves are still present. You just have to add a few lines to your .sawfishrc file to configure them.
Check out the OPTIONS file in the sawfish distribution (It's in /usr/share/doc/sawfish, at least on Debian) for all the possible options for your sawfishrc. Here are the relevant snippets from mine:
(define-special-variable customize-command-classes '(viewport default) "Also include commands of these classes the key bindings panel. Add the `viewport' keyboard to make viewport commands show up.") (define-special-variable viewport-dimensions '(4 . 2) "Size of each virtual workspace.")
Once you've done this, restart sawfish. There are a now few changes you can make in the sawfish GUI: Turn on edge flipping and make it flip viewports, not workspaces. I also like to add keybindings for Ctrl-Alt-<arrowkeys> to do Move Viewport Up, Down, Left, Right.
Configure GNOME to only have 1 workspace, and then configure the workspace switcher applet to only be 1 workspace high. Now you should be able to switch between viewports using the pager applet. However,
- Viewports are drawn in the pager with the wrong proportions! They're much narrower than the actual proportions of my screen. This looks bad and makes windows sometimes appear to be on a different viewport than they really are.
- You can't drag windows around between viewports in the pager. It will happily let you start dragging a window, but will fail to let you put it down on a new viewport. It works just fine to drag to another workspace, however, which makes this all the more annoying.