Whoa. This is nice, thanks! Thanks to everyone for keeping an eye on StumpWM, absolutely love seeing stuff like this pop up.
On Tue, Dec 31, 2024 at 2:25 PM <s...@posteo.net> wrote: > > > I put together a small asdf system to implement the functionality of > running code on key press/release of a modifier key. Its attached to > this email as a tarball with a readme. Its cleaner and more extensible > than the solution I gave earlier, and allows for arbitrary actions > instead of only mode line toggling. > > > > <s...@posteo.net> writes: > > >> > >> Some additional code to allow holding super to display the mode line: > >> > >> ``` lisp > >> (defun custom-press-handler (code state) > >> (declare (ignore state)) > >> (let ((super-keycodes (nth-value 6 (xlib:modifier-mapping *display*)))) > >> (when (member code super-keycodes :test #'=) > >> (toggle-mode-line (current-screen) (current-head)) > >> t))) > >> > >> (define-stump-event-handler :key-release (code state) > >> (declare (ignore state)) > >> (let ((super-keycodes (nth-value 6 (xlib:modifier-mapping *display*)))) > >> (when (member code super-keycodes :test #'=) > >> (toggle-mode-line (current-screen) (current-head)) > >> t))) > >> > >> (setf *custom-key-event-handler* 'custom-press-handler) > >> ``` > > > > NB: the above code requires you to grab the super keycode, which for me > > is 133, though you can find it by calling xlib:modifier-mapping. > > > > You can grab it like so in your init file: > > > > ``` lisp > > (xlib:ungrab-key (screen-root (current-screen)) your-super-key-code) > > ``` >