(defcommand move-focus* (direction) | |
((:direction "Enter a direction: ")) | |
(labels ((in-float-p () | |
(typep (current-group) 'float-group)) | |
(focus-first-frame () | |
(unless (in-float-p) | |
(dotimes (i 10) | |
(move-focus (ecase direction | |
(:left :right) | |
(:right :left)))))) | |
(next-group () | |
(ecase direction | |
(:right (gnext)) | |
(:left (gprev))) | |
(focus-first-frame))) | |
(unless (in-float-p) | |
(banish)) | |
(if (in-float-p) | |
(next-group) | |
(let ((frame (current-frame))) | |
(move-focus direction) | |
(when (eql frame (current-frame)) | |
(next-group)))))) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment