anchor.diff:  
   ;;; Main
   (defun main ()
  -  (let ((prefix (compile-shortcut *prefix*))
  -        (move (compile-shortcut *move*))
  -        (resize (compile-shortcut *resize*))
  -        (kill  (compile-shortcut *kill*))
  -        last-button last-x last-y waiting-shortcut)
  +  (let (last-button last-x last-y waiting-shortcut)
   
       ;; Grab prefix and mouse buttons on root
  -    (grab-key *root* (code prefix) :modifiers (state prefix))
  -    (grab-button *root* (code move) '(:button-press) :modifiers (state move))
  -    (grab-button *root* (code resize) '(:button-press) :modifiers (state resize))
  -    (grab-button *root* (code kill) '(:button-press) :modifiers (state kill))
  +    (grab-key *root* (code *prefix*) :modifiers (state *prefix*))
  +    (grab-button *root* (code *move*) '(:button-press) :modifiers (state *move*))
  +    (grab-button *root* (code *resize*) '(:button-press) :modifiers (state *resize*))
  +    (grab-button *root* (code *kill*) '(:button-press) :modifiers (state *kill*))
   
       ;; Populate list of windows
       (loop for w in (query-tree *root*) do
  
positive.code: (defror xxxterm)
  
  ;;; Mouse shorcuts
  (defparameter *move* '(:mod-1 1) "Mouse button to move a window")
  (defparameter *resize* '(:mod-1 3) "Mouse button to resize a window")
  (defparameter *kill* '(:control :mod-1 2) "Mouse button to kill a window")
  
  ;;; Key shortcuts
  (defparameter *prefix* '(:control #\t) "Prefix for shortcuts")
  (defshortcut (#\c) (run-program "xterm" nil :wait nil :search t))
  (defshortcut (#\e) (emacs))
  (defshortcut (#\w) (xxxterm))
  
negative.code:                                      ((eq fn 'quit) (loop-finish))))))
                           (ungrab-keyboard *display*)
                           (setf waiting-shortcut nil)))
                        ((and (= state (state *prefix*)) (= code (code *prefix*)))
                         (grab-keyboard *root*)
                         (setf waiting-shortcut t))))
                 (:button-press
                  (code state child)
                  (when (and child (eql (window-override-redirect child) :off))
                    (cond ((and (= code (code *kill*))
                                (= state (state *kill*)))
                           (kill-client *display* (window-id child)))
                          (t
                           (setf last-button code)
                           (grab-pointer child '(:pointer-motion :button-release))
                           (when (and (= code (code *resize*))
                                      (= state (state *resize*)))
                             (warp-pointer child (drawable-width child)
                                           (drawable-height child)))
                           (let ((lst (multiple-value-list (query-pointer *root*))))
  