Re: Show modeline when super key is pressed
<[email protected]> Tue, 31 Dec 2024 22:20:55 +0000
| Newsgroups | gmane.comp.window-managers.stumpwm.devel |
|---|---|
| Message-ID | <[email protected]> |
--=-=-= Content-Type: text/plain 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. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=gmk.tar.gz Content-Transfer-Encoding: base64 Content-Description: tarball of grabbable modifier keys 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 --=-=-= Content-Type: text/plain <[email protected]> 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) > ``` --=-=-=--