Notes: Hi, My foremost reason for looking at spager.jl was to fix an endlessly annoying bug: when displaying just one workspace and when not in 1st ws, Button1 would always switch to 1st ws, but pager display would remain in old ws. The other thing was finally exploring about that horrible sample.rc which I did not want in my rc file. What I wanted, and what in hindsight probably already worked anyways was just (require 'sawfish.wm.ext.pager) (setq pager-executable "/home/pfeiffer/bin/pager") (pager) And the second line shouldn't be necessary on a properly installed system. While exploring all this I noticed quite a bit of redundant, inefficient and, concerning the huge C-array with mysterious offsets, appalling code. So I went for a major rewrite: - current viewport gets framed over all else, so you can see it even when it's fully covered - viewport gets displayed properly even when it's not aligned to multiple of screen dimensions (as is easily achieved with http://dapfy.bei.t-online.de/sawfish/move-viewport/) - viewports are by default proportional to your screen - copies are, and stickies can be shown on every workspace and/or viewport - ignoreds are by default omitted - 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 immediately - 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 1/2 and C 3/4 the size of spager's) - use define-structure, keeping most symbols out of the global namespace - make dependencies between customization options explicit TODO: - Highlight viewport transparently after drawing windows. This can't be achieved well with gc functions, maybe with gdk-pixbuf? - Display a background picture, maybe even a dynamically updated miniature of the various workspace's wallpapers - Moving copies should take into account which copy was moved What I have not messed with are the mouse bindings. These should be configurable and I would find it way more intuitive to have Button1 drag if I move the mouse. And Button3 should be done in sawfish (via a private extended keymap) and popup a context menu where I can change the setting (most importantly pager-show-all-workspaces) ad hoc. best regards Daniel
Changes: 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 immediately * 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
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use