nix-darwin/dotfiles/kanata/conf.kbd

158 lines
4.1 KiB
Text
Executable file

(defcfg
process-unmapped-keys yes
block-unmapped-keys yes
concurrent-tap-hold yes
movemouse-smooth-diagonals yes
macos-dev-names-include (
"0xD4359520DA829EC8" ;; Macbook keyboard
"0x2E7E3EBD4C615B55" ;; Karabiner Driver
)
)
#|
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)
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 mousenav)
vimlayer (layer-while-held vimnav)
hyper (multi lsft lctl lalt lmet)
meh (multi lsft lctl lalt)
caps (tap-hold $tap-time $hold-time (tap-dance 200 ((multi lalt 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)
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) @hyper
(i ) i
( o) o
(i o) @hyper
(s ) @s
( d) @d
(s d) ret
(f ) @f
(f d) tab
(j ) @j
(j k) esc
(k ) @k
( l) @l
(k l) bspc
(lmet ) (tap-dance $tap-time (@vimlayer lmet))
( rmet) (tap-dance $tap-time (@navlayer rmet))
(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
@a @chs @chd @chf @g @h @chj @chk @chl @scln
@z x c @v b n @m , . @/
@ch_lmet @spc @ch_rmet
)
(deflayer mousenav
_
_ mbck (movemouse-up 3 2) mfwd _ _ _ _ _ _
(multi lctl lsft tab) (movemouse-left 3 2) (movemouse-down 3 2) (movemouse-right 3 2) (multi lctl tab) _ mlft mmid mrgt _
_ _ _ _ _ _ XX XX XX XX
_ _ _
)
(deflayer vimnav
_
_ _ _ _ _ _ _ _ _ _
_ _ _ _ (multi lmet left) left down up right (multi lmet right)
_ _ _ _ _ _ _ _ _ _
_ _ _
)
(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-. [ ] 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 ins del vold volu brdn brup
_ _ _ _ _ _ _ _ _ _
_ _ _
)