A pager is a map of your desktop. As maps go, it shows not only the visible
part (your current viewport), but, if you are so configured, also the parts
that extend beyond the sides of your screen. Also, if you have more than one
workspace, the pager will follow you to where you are, or optionally show all
workspaces at once. Of course you can select viewports and windows, and also
move or raise/lower the latter.
Version 0.6 (2002-12-21, Nicolae Ceauşescu - Ultima cuvintarea 1989)
- Moving windows in pager immediately affects real window.
- Sticky windows can no longer be dragged off-screen where sawfish can't get
- Can now act as a Gtk plugin, by supplying the id of the window to plug
to. (Thanks to Andreas Büsching)
- Simpler installation. The pager executable is now also found by default
- Sawfish version now recognized automatically, including fake Read Hat
2.0.pre1. (Thanks to Juho Snellman)
- Three more late display updates removed. Late display when
sliding however is a sawfish bug (upto 1.2 inclusive), fixed with an
included patch not yet applied to sawfish CVS.
- Pager is again restartable.
- The stop argument to pager is now moved to second position.
Version 0.5a (2002-11-20, Nürnberg anti-Nazi trials 1945)
- Handles new colour scheme when compiled for sawfish 1.2. (Thanks to Tim Lee)
- Eliminated "late display" when some things change. Late display when
(un-)shading however is a sawfish bug (upto 1.2 inclusive), fixed with an
included patch not yet applied to sawfish CVS.
- Moving and resizing of windows gets displayed as it happens.
- Buffered input saves many system calls and lookahead reading eliminates
multiple susccessive window redraws.
- Require GNU make. Automatically detect GTK2 (make GTK1=1 to
override.) Free choice of compiler and options.
- Don't hog CPU when sawfish crashes.
Version 0.4a (2002-09-11, who the hell are Osama and George?)
- Optionally paint your own pager. The first screenshot in the example
above uses a copy of an empty pager with only the background coloured. The
second uses my scaled down wallpapers (that's me with my daughter :-) and
blended viewport boundaries. These will tile if you have more workspaces
than you paint, but if you display only the current workspace, it'll always be
shown with the first background.
- Optionally support GTK2. (Thanks to Rui Miguel Seabra)
- Make pager be skipped on taskbar as soon as corresponding GTK2 bug is fixed.
- Don't frame over current viewport if you have only one.
Version 0.3 (2002-07-14, mourning the end of pluralism in France)
- Two bugfixes (pager size and phantom window on empty pager) relevant if
you only display the current workspace in the pager.
Version 0.2 (2002-07-11)
- Workspace boundaries are now drawn between workspaces, rather than inside
the left and top. Hence they no longer react to the mouse. This makes
window positions and sizes more consistent.
- Viewport (if you use this neat feature) boundaries are now drawn as light
frames inside each viewport, as there is conceptually no space between viewports
where a line could be drawn. Since GDK's dashed lines are a bit heavy when
you have two side by side, a one pixel border is left around the frames.
- When dragging a window onto a workspace boundary, it goes to the workspace
on which the mouse button is released, not where its top left corner is.
- If windows extend beyond the workspace, through clipping they now have no
frame on that side. This also allows dragging windows with a frame of their
actual size, rather than only the visible portion.
- Redundant commands are identified through caching, reducing interprocess
communication and redrawing.
- Remove -DFRAMEOVER from the Makefile to eliminate the dashed line frame
that goes above the windows.
Version 0.1 (2002-04-12)
This is a complete reimplementation of spager 0.16, without the
bugs, and with new features:
- Current viewport gets framed over all else, so you can see it even when
it's fully covered. (Satyaki, author of spager, feels this should be a user
option. Anybody else for that?)
- viewport gets displayed properly even when it's not aligned to multiple of
screen dimensions (as is easily achieved with my move-viewport patch.)
- ignoreds are by default omitted
- viewports are by default proportional to your screen
- copies are, and stickies can be shown on every workspace and/or viewport
- pager-show-all-workspaces works properly
- click on window will focus that by default
- click anywhere can optionally warp pointer to corresponding spot
- last row and column are as big as others
- Result of "Send window to/Copy to previous or next" now gets shown
- pager-executable defaults to be in sawfish-exec-directory
- replaced merlin/fancy-message with standard tooltips
- also show button bindings when generally enabled
- avoid tooltip flicker
- streamlined code (lisp is only ½ and C ¾ the size of spager's)
- use define-structure, keeping most symbols out of the global namespace
- make dependencies between customization options explicit
- Integrate new workspace grid.
- Tooltip for workspace name.
- Write small name into windows.
- Allow dragging one of multiple window copies to a different workspace,
eliminating it if already present on destination.
- Implement own viewport frame dashing, such that it alternates on
- Use better graphics library to highlight the viewport by making it n%
lighter (negative: darker).
- Scroll viewports and workspaces with mouse wheel(s). Maybe viewport columns
top to bottom, then left to right, then on to next workspace in same order?
Unpack the archive with:
$ tar xvzf path-to-this-file/pager-0.6.tgz
Build and install it to ~/.sawfish:
$ gmake private-install
Note that this installs both the source and the byte-compiled forms of the
module. Sawfish 1.0 - 1.2 have a bug whereby the configuration GUI cannot
display strings from byte-compiled modules. In that case you must call
sawfish-client and enter:
user> (pager nil t) ; in case the pager is already running
user> (load-file "~/.sawfish/lisp/sawfish/wm/ext/pager.jl")
Versions are not intercompatible with older ones! Make sure you reload both
the lisp module and the external program, for example by restarting sawfish.
In your resource file
you could add something like:
(add-hook 'after-initialization-hook pager t)