nix-darwin/dotfiles/kanata/conf.kbd

152 lines
4 KiB
Text
Raw Normal View History

(defcfg
process-unmapped-keys yes
block-unmapped-keys yes
concurrent-tap-hold yes
movemouse-smooth-diagonals yes
2026-04-04 19:21:49 -04:00
macos-dev-names-include (
"0xD4359520DA829EC8" ;; Macbook
"0x2E7E3EBD4C615B55" ;; Macbook
"0x4C044B7D74E4DBB4" ;; Gamestop keeb
"0xC7C83E024FB08653" ;; Razer Hunstman V2 TKL
)
)
#|
Trying to be minimal in order to reduce constant editing
of layer keys, not to mention how ugly having a 60% layout
is when you have mapped keys in the grid.
|#
(defsrc
caps
q w e r t y u i o p
a s d f g h j k l scln
z x c v b n m , . /
lmet spc rmet
)
;; Variables for clean code
(defvar
tap-time 200
hold-time 250
chord-time 50
)
;; Bindings
(defalias
;; Normal keyboard layer for gaming/other normie usage
normie (layer-switch norm)
;; Key chord definitions
chw (chord ch w)
che (chord ch e)
chi (chord ch i)
cho (chord ch o)
chs (chord ch s)
chd (chord ch d)
2026-04-04 19:21:49 -04:00
chf (chord ch f)
chj (chord ch j)
chk (chord ch k)
chl (chord ch l)
ch_lmet (chord ch lmet)
ch_rmet (chord ch rmet)
navlayer (layer-while-held nav)
hyper (multi lsft lctl lalt lmet)
meh (multi lsft lctl lalt)
caps (tap-hold $tap-time $hold-time (tap-dance 200 ((multi lctl spc) @meh caps)) @navlayer)
a (tap-hold $tap-time $hold-time a lctl)
s (tap-hold $tap-time $hold-time s lalt)
d (tap-hold $tap-time $hold-time d lmet)
f (tap-hold $tap-time $hold-time f lsft)
j (tap-hold $tap-time $hold-time j rsft)
k (tap-hold $tap-time $hold-time k lmet)
l (tap-hold $tap-time $hold-time l lalt)
scln (tap-hold $tap-time $hold-time scln rctl)
numpad (layer-while-held num)
g (tap-hold $tap-time $hold-time g @numpad)
fnkeys (layer-while-held fn)
h (tap-hold $tap-time $hold-time h @fnkeys)
2026-04-04 19:21:49 -04:00
v (tap-hold $tap-time $hold-time v @meh)
m (tap-hold $tap-time $hold-time m @meh)
symbols (layer-while-held symbol)
spc (tap-hold $tap-time $hold-time spc @symbols)
medialy (layer-while-held md)
z (tap-hold $tap-time $hold-time z @medialy)
/ (tap-hold $tap-time $hold-time / @medialy)
)
;; Chord definitions. Kind of weird to read as a layperson
;; so I provided sufficient comments for general understanding.
(defchords ch $chord-time
(w ) w
( e) e
(w e) XX
(i ) i
( o) o
(i o) XX
(s ) @s
( d) @d
(s d) ret
2026-04-04 19:21:49 -04:00
(f ) @f
(f d) tab
2026-04-04 19:21:49 -04:00
(j ) @j
(j k) esc
(k ) @k
( l) @l
(k l) bspc
2026-04-04 19:21:49 -04:00
(lmet ) (tap-dance $tap-time ((multi lsft lctl lalt lmet) lmet))
( rmet) (tap-dance $tap-time ((multi lsft lctl lalt lmet) lmet))
(lmet rmet) (tap-hold $tap-time $hold-time @normie (layer-switch base))
)
(deflayer base
@caps
q @chw @che r t y u @chi @cho p
2026-04-04 19:25:35 -04:00
@a @chs @chd @chf @g @h @chj @chk @chl @scln
@z x c @v b n @m , . @/
@ch_lmet @spc @ch_rmet
)
(deflayer nav
_
mbck (movemouse-up 3 2) mfwd _ _ _ mlft mrgt (mwheel-up 50 120) (mwheel-down 50 120)
(movemouse-left 3 2) (movemouse-down 3 2) (movemouse-right 3 2) _ home left down up right end
_ _ _ _ _ _ _ _ _ _
_ _ _
)
(deflayer num
_
_ _ _ _ _ _ 7 8 9 _
_ _ _ _ _ _ 4 5 6 0 _
_ _ _ _ _ 1 2 3 _
_ _ _
)
(deflayer fn
_
f1 f2 f3 f4 _ _ _ _ _ _
f5 f6 f7 f8 _ _ _ _ _ _ _
f9 f10 f11 f12 _ _ _ _ _
_ _ _
)
(deflayer symbol
_
S-1 S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S-0
S-\ = - S-= S-- ` S-` S-scln ' S-'
_ \ S-[ S-] S-, S-. [ ] _ _
_ _ _
)
(deflayer norm
esc
q w e r t y u i o p
a s d f g h j k l scln
z x c v b n m , . /
@ch_lmet spc @ch_rmet
)
(deflayer md
_
_ _ _ _ _ _ _ _ _ _
prev pp next mute XX XX vold volu brdn brup
_ _ _ _ _ _ _ _ _ _
_ _ _
)