Nudge, nudge

Geoff Kuenning <[email protected]> Mon, 14 Feb 2022 19:30:02 -0800
Newsgroups gmane.comp.window-managers.sawfish
Message-ID <[email protected]>
There are some times (e.g., Zooming on multiple monitors) when I 
want to fine-tune window positions.  No worries; this is why I run 
Sawfish!  So I wrote a bit of simple code:

;
; Functions to increment window positions
;
(defun increment-window-position (w x y)
  "Increment a window's position by an arbitrary amount"
  (move-window-to w
                  (+ (car (window-position w)) x)
                  (+ (cdr (window-position w)) y)))

(defun nudge-window-right (w) (increment-window-position w 1 0))
(defun nudge-window-left (w) (increment-window-position w -1 0))
(defun nudge-window-up (w) (increment-window-position w 0 -1))
(defun nudge-window-down (w) (increment-window-position w 0 1))
(define-command 'nudge-window-right nudge-window-right #:spec 
"%W")
(define-command 'nudge-window-left nudge-window-left #:spec "%W")
(define-command 'nudge-window-up nudge-window-up #:spec "%W")
(define-command 'nudge-window-down nudge-window-down #:spec "%W")

Easy peasy!  And when I invoke them from sawfish-client, they work 
like a champ.  But...

My first attempt was to bind the nudge commands to the arrow keys 
in the title bar.  But AFAICT Sawfish doesn't capture title-bar 
keystrokes.  Rats.

So my second attempt was to create a modified window-ops-menu with 
the following extra entries:

    (,(_ "Nudge")
     (,(_ "Left") nudge-window-left)
     (,(_ "Right") nudge-window-right)
     (,(_ "Up") nudge-window-up)
     (,(_ "Down") nudge-window-down))

That's a bit clumsier, but I'm only moving things by a pixel or 
two so it's tolerable.  And it works, except...

For reasons I totally don't understand, the left/right entries 
work but the up/down ones don't.  The corresponding commands work 
just fine if I invoke them from sawfish-client.

Anybody have an idea why the horizontal commands work and the 
vertical ones don't?  And does anybody have suggestions about 
where I might modify the code so that it's possible to add key 
bindings to the title bar?
-- 
    Geoff Kuenning   [email protected] 
    http://www.cs.hmc.edu/~geoff/

"There's a true schizophrenia where if you say to voters, you 
know, do
you think the federal government spends too much money and they 
should
spend less, they say yeah, absolutely.  Then you name specific 
things,
like Pell grants for students and they say, no, not that.  How 
'bout
NIH, medical research funding?  Nah, you really shouldn't cut 
that.
And pretty soon you've proved that what the American public is 
against
is arithmetic."
	-- Bill Gates, March 10, 2011

-- 
Sawfish ML