automate/020_kanata.sh

116 lines
8.0 KiB
Bash

#!/usr/bin/env bash
sudo apt-get update -qq
sudo apt-get install -y -qq kanata
# Kanata Configuration
# https://jtroo.github.io/config.html
# /dev/input/by-path/platform-i8042-serio-0-event-kbd
# The keyboard-layout-editor now has export to VIA functionality but you must
# add matrix properties before export.
# See /space/code_repositories/hardware/keyboards/zmk-related/dell_D830/Dell_latitude_D620_keyboard_matrix.ods.
# and /space/code_repositories/hardware/keyboards/zmk-related/dell_D830/Dell Latitude D630 keyboard DPN 0DR160.ods
#
# https://github.com/konpuku/vil2kanata features a vil2kanata converter.
# See /space/code_repositories/keymaps/vil2kanata/README_eng.md
# $ node vil2kanata.js my_keyboard.vil --output my_keyboard.kbd
# Dell D830 link to keyboard-layout-editor
# https://editor.keyboard-tools.xyz/#share=NobwRAhgrgLgFgewE5gFxgMYE8YFNcB2YANGAEYQYDWGCANsmmAMQCMurZnJYBEAtriYARXHToACYQA4AzAAYJ8gHIAFAKwB2aTwII8AZyYAVOLglVcWMgghIAJhIBmCKAUcBLAhPjn7YyWEJA1wkD1wDCQQnCToIAAcYBHiDAB0CYQA2VkUAWik5RQh3CQBZABYFeQA6HgwDI3QAegAqdNMvCRz5dIAZDwBzOBgJKvSAJVwBqDikCXL5HoJS3HsPKH4JdUX0gCF6R00dgl246gkATmOO726JAEkYCDoPDD7B4dHFh6eXt4JJtNZvNvo9nq90is1hstqDfhCTgcJEdFGC-nszlRLnDwf8Wk10ukAAIuAgwXJOSjmEDpCTOBBkikCDx0LCoCQAcnGCBsSQ5AG5afTGQYYFg6Lh2R54RhBd5heSAO64D4wdndOV0gxIDDsqBIOgACmGMBSqCaTVJMAM1QGoogMFe1Vo-CaBiaSB5+gQTQAbrIAExNADSADEAPIeADCBAAjgBRKAXAOhpCsUpQdSsACKSHjAC8AIL2XqK6qK6JOAMASnpSH4DsNHIrTirHOrcoAvoSCCSGeTKRhqUKrUz+Cy2ZzubyEAKR-3cqLxZKJNLcZqFbllar2VUN9rdRJ9UaTWaLVabXano6MM6EK73Z6Z37AyGIwArGMJpMptMZrPGO+hYAMoYJkUYGNm5aVjWdYNjATYtm2HbpN2BDEqOg7DvKmHMqy7Jcl6fIbqOS4SlKMokQu25DGqILyPuOp6gaxowKaBjmpa-aXvaN53g+HpET6-pBmG4ZUF+ibJqm6aZqwAAe9z3Pm9zQa2sEuPWjbNjB7Zdj2faMlhEg0jhC6UuO+FTkJc5mSKYrkRIehaXQVGMjRwzqosjGHserHsZxF62rxToum6gnPiJb7iZJP4yaU-ADAAaopymqUhGnIPBiG6ShBBoRh5lUiZ85GXhk6ETOtl0qRDkrs5DauaVSoqrRu7eUKB7MSebFnlxZI8deoX3uFT7ei+okRnQsXSX+-DAQAquoTi7LsGDlGpVa1pp2U6epemoQZuFDiVdkDuVBHTt61WbmR9VZc8bktTu9E+d1-l9UFV4OsNAljUkE3RfwM2-rJ5T8PJwabZlWkIXtyH6ehvYePw8TICMfkcqeHHntxtoIAgAwSgkHg2mF9QGAGAD8FkTgAvFdSSoGudDEIqtFEvIxAalze5cwsDFc9sgvECi-Jc1cDGsNz3nS3u0sC-y0vC0rouy8QksAGRrAY8RxFgdMGIqCQHUj1SWOKEBkGIXMSObVhxNbdDlMQdsW47YiZCZm601ZlXXfyEhoa0EgtN7uGWRVjOzoHnahwSSMeNUfBIJ6iovAQ2F0tnGe4LkZgveU8TyahYCdsQoBgPJaDSNU2SZKQWBoDUAakBgTDMAGZABhgAZCKQMAdxgw8jzwThoNLYCUmgwAu1z8-EAvS-EOUAC6pCKs31TSBcpBwFvmjl2AgArsj2Z9I+fgCA1CQ4DV6guQ1PIrCZIsr9v2-rAu2ATxMOkzDyBcVgGAnAXDHhAGe68wCb1QDUHee8D5HwADweAAHyqCQCMUCSACCIKaKg9IyCUHASwAYcYsZcGoJvt-cB6A-4AKAU4TIPBoGwN3mAfeMDqiH1IIQ5QMJehUAoSgghqCsGSAEUIqhP9aEEH-oA4BAZmFbzgewhBPDUGqGgCEIRIiUG7CQLgCAgi8EoKoXfGoz9ygXGsTY2x1jWDqAHjQsAdDkyaCcGQJRnCVEcJqNwsAhD7gEBCBgnRBBajEHANIsAXjWHwM4f4whAAJe8uBJGRKgcothviuFII0RAAY5gFrxEkevSuTd741CqO-Gpiwv7j1QK3VRCS8koPjAYDA6Tb5b2fsLWpb8v7RPPsMi+SM5EBncZ4jeWT4l+NaaGVgYSRnLIIIAPjIpHONidvbJaiAmoNDAGLp1Df6jJWT2cZkywEz2XjcxedyhaQJYds2ZuT1EoNDLIJZpzvk9kALWkGymBXNQMAR5MzmlzLeaGcoRzzHVF6f09+X8nk+N2YQ0M6gjnIp2S0yFmQjlDJ+YS1xEyPFAuALcildzWCgu8diiFez3maC+Wc0ZwAJCACziCQq8AUyIuaS0g09gVc2pdM2lLzEn7OkGEwhUZxjGCaL0KMwgYU9MyC-BFixZCaCcYCgVNCQWirieC15DLQwXExWCnJEr3k5AtWK411qFmLJMVQrF4r5msEOS6jJsLP5WLsQGrQAqJ6GueQ61pogJR4BVZU6or8A0BvKOUdQ0hQ0opxQy+M7gY2P0WAmuxSaU1prpSawhmjClSBwS6sp4AKkP2qNUjVdSdW8oASSqZU80D1P1VzbVXMAyr1aQAGulagwAL0BfIAD6awIGQXWM653xAXfO2duseUuNkU4YBwD7BksHW8gAhKOlBzrKEZMFcATI+6GWpACSY3RXqz1ROcX-EBb7256oga0gAxcez53rn0nOYB4kD7dWkABJj3QvvUjQANQTLqXau+I67X3bqcLu1pABSY9GKAPHN5U4dx0hp6fuBeoa9hCAB6x68V4YJSy859D7CMLJZS25sgKOoM1seplMGGM4NQbxp9+GN38boQGWQuBSWtJaMeqVfGiVI0IfJ4T9HFOMYk62IQrTDTHvNQpllhD9OqZfep0Z-9NDlADNJt51Zj3yGZYpwhTR8WbNI+S4gA7WmABQCY9vm8MXsceR1pABqY9dMjmBfudF5eHHRUBiPoAPg3AAoO2JgTejKBUF1lSUpFdwAXtkDForvaaWsGqOoPJEgMBxAaHTDkKc065w5Cg4wVtHMrOQVVmrBg6tUDIBYMguR+iZ1yMBJ4GDchZvsM1yL+qr2tOzOkhlAB1JbhD4xrdQeMTbLWdsAE1XMnLS3yjtF6G5seixx1pC12tOdQdBs9DL7i3Y66g3Dj3CHhhe4SwhtHhNnc42g77IzCGybo25qe+rgtvJAMe4As2v1vM7Me1eObqgBkcZDme0hSvo8xxwppipFGoDK-j4nk95LE-rRjo+gAC6jADWztqBCtY+BbjzQFW3lRgSJEXoCBqAI+BfNt5hYdvAR28qvDRASfzJ2wAcR20kw7MjjttsuaQaXrBWkAClgffMIae0xbzgx6-PoQx9RuGW9FN6Mwh-7-tQ+II4i7EtAeoDCXKfjhDci4PuEbwD6BWNO8B0SY9HJBez0BwAP2PcwXLlcL245p6QRLgBRHYkIQ4CcAPBOBgBHxxa8j4ADLCS3vPXNwHAAtHbAANHbUYdtJR27sHbyhleibM8Sy5rTSg257IQhz4PdWs8vcQYXAT0ikAyWp-jJ2yUN3O8V6L4-hHhLSxE-LjvndL4XoX0gVN0gJy96gsLQ-A-uZpQGLhnOwBp4z6I7Puf4-gGgaT1pUYYAGhjfW7oTa80Dw7nkEs2szA0hSrVUyHhHmHjJT3z2S6wgFqw5H4AaAkGQIMFyAWgIFeAQH8FyCjHvAbHcFyFkBmwC31ST1aULDoDzzwxoS5kyVQHUDxyPioRoXqTQCaQK0ByoJGDlyQEizQBZ0T1FTK2TwZQ-y-zwzvjKwAXzTsQbm-kALcX5RExZWAwuHfSD0pUX2lk0BpRqAuC-hyUMKPhZUS0AEQdnsQAXOp0hAAeMgZzyyrgnivxZzrUfjkPkMGVMxWWA2WkyBIxH2XmlgXgbj0NDUMJeRMNIHPkLFgAQHPkS0AAQduwsxNAeteQWQDwmxBxFtDvEZYDMgEDXddzC7RfXtbmfQ6oCI41KIvI75RLQAZB3z5bD0hAB86lSNjQyKyPsUxxn2+WAwgEpC3S0KXyvXCKMK3lqPPkAApiBIwAJB30hABeDcAFPdhnVeIAA
conf_print_kanata_kbd() {
cat <<EOF
(defcfg
;; Dell D830 keyboard device.
linux-dev /dev/input/by-path/platform-i8042-serio-0-event-kbd
)
(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
)
(defsrc
;; vold volu mute gui kprt nlck pause ins home pgup
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del end pgdn
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 fn lmet lalt spc ralt rctl u
left down rght
)
(deflayer qwerty
grv _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ @warrows _ _ _ _ _ _ _ _ _ _
lctrl @alctrl @slsft @dlalt @flmet _ _ @jrmet @kralt @lrsft @;rctrl _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ @smartspace _ _ _
)
(deflayer arrows
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ @flmet _ left down up rght _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ @smartspace _ _ _
)
(deflayer colemak
grv XX XX XX XX XX XX XX XX XX XX XX XX _
tab q w f p b j l u y ; [ ]
lctrl @alctrl @rlsft @slalt @tlmet g m @nrmet @eralt @irsft @orctrl ' ret
lsft XX z x c d v k h , . / rsft
XX XX XX @smartspace XX XX XX
)
(deflayer magic
_ @clmk @qwerty _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ tab A-tab _ _ _ _ bspc esc _ ret _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _
)
(defalias
warrows (tap-hold 200 200 w (layer-toggle arrows))
alctrl (tap-hold 200 200 a lctrl)
slsft (tap-hold 200 200 s lsft)
dlalt (tap-hold 200 200 d lalt)
flmet (tap-hold 200 200 f lmet)
jrmet (tap-hold 200 200 j rmet)
kralt (tap-hold 200 200 k ralt)
lrsft (tap-hold 200 200 l rsft)
;rctrl (tap-hold 200 200 ; rctrl)
rlsft (tap-hold 200 200 r lsft)
slalt (tap-hold 200 200 s lalt)
tlmet (tap-hold 200 200 t lmet)
nrmet (tap-hold 200 200 n rmet)
eralt (tap-hold 200 200 e ralt)
irsft (tap-hold 200 200 i rsft)
orctrl (tap-hold 200 200 o rctrl)
clmk (layer-switch colemak)
qwerty (layer-switch qwerty)
smartspace (tap-dance 200 (
(tap-hold 300 300 spc (layer-toggle magic))
(tap-hold 300 300 (one-shot 300 lalt) spc)
a
))
)
EOF
}
conf_print_kanata_kbd | tee ${DEST}/.config/kanata/kanata.kbd