summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2026-01-27 20:57:06 -0500
committerKjetil Orbekk <kj@orbekk.com>2026-01-27 20:57:06 -0500
commit37ec87d7c669ffccdafebf0ce4b1daa1f503a82a (patch)
tree2f4d30886cbb78fc2034104b4e04f73c04a23abb
parentbcf9e61812e867291f2158ad4d14bc233aa1e757 (diff)
update katana config
-rw-r--r--desktop/.config/kanata/kanata.kbd65
1 files changed, 14 insertions, 51 deletions
diff --git a/desktop/.config/kanata/kanata.kbd b/desktop/.config/kanata/kanata.kbd
index 296f0df..6775d0f 100644
--- a/desktop/.config/kanata/kanata.kbd
+++ b/desktop/.config/kanata/kanata.kbd
@@ -5,27 +5,6 @@
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
@@ -44,16 +23,12 @@
lctl lmet lalt spc ralt rmet rctl
)
-;; (deflayermap nomods
-;; a n
-;; s r
-;; d t
-;; f s
-;; j h
-;; k a
-;; l e
-;; ; i
-;; )
+(deftemplate charmod (char mod)
+ (switch
+ ((key-timing 3 less-than 250)) $char break
+ () (tap-hold-release-timeout 200 500 $char $mod $char) break
+ )
+)
(defalias
quote (fork ' S-- (lsft rsft)) ;; ' -> _
@@ -61,20 +36,15 @@
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)
+ n (t! charmod n lmet)
+ r (t! charmod r lalt)
+ t (t! charmod t lctl)
+ s (t! charmod s lsft)
+ h (t! charmod h lsft)
+ a (t! charmod a lctl)
+ e (t! charmod e lalt)
+ i (t! charmod i lmet)
;; Tap: backtick (grave), Hold: toggles 'layers' for layer switching.
grl (tap-hold 200 200 grv (layer-toggle layers))
@@ -94,13 +64,6 @@
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).