Toggle Pointer Head - Warp the pointer between xinerama heads
Try adding the following code to your sawfish config, and bind the
toggle-pointer-head
function to a key.
(defun toggle-pointer-head ()
(defun cons+ (a b)
(cons
(+ (car a) (car b))
(+ (cdr a) (cdr b))))
(defun head-centre (head)
(cons+
(cons-centre (head-dimensions head))
(head-offset head)))
(defun cons-centre (a)
(cons (/ (car a) 2) (/ (cdr a) 2)))
(defun warp-cursor-cons (c)
(warp-cursor (car c) (cdr c)))
(defun warp-pointer-to-head (head)
(warp-cursor-cons (head-centre head)))
(cond
((>= (1+ (pointer-head)) (head-count))
(warp-pointer-to-head 0))
(t (warp-pointer-to-head (1+ (pointer-head))))))
(bind-keys global-keymap "M-c" '(toggle-pointer-head))