stumpwm/key-mapping.lisp @ a65fd2691c94 default tip
More
| author | Steve Losh <steve@stevelosh.com> | 
|---|---|
| date | Mon, 03 Nov 2025 14:55:17 -0500 | 
| parents | 890e2d48b6f7 | 
| children | (none) | 
(in-package :stumpwm-user) (defcommand nop () () nil) ;;; Conventions: ;;; ;;; * Hyper-dir: move focus ;;; * Hyper-Shift-dir: move window ;;; * Hyper-Shift-Control-dir: swap window ;;; * Hyper-F*: hardware ;;; * Shift-F*: timers ;;; * Hyper-Super-*: layout ;;; * Hyper-*: miscellaneous ;;; * Super-GAMERMOUSE: duplicate stuff to avoid swapping back (defmacro define-top-keys (&body keyforms) `(progn ,@(loop :for form :in keyforms :collect `(define-key *top-map* (kbd ,(first form)) ,(second form))))) (define-top-keys ;; miscellaneous ("H-m" "terminal") ("H-M" "terminal-here") ("H-SunPageUp" "st-font-up") ("H-SunPageDown" "st-font-down") ("H-z" "fullscreen") ("H-Z" "end-zoom") ("S-H-F1" "bht") ("C-S-F1" "bht") ("H-F4" "switch-yubikeys") ("H-\\" "pass-personal") ("H-|" "generate-password") ("s-1" "pass-um-1") ("s-2" "pass-um-2") ("H-b" "browser") ("H-O" "spotify") ("H-o" "files") ("H-t" "zoom-meeting") ("H-P" "papers") ("F26" "prev") ("S-F26" "next") ("H-q" "exec lock-screen") ("H-y" "screenshot") ("H-Y" "delayed-screenshot") ("H-r" "rain") ("H-e" "budget") ("H-E" "spend") ("S-XF86AudioMute" "terminal-font-size-show") ("S-XF86AudioRaiseVolume" "terminal-font-size-down") ; todo unfuck the backwards mapping in qmk ("S-XF86AudioLowerVolume" "terminal-font-size-up") ("C-BackSpace" "clear-notifications")) (define-top-keys ;; clipboard ("H-c" "show-clipboard-history") ("H-C" "clear-clipboard-history") ("H-u" "generate-random-uuid") ("H-B" "bee-movie-script")) (define-top-keys ;; movement ("H-h" "move-focus* left") ("H-j" "move-focus down") ("H-k" "move-focus up") ("H-l" "move-focus* right") ("H-H" "move-window left") ("H-J" "move-window down") ("H-K" "move-window up") ("H-L" "move-window right") ("H-1" "gselect 1") ("H-2" "gselect 2") ("H-3" "gselect 3") ("H-4" "gselect 4") ("H-5" "gselect 5") ("H-6" "gselect 6") ("H-7" "gselect 7") ("H-8" "gselect 8") ("H-9" "gselect 9") ("KP_Insert" "vgroups") ("KP_End" "gselect 1") ("KP_Down" "gselect 2") ("KP_Page_Down" "gselect 3") ("KP_Left" "gselect 4") ("KP_Begin" "gselect 5") ("KP_Right" "gselect 6") ("KP_Home" "gselect 7") ("KP_Up" "gselect 8") ("KP_Page_Up" "gselect 9") ("H-!" "gmove 1") ("H-@" "gmove 2") ("H-#" "gmove 3") ("H-$" "gmove 4") ("H-%" "gmove 5") ("H-^" "gmove 6") ("H-&" "gmove 7") ("H-(" "gmove 8") ("H-)" "gmove 9") ("C-H-H" "exchange-direction left") ("C-H-J" "exchange-direction down") ("C-H-K" "exchange-direction up") ("C-H-L" "exchange-direction right") ("H-`" "next") ("S-H-`" "prev") ("H-n" "next-in-frame") ("H-p" "prev-in-frame") ("H-N" "pull-hidden-next") ("H-," "pull-from-windowlist") ("H-." "ggo") ("H-SPC" "gother")) (define-top-keys ;; splitting ("H-s" "sane-vsplit") ("H-S" "vsplit-terminal-here") ("H-v" "sane-hsplit") ("H-V" "hsplit-terminal-here") ("H-=" "balance-frames")) (define-top-keys ;; killing ("H-w" "delete") ("H-W" "kill") ("H-BackSpace" "remove") ("S-H-BackSpace" "kill-and-remove") ("H-Delete" "gkill")) (define-top-keys ;; naming ("H-'" "title") ("H-\"" "grename") ;; ("H-less" "title") ("H-greater" "grename-cwd")) (define-top-keys ;; sound ("H-F1" "mute") ("H-F2" "volume-down") ("H-F3" "volume-up") ("XF86AudioMute" "mute") ("XF86AudioRaiseVolume" "volume-down") ; todo unfuck the backwards mapping in qmk ("XF86AudioLowerVolume" "volume-up")) (define-top-keys ;; screen ("H-F5" "rotate-brightness-down") ("H-F6" "rotate-brightness-up") ("H-F7" "screen-laptop") ("H-F8" "screen-external")) (define-top-keys ;; layout ("s-H-o" "only") ("s-H-n" "restore-from-file notes") ("s-H-t" "restore-from-file thirds") ("s-H-m" "restore-from-file dev") ("s-H-s" "restore-from-file streaming") ("s-H-w" "restore-from-file work") ("s-H-z" "restore-from-file zoom")) (define-top-keys ;; timers ("s-F7" "tea-timer") ("s-F9" "run-pop-timer") ("s-F8" "set-pop-timer") ("s-p" "posture-start") ("s-P" "posture-stop") ("s-y" "posture-answer-yes") ("s-h" "posture-answer-meh") ("s-n" "posture-answer-no") ("s-\\" "posture-toggle-pause") ("s-o" "posture-snooze")) (define-top-keys ;; stump ("Pause" "terminal") ; jesus christ ("H-F9" "sleep-machine") ("H-F10" "toggle-stumptray") ("H-F11" "toggle-current-mode-line") ("H-F12" "refresh-heads")) (defvar *keymap/igv* (make-sparse-keymap)) (define-key *keymap/igv* (kbd "s") "igv/supplementary-on") (define-key *keymap/igv* (kbd "S") "igv/supplementary-off") (define-key *keymap/igv* (kbd "g") "igv/group-selected") (define-key *keymap/igv* (kbd "G") "igv/group-none") (define-key *keymap/igv* (kbd "r") "igv/select-reads") (define-key *keymap/igv* (kbd "R") "igv/clear-read-selections") (define-key *keymap/igv* (kbd "l") "igv/goto") (define-key *keymap/igv* (kbd "L") "igv/goto-read") (define-key *keymap/igv* (kbd "0") "igv/goto-start") (define-key *keymap/igv* (kbd "i") "igv/init") (define-key *keymap/igv* (kbd "m") "igv/minimera") (define-key *keymap/igv* (kbd "H-i") "igv") (define-top-keys ;; alternate maps ("H-i" *keymap/igv*)) ;;; The G A M E R M O U S E: ;;; ;;; +----------+----------+----------+ _____ ;;; | | ^ | | / \ +--------+ ;;; | igv | | | igv | | | | | ;;; | z out | move | z in | group | | group | | ;;; +----------+----------+----------+ <----- | | -----> | | ;;; | | | | | | | | ;;; | move | | move | | | | | ;;; | <-- | | --> | \_____/ | kill | ;;; +----------+----------+----------+ | | ;;; | | move | | | | ;;; | | | | | +---------+ | | ;;; | | v | | | | | | ;;; +----------+----------+----------+ | next | | | ;;; | split | FULL | split | | | +--------+ ;;; | [-] | SCREEN | [|] | +---------+ ;;; | | | | | | ;;; +----------+----------+----------+ | prev | ;;; | | ;;; +---------+ (define-top-keys ;; GAMER MOUSE ;; Super layer ("s-!" "igv/zoom-out") ("s-@" "move-window up") ("s-#" "igv/zoom-in") ("s-$" "move-window left") ("s-%" "nop") ("s-^" "move-window right") ("s-&" "nop") ("s-*" "move-window down") ("s-(" "nop") ("s-)" "sane-vsplit") ("s-_" "fullscreen") ("s-+" "sane-hsplit") ("M-s-Left" "gprev") ("M-s-Right" "gnext") ("s-Home" "next-in-frame") ("s-End" "prev-in-frame") ("s-Delete" "remove") ;; Hyper-Super layer ("H-s-!" "nop") ("H-s-@" "resize-direction up") ("H-s-#" "nop") ("H-s-$" "resize-direction left") ("H-s-%" "fullscreen") ("H-s-^" "resize-direction right") ("H-s-&" "nop") ("H-s-*" "resize-direction down") ("H-s-(" "nop") ("H-s-)" "nop") ("H-s-_" "nop") ("H-s-+" "nop") ) (define-top-keys ;; Single-key keyboard ("S-C-F1" "igv")) (define-remapped-keys '(("st-256color" ("s-c" . "C-C") ("s-v" . "C-V") ("C-=" . "S-C-SunPageUp") ("C--" . "S-C-SunPageDown") ("C-0" . "S-C-Home")) ("(firefox|Google-chrome|Chromium-browser)" ("s-[" . "C-S-Tab") ("s-]" . "C-Tab") ("C-M-Left" . "C-S-Tab") ("C-M-Right" . "C-Tab") ("C-a" . "Home") ("C-e" . "End") ;; I always try to hit ctrl-d to kill a browser window because I'm so used ;; to terminal windows, and it ends up bookmarking the damn page. In the ;; interest of not having a random collection of bookmarks grow over time, ;; I'll just add a mapping to compensate for my stupid brain. ("C-d" . "C-w") ;; todo debug why this breaks a really fast C-a-k roll ;; ("C-a" . "Home") ;; ("C-e" . "End") ("s-a" . "C-a") ("s-d" . "C-d") ("s-l" . "C-l") ("s-t" . "C-t") ("s-w" . "C-w") ("s-r" . "C-r") ("s-f" . "C-f") ("s-z" . "C-z") ("s-x" . "C-x") ("s-c" . "C-c") ("s-v" . "C-v")) ("" ("s-z" . "C-z") ("s-x" . "C-x") ("s-c" . "C-c") ("s-v" . "C-v"))))