From bcf9e61812e867291f2158ad4d14bc233aa1e757 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Tue, 27 Jan 2026 20:30:49 -0500 Subject: kanata config --- desktop/.config/kanata/kanata.kbd | 113 ++++++++++++++++++++++++++++++++++++ emacs/.config/emacs/init.el | 5 ++ emacs/.config/emacs/lisp/kj-init.el | 6 -- 3 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 desktop/.config/kanata/kanata.kbd diff --git a/desktop/.config/kanata/kanata.kbd b/desktop/.config/kanata/kanata.kbd new file mode 100644 index 0000000..296f0df --- /dev/null +++ b/desktop/.config/kanata/kanata.kbd @@ -0,0 +1,113 @@ +;; Kanata Configuration File for Graphite Anglemod Layout + +;; Add a default configuration section to define unmapped key behavior. +(defcfg + process-unmapped-keys no ;; Ensure unmapped keys are passed to the OS unchanged. +) + +(defvar + tap-time 200 + hold-time 150 + + left-hand-keys ( + q w e r t + g + z x c v b + ) + + right-hand-keys ( + y u i o p + h + n m , . / + ) +) + +(deffakekeys + to-base (layer-switch graphite) +) + +;; Define the source keys Kanata will intercept. +(defsrc + 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 z x c v b n m , . / rsft + lctl lmet lalt spc ralt rmet rctl +) + +;; Default QWERTY Layout +(deflayer qwerty + @grl 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 z x c v b n m , . / rsft + lctl lmet lalt spc ralt rmet rctl +) + +;; (deflayermap nomods +;; a n +;; s r +;; d t +;; f s +;; j h +;; k a +;; l e +;; ; i +;; ) + +(defalias + quote (fork ' S-- (lsft rsft)) ;; ' -> _ + comma (fork , S-/ (lsft rsft)) ;; , -> ? + hyphen (fork - S-' (lsft rsft)) ;; - -> " + slash (fork / S-, (lsft rsft)) ;; / -> < + + tap (multi + (layer-switch nomods) + (on-idle-fakekey to-base tap 20) + ) + + n (tap-hold-release-keys $tap-time $hold-time (multi n @tap) lmet $left-hand-keys) + r (tap-hold-release-keys $tap-time $hold-time (multi r @tap) lalt $left-hand-keys) + t (tap-hold-release-keys $tap-time $hold-time (multi t @tap) lctl $left-hand-keys) + s (tap-hold-release-keys $tap-time $hold-time (multi s @tap) lsft $left-hand-keys) + h (tap-hold-release-keys $tap-time $hold-time (multi h @tap) lsft $right-hand-keys) + a (tap-hold-release-keys $tap-time $hold-time (multi a @tap) lctl $right-hand-keys) + e (tap-hold-release-keys $tap-time $hold-time (multi e @tap) lalt $right-hand-keys) + i (tap-hold-release-keys $tap-time $hold-time (multi i @tap) lmet $right-hand-keys) + + + ;; Tap: backtick (grave), Hold: toggles 'layers' for layer switching. + grl (tap-hold 200 200 grv (layer-toggle layers)) + + ;; Layer-switch aliases + gar (layer-switch graphite) + qwr (layer-switch qwerty) + + ;; Tap for Caps Lock, Hold for Ctrl + cap (tap-hold 200 200 caps lctl) +) + +(deflayer graphite + @grl 1 2 3 4 5 6 7 8 9 0 [ ] bspc + tab b l d w z @quote f o u j ; = \ + lctl @n @r @t @s g y @h @a @e @i @comma ret + lsft q x m c v k p . @hyphen @slash rsft + lctl lmet lalt spc ralt rmet rctl +) +(deflayer nomods + @grl 1 2 3 4 5 6 7 8 9 0 [ ] bspc + tab b l d w z @quote f o u j ; = \ + lctl n r t s g y h a e i @comma ret + lsft q x m c v k p . @hyphen @slash rsft + lctl lmet lalt spc ralt rmet rctl +) + +;; Keys 1 and 2 switch between QWERTY and Graphite +;; The _ (underscore) indicates transparent behavior (passes through base layer). +(deflayer layers + _ @qwr @gar _ _ _ _ _ _ _ lrld _ _ _ + _ _ _ _ _ _ _ _ _ _ _ _ _ _ + _ _ _ _ _ _ _ _ _ _ _ _ _ + _ _ _ _ _ _ _ _ _ _ _ _ + _ _ _ _ _ _ _ +) diff --git a/emacs/.config/emacs/init.el b/emacs/.config/emacs/init.el index b5efbed..2e52519 100644 --- a/emacs/.config/emacs/init.el +++ b/emacs/.config/emacs/init.el @@ -386,6 +386,11 @@ :config (emojify-set-emoji-styles '(unicode))) +;;;;; Fonts +(use-package mixed-pitch + :hook + (org-mode . mixed-pitch-mode) + ) ;;;;; Mode line (use-package emacs :ensure nil diff --git a/emacs/.config/emacs/lisp/kj-init.el b/emacs/.config/emacs/lisp/kj-init.el index 1cf70b0..5c92bf9 100644 --- a/emacs/.config/emacs/lisp/kj-init.el +++ b/emacs/.config/emacs/lisp/kj-init.el @@ -42,12 +42,6 @@ (completing-read "Repository: " repos) (concat "ssh://dragon.orbekk.com:/storage/projects/")))) -(use-package mixed-pitch - :hook - (text-mode . mixed-pitch-mode) - (org-mode . mixed-pitch-mode) - ) - (when (string= (system-name) "fedora") (setenv "SSH_AUTH_SOCK" (string-trim (shell-command-to-string "gpgconf --list-dirs agent-ssh-socket")))) -- cgit v1.2.3