anchor.diff:               (rplacd ,asc #',fn)
                (push (cons ,sc #',fn) *shortcuts*))))))
   
  -(defun on-p (switch window) (getf (xlib:window-plist window) switch))
  -(defun on (switch window &optional (value t)) (setf (getf (xlib:window-plist window) switch) value))
  -(defun off (switch window) (remf (xlib:window-plist window) switch))
  -(defun toggle (switch window &optional value)
  -  (if (on-p switch window) (off switch window) (on switch window value)))
  +(defun pinned-p (window) (getf (xlib:window-plist window) :pinned))
  +(defun pin (window) (setf (getf (xlib:window-plist window) :pinned) t))
  +(defun unpin (window) (remf (xlib:window-plist window) :pinned))
  +(defun toggle-pin ()
  +  (if (pinned-p *curr*) (unpin *curr*) (pin *curr*)))
   
   (defun correct-size (window &optional x y width height dx dy dw dh)
     "Correct a window's dimensions with its sizehints."
  
positive.code: 		   :y (- (truncate sh 2) (truncate h 2))))))
  
  (defun wash-sticky-position ()
    (off :pinned *curr*))
  
  (defun split-string (string &optional (character #\Space))
    "Returns a list of substrings of string
  
negative.code:                       (incf y new-h)
                        (setf height (abs new-h)))
                       (t (setf height new-h)))))
      (unless (pinned-p window)
        (setf (xlib:drawable-x window) x
  	    (xlib:drawable-y window) y
  	    (xlib:drawable-width window) width
  