Skip to content

Instantly share code, notes, and snippets.

@sjl
Created June 12, 2018 20:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sjl/309fa7e58d0fcfab7d1a657c159f12ce to your computer and use it in GitHub Desktop.
Save sjl/309fa7e58d0fcfab7d1a657c159f12ce to your computer and use it in GitHub Desktop.
(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