nix-darwin/dotfiles/kanata/conf.kbd

152 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
"0x379FD7D8D8AE4ACA" ;; Logitech Wave Keys (Bluetooth)
"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)
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)
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
(f ) @f
(f d) tab
(j ) @j
(j k) esc
(k ) @k
( l) @l
(k l) bspc
(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
@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
_ _ _ _ _ _ _ _ _ _
_ _ _
)