(defcfg ;; ** For Linux ** input (device-file "/dev/input/by-id/usb-04d9_USB-HID_Keyboard-event-kbd") ;; input (device-file "/dev/input/by-path/platform-i8042-serio-0-event-kbd") output (uinput-sink "KMonad output") ;; ** For Windows ** ;; input (low-level-hook) ;; output (send-event-sink) ;; ** For MacOS ** ;; input (iokit-name "my-keyboard-product-string") ;; output (kext) fallthrough true ) (defsrc esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 grv 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] caps a s d f g h j k l ; ' \ ret lsft 102d z x c v b n m , . / rsft lctl lmet lalt spc ralt rmet cmp rctl ) (defalias qwerty-enter (tap-macro (cmd-button "echo qwerty > /tmp/kmonad-layer") (layer-switch qwerty)) qwerty-exit (tap-macro (cmd-button "echo colemak > /tmp/kmonad-layer") (layer-switch colemak-dh)) ) (deflayer colemak-dh caps f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 grv 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w f p b j l u y ; [ ] esc (tap-hold-next-release 200 a lctrl) (tap-hold-next-release 200 r ralt) (tap-hold-next-release 200 s lmet) t g m n (tap-hold-next-release 200 e rmet) (tap-hold-next-release 200 i lalt) (tap-hold-next-release 200 o rctrl) ' \\ ret lsft z x c d v 102d k h , . / rsft lctl lmet lalt spc ralt _ @qwerty-enter @qwerty-enter ) (deflayer qwerty esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 grv 1 2 3 4 5 6 7 8 9 0 - = bspc tab q w e r t y u i o p [ ] caps a s d f g h j k l ; ' \ ret lsft 102d z x c v b n m , . / rsft lctl lmet lalt spc ralt rmet @qwerty-exit @qwerty-exit )