├── app
├── prj.conf
├── boards
│ ├── shields
│ │ ├── clog
│ │ │ ├── clog.conf
│ │ │ ├── clog_left.overlay
│ │ │ ├── clog_right.overlay
│ │ │ ├── clog.zmk.yml
│ │ │ └── Kconfig.shield
│ │ ├── eek
│ │ │ ├── eek.conf
│ │ │ ├── README.md
│ │ │ ├── eek.zmk.yml
│ │ │ ├── Kconfig.shield
│ │ │ └── Kconfig.defconfig
│ │ ├── iris
│ │ │ ├── iris.conf
│ │ │ ├── iris_left.conf
│ │ │ ├── iris_right.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── iris.zmk.yml
│ │ ├── jian
│ │ │ ├── jian.conf
│ │ │ ├── jian_left.conf
│ │ │ ├── jian_right.conf
│ │ │ ├── jian.zmk.yml
│ │ │ ├── Kconfig.shield
│ │ │ └── Kconfig.defconfig
│ │ ├── m60
│ │ │ ├── m60.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── m60.zmk.yml
│ │ ├── qaz
│ │ │ ├── qaz.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── qaz.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── contra
│ │ │ ├── contra.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── contra.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── cradio
│ │ │ ├── cradio.conf
│ │ │ ├── cradio_left.conf
│ │ │ ├── cradio_right.conf
│ │ │ ├── cradio_left.overlay
│ │ │ ├── cradio_right.overlay
│ │ │ ├── Kconfig.shield
│ │ │ └── cradio.zmk.yml
│ │ ├── romac
│ │ │ ├── romac.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── romac.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── bfo9000
│ │ │ ├── bfo9000.conf
│ │ │ ├── bfo9000_left.conf
│ │ │ ├── bfo9000_right.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── bfo9000.zmk.yml
│ │ ├── corne
│ │ │ ├── corne_left.conf
│ │ │ ├── corne_right.conf
│ │ │ ├── corne.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── corne.zmk.yml
│ │ ├── ergodash
│ │ │ ├── ergodash.conf
│ │ │ ├── ergodash_left.overlay
│ │ │ ├── ergodash_right.overlay
│ │ │ ├── ergodash.zmk.yml
│ │ │ └── Kconfig.shield
│ │ ├── jorne
│ │ │ ├── jorne_left.conf
│ │ │ ├── jorne_right.conf
│ │ │ ├── jorne.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── jorne.zmk.yml
│ │ ├── kyria
│ │ │ ├── kyria_left.conf
│ │ │ ├── kyria_right.conf
│ │ │ └── kyria.zmk.yml
│ │ ├── naked60
│ │ │ ├── naked60.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── naked60.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── osprette
│ │ │ ├── osprette.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── osprette.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── quefrency
│ │ │ ├── quefrency.conf
│ │ │ ├── quefrency_left.conf
│ │ │ ├── quefrency_right.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── quefrency.zmk.yml
│ │ ├── hummingbird
│ │ │ ├── hummingbird.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── hummingbird.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── lily58
│ │ │ ├── lily58_right.conf
│ │ │ ├── lily58_left.conf
│ │ │ ├── lily58.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── lily58.zmk.yml
│ │ ├── microdox
│ │ │ ├── microdox_left.conf
│ │ │ ├── microdox_right.conf
│ │ │ ├── microdox.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── microdox.zmk.yml
│ │ ├── nibble
│ │ │ ├── boards
│ │ │ │ ├── proton_c.conf
│ │ │ │ └── nice_nano.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── nibble.conf
│ │ │ └── nibble.zmk.yml
│ │ ├── splitreus62
│ │ │ ├── splitreus62.conf
│ │ │ ├── splitreus62_left.conf
│ │ │ ├── splitreus62_right.conf
│ │ │ ├── splitreus62.zmk.yml
│ │ │ └── Kconfig.shield
│ │ ├── tidbit
│ │ │ ├── boards
│ │ │ │ ├── proton_c.conf
│ │ │ │ └── nice_nano.conf
│ │ │ ├── tidbit.overlay
│ │ │ ├── Kconfig.shield
│ │ │ ├── tidbit_19key.overlay
│ │ │ ├── tidbit.zmk.yml
│ │ │ └── tidbit.conf
│ │ ├── boardsource3x4
│ │ │ ├── boardsource3x4.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── boardsource3x4.zmk.yml
│ │ ├── boardsource5x12
│ │ │ ├── boardsource5x12.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── boardsource5x12.zmk.yml
│ │ ├── jiran
│ │ │ ├── jiran.conf
│ │ │ ├── jiran.zmk.yml
│ │ │ └── Kconfig.shield
│ │ ├── clueboard_california
│ │ │ ├── clueboard_california.conf
│ │ │ └── Kconfig.shield
│ │ ├── crbn
│ │ │ ├── README.md
│ │ │ ├── crbn.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── crbn.zmk.yml
│ │ ├── settings_reset
│ │ │ ├── settings_reset.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── Kconfig.defconfig
│ │ ├── sofle
│ │ │ ├── sofle_left.conf
│ │ │ ├── sofle_right.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── sofle.zmk.yml
│ │ │ └── sofle.conf
│ │ ├── tg4x
│ │ │ ├── tg4x.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── tg4x.zmk.yml
│ │ │ ├── Kconfig.defconfig
│ │ │ ├── boards
│ │ │ │ └── nice_nano.conf
│ │ │ └── README.md
│ │ ├── a_dux
│ │ │ ├── a_dux.conf
│ │ │ ├── a_dux_left.overlay
│ │ │ ├── a_dux_right.overlay
│ │ │ ├── Kconfig.shield
│ │ │ └── a_dux.zmk.yml
│ │ ├── murphpad
│ │ │ ├── boards
│ │ │ │ └── nice_nano.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── murphpad.conf
│ │ │ └── murphpad.zmk.yml
│ │ ├── chalice
│ │ │ ├── chalice.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── chalice.zmk.yml
│ │ ├── redox
│ │ │ ├── redox.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── redox.zmk.yml
│ │ ├── reviung41
│ │ │ ├── reviung41.conf
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── reviung41.zmk.yml
│ │ ├── quick_actions
│ │ │ ├── Kconfig.defconfig
│ │ │ ├── Kconfig.shield
│ │ │ ├── quick_actions.conf
│ │ │ └── quick_actions.zmk.yml
│ │ ├── Kconfig.shield
│ │ ├── bat43
│ │ │ ├── Kconfig.shield
│ │ │ ├── bat43.zmk.yml
│ │ │ └── Kconfig.defconfig
│ │ ├── knob_goblin
│ │ │ ├── Kconfig.shield
│ │ │ ├── knob_goblin.zmk.yml
│ │ │ └── knob_goblin.conf
│ │ ├── romac_plus
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ ├── romac_plus.conf
│ │ │ └── romac_plus.zmk.yml
│ │ ├── two_percent_milk
│ │ │ ├── Kconfig.shield
│ │ │ ├── Kconfig.defconfig
│ │ │ └── two_percent_milk.zmk.yml
│ │ ├── helix
│ │ │ ├── helix.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── helix.zmk.yml
│ │ ├── elephant42
│ │ │ ├── elephant42.conf
│ │ │ ├── Kconfig.shield
│ │ │ └── elephant42.zmk.yml
│ │ ├── fourier
│ │ │ ├── fourier.zmk.yml
│ │ │ └── Kconfig.shield
│ │ ├── leeloo
│ │ │ ├── Kconfig.shield
│ │ │ ├── leeloo.zmk.yml
│ │ │ └── leeloo.conf
│ │ ├── lotus58
│ │ │ ├── Kconfig.shield
│ │ │ ├── lotus58.zmk.yml
│ │ │ └── lotus58.conf
│ │ └── zodiark
│ │ │ ├── Kconfig.shield
│ │ │ ├── zodiark.conf
│ │ │ └── zodiark.zmk.yml
│ ├── arm
│ │ ├── planck
│ │ │ ├── CMakeLists.txt
│ │ │ ├── planck_rev6.zmk.yml
│ │ │ ├── Kconfig.board
│ │ │ ├── board.cmake
│ │ │ └── planck_rev6.yaml
│ │ ├── mikoto
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Kconfig.board
│ │ │ ├── mikoto_520.zmk.yml
│ │ │ ├── board.cmake
│ │ │ └── mikoto_520.yaml
│ │ ├── nice60
│ │ │ ├── Kconfig.board
│ │ │ ├── Kconfig
│ │ │ ├── nice60.zmk.yml
│ │ │ ├── nice60.yaml
│ │ │ ├── README.md
│ │ │ └── board.cmake
│ │ ├── nrfmicro
│ │ │ ├── CMakeLists.txt
│ │ │ ├── nrfmicro_11.zmk.yml
│ │ │ ├── nrfmicro_13.zmk.yml
│ │ │ ├── board.cmake
│ │ │ ├── nrfmicro_11_flipped.zmk.yml
│ │ │ ├── nrfmicro_11.yaml
│ │ │ ├── nrfmicro_13.yaml
│ │ │ ├── nrfmicro_11_flipped.yaml
│ │ │ └── Kconfig
│ │ ├── s40nc
│ │ │ ├── Kconfig.board
│ │ │ ├── s40nc.zmk.yml
│ │ │ ├── s40nc.yaml
│ │ │ ├── README.md
│ │ │ └── board.cmake
│ │ ├── bdn9
│ │ │ ├── bdn9_rev2.conf
│ │ │ ├── Kconfig.board
│ │ │ ├── bdn9_rev2.yaml
│ │ │ ├── bdn9_rev2.yml
│ │ │ ├── bdn9_rev2.zmk.yml
│ │ │ └── board.cmake
│ │ ├── dz60rgb
│ │ │ ├── Kconfig.board
│ │ │ ├── board.cmake
│ │ │ ├── Kconfig.defconfig
│ │ │ └── dz60rgb_rev1.yaml
│ │ ├── bluemicro840
│ │ │ ├── Kconfig
│ │ │ ├── Kconfig.board
│ │ │ ├── board.cmake
│ │ │ ├── bluemicro840_v1.zmk.yml
│ │ │ └── bluemicro840_v1.yaml
│ │ ├── bt60
│ │ │ ├── Kconfig
│ │ │ ├── bt60_v1.zmk.yml
│ │ │ ├── bt60_v1_hs.zmk.yml
│ │ │ ├── board.cmake
│ │ │ ├── bt60_v1.yaml
│ │ │ ├── bt60_v1_hs.yaml
│ │ │ └── Kconfig.board
│ │ ├── proton_c
│ │ │ ├── proton_c.zmk.yml
│ │ │ ├── Kconfig.board
│ │ │ ├── Kconfig.defconfig
│ │ │ ├── proton_c.yaml
│ │ │ └── board.cmake
│ │ ├── nice_nano
│ │ │ ├── Kconfig
│ │ │ ├── nice_nano.zmk.yml
│ │ │ ├── nice_nano_v2.zmk.yml
│ │ │ ├── board.cmake
│ │ │ ├── nice_nano.yaml
│ │ │ ├── nice_nano_v2.yaml
│ │ │ └── Kconfig.board
│ │ ├── ferris
│ │ │ ├── Kconfig.board
│ │ │ ├── ferris_rev02.yaml
│ │ │ ├── ferris_rev02.zmk.yml
│ │ │ ├── board.cmake
│ │ │ └── README.md
│ │ ├── nrf52840_m2
│ │ │ ├── Kconfig
│ │ │ ├── nrf52840_m2.zmk.yml
│ │ │ ├── Kconfig.board
│ │ │ ├── nrf52840_m2.yaml
│ │ │ └── board.cmake
│ │ ├── seeeduino_xiao
│ │ │ └── seeeduino_xiao.zmk.yml
│ │ └── seeeduino_xiao_ble
│ │ │ └── seeeduino_xiao_ble.zmk.yml
│ ├── Kconfig
│ ├── seeeduino_xiao.conf
│ ├── native_posix.conf
│ ├── native_posix_64.conf
│ └── seeeduino_xiao_ble.conf
├── .gitignore
├── tests
│ ├── none
│ │ ├── layered
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ └── normal
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── events.patterns
│ │ │ ├── native_posix.keymap
│ │ │ └── native_posix_64.keymap
│ ├── transparent
│ │ ├── normal
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ └── layered
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ └── native_posix_64.keymap
│ ├── backlight
│ │ ├── basic
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.conf
│ │ ├── cycle
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.conf
│ │ ├── config-brt
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── native_posix_64.keymap
│ │ │ └── native_posix_64.conf
│ │ ├── config-on
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── native_posix_64.keymap
│ │ │ └── native_posix_64.conf
│ │ ├── config-step
│ │ │ └── events.patterns
│ │ └── low-brightness
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.conf
│ ├── combo
│ │ ├── layer-filter-0
│ │ │ └── events.patterns
│ │ ├── layer-filter-1
│ │ │ └── events.patterns
│ │ ├── press-release
│ │ │ └── events.patterns
│ │ ├── press-timeout
│ │ │ └── events.patterns
│ │ ├── combos-and-holdtaps-1
│ │ │ └── events.patterns
│ │ ├── combos-and-holdtaps-2
│ │ │ ├── events.patterns
│ │ │ └── keycode_events.snapshot
│ │ ├── multiple-timeouts
│ │ │ └── events.patterns
│ │ ├── overlapping-combos-0
│ │ │ └── events.patterns
│ │ ├── overlapping-combos-1
│ │ │ └── events.patterns
│ │ ├── overlapping-combos-2
│ │ │ └── events.patterns
│ │ ├── overlapping-combos-3
│ │ │ └── events.patterns
│ │ ├── combos-and-holdtaps-0
│ │ │ └── events.patterns
│ │ ├── slowrelease-disabled
│ │ │ └── events.patterns
│ │ ├── slowrelease-enabled
│ │ │ └── events.patterns
│ │ ├── partially-overlapping-combos
│ │ │ └── events.patterns
│ │ ├── press1-press2-release1-release2
│ │ │ └── events.patterns
│ │ ├── press1-release1-press2-release2
│ │ │ └── events.patterns
│ │ ├── press-release-long-combo-complete
│ │ │ ├── events.patterns
│ │ │ └── keycode_events.snapshot
│ │ ├── press1-press2-release2-release1
│ │ │ └── events.patterns
│ │ ├── press-release-long-combo-incomplete
│ │ │ └── events.patterns
│ │ └── press-release-long-combo-wrong-last-key
│ │ │ └── events.patterns
│ ├── macros
│ │ ├── press-release
│ │ │ └── events.patterns
│ │ ├── mo-plus-modifier-macro
│ │ │ └── events.patterns
│ │ ├── mo-plus-modifier-from-hold-tap
│ │ │ └── events.patterns
│ │ ├── basic
│ │ │ └── events.patterns
│ │ ├── press-mid-macro
│ │ │ └── events.patterns
│ │ ├── timing-override
│ │ │ └── events.patterns
│ │ └── wait-macro-release
│ │ │ └── events.patterns
│ ├── sticky-keys
│ │ ├── 1-os-dn-up
│ │ │ └── events.patterns
│ │ ├── 10-sl-sl-kp
│ │ │ └── events.patterns
│ │ ├── 9-sk-dn-up-dn-up
│ │ │ └── events.patterns
│ │ ├── 10-callum-mods
│ │ │ └── events.patterns
│ │ ├── 2-os-dn-up-kcdn-kcup
│ │ │ └── events.patterns
│ │ ├── 2-sl-dn-up-kcdn-kcup
│ │ │ └── events.patterns
│ │ ├── 3a-os-dn-kcdn-kcup-up
│ │ │ └── events.patterns
│ │ ├── 3b-os-dn-kcdn-up-kcup
│ │ │ └── events.patterns
│ │ ├── 5-os-kcdn-dn-kcup-up
│ │ │ └── events.patterns
│ │ ├── 4-os-dn-up-kcdn-timer-kcup
│ │ │ └── events.patterns
│ │ ├── 8-lsk-osk-combination
│ │ │ └── events.patterns
│ │ ├── 2-os-dn-up-kcdn-kcup-quick-release
│ │ │ └── events.patterns
│ │ └── 7-os-dn-up-kc1dn-kc2dn-kc1up-kc2up
│ │ │ └── events.patterns
│ ├── key-repeat
│ │ ├── send-nothing-if-no-keys-pressed-yet
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ ├── ignore-other-usage-page-events
│ │ │ └── events.patterns
│ │ ├── press-and-release-after-key-usage
│ │ │ └── events.patterns
│ │ └── press-and-release-with-explicit-modifiers
│ │ │ └── events.patterns
│ ├── keypress
│ │ └── kp-press-release
│ │ │ ├── events.patterns
│ │ │ ├── native_posix_64.keymap
│ │ │ └── keycode_events.snapshot
│ ├── keytoggle
│ │ ├── kt-press-release
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ └── native_posix_64.keymap
│ │ ├── kt-press-release-nkro
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ ├── native_posix_64.conf
│ │ │ └── native_posix_64.keymap
│ │ ├── kt-alt-tab
│ │ │ └── events.patterns
│ │ └── kt-modded-alpha
│ │ │ └── events.patterns
│ ├── gresc
│ │ ├── gresc-press-release
│ │ │ └── events.patterns
│ │ └── gresc-two-instances
│ │ │ └── events.patterns
│ ├── toggle-layer
│ │ ├── normal
│ │ │ ├── events.patterns
│ │ │ ├── keycode_events.snapshot
│ │ │ └── native_posix_64.keymap
│ │ └── early-key-release
│ │ │ └── events.patterns
│ ├── wpm
│ │ ├── 1-single_keypress
│ │ │ ├── events.patterns
│ │ │ ├── native_posix_64.conf
│ │ │ └── native_posix_64.keymap
│ │ └── 2-multiple_keypress
│ │ │ ├── events.patterns
│ │ │ ├── native_posix_64.conf
│ │ │ └── keycode_events.snapshot
│ ├── momentary-layer
│ │ ├── 1-normal
│ │ │ ├── events.patterns
│ │ │ └── keycode_events.snapshot
│ │ ├── 2-early-key-release
│ │ │ ├── events.patterns
│ │ │ └── keycode_events.snapshot
│ │ ├── 3-covered
│ │ │ ├── keycode_events.snapshot
│ │ │ └── events.patterns
│ │ ├── 4-nested
│ │ │ ├── events.patterns
│ │ │ └── keycode_events.snapshot
│ │ └── 5-nested-early-key-release
│ │ │ └── events.patterns
│ ├── tap-dance
│ │ ├── 1a-tap1
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ ├── 1b-tap2
│ │ │ └── events.patterns
│ │ ├── 1c-tap3
│ │ │ └── events.patterns
│ │ ├── 2a-hold1
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ ├── 2b-hold2
│ │ │ └── events.patterns
│ │ ├── 2c-hold3
│ │ │ └── events.patterns
│ │ ├── 4a-single
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ ├── 3a-tap-int-mid
│ │ │ └── events.patterns
│ │ ├── 3b-tap-int-seq
│ │ │ └── events.patterns
│ │ ├── 3c-tap-int-after
│ │ │ └── events.patterns
│ │ ├── 3d-hold-int-mid
│ │ │ └── events.patterns
│ │ ├── 3e-hold-int-seq
│ │ │ └── events.patterns
│ │ ├── 5a-tdint-mid
│ │ │ └── events.patterns
│ │ ├── 5b-tdint-seq
│ │ │ └── events.patterns
│ │ ├── 5c-tdint-after
│ │ │ └── events.patterns
│ │ ├── 3f-hold-int-after
│ │ │ └── events.patterns
│ │ └── 5d-tdint-multiple
│ │ │ └── events.patterns
│ ├── to-layer
│ │ └── normal
│ │ │ └── events.patterns
│ ├── conditional-layer
│ │ ├── tri-layer-lt
│ │ │ └── events.patterns
│ │ ├── mo-overlap
│ │ │ └── events.patterns
│ │ ├── quad-layer
│ │ │ └── events.patterns
│ │ ├── tri-layer
│ │ │ └── events.patterns
│ │ ├── chained-activation
│ │ │ └── events.patterns
│ │ ├── multiple-configs
│ │ │ └── events.patterns
│ │ ├── tri-layer-alt-order
│ │ │ └── events.patterns
│ │ ├── same-layer-reached-both-ways
│ │ │ └── events.patterns
│ │ └── same-layer-reached-differently
│ │ │ └── events.patterns
│ ├── hold-tap
│ │ ├── zmk-modtap-proposal.odg
│ │ ├── zmk-modtap-proposal.pdf
│ │ ├── README.md
│ │ ├── balanced
│ │ │ ├── 1-dn-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 5-quick-tap
│ │ │ │ └── events.patterns
│ │ │ ├── many-nested
│ │ │ │ └── events.patterns
│ │ │ ├── 2-dn-timer-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 3a-moddn-dn-modup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3c-kcdn-dn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4c-dn-kcdn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3b-moddn-dn-modup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3d-kcdn-dn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-htdn-timer-htup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-kcdn-timer-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4b-dn-kcdn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4d-dn-kcdn-timer-up-kcup
│ │ │ │ └── events.patterns
│ │ │ ├── 7-positional
│ │ │ │ ├── 2-dn-timer-up
│ │ │ │ │ ├── events.patterns
│ │ │ │ │ └── native_posix_64.keymap
│ │ │ │ ├── 4a-dn-tgdn-timer-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ ├── 4a-dn-ntgdn-timer-ntgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ └── tgdn-dn-ntgdn-timer-ntgup-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ ├── 6-retro-tap
│ │ │ │ └── events.patterns
│ │ │ └── 8-global-quick-tap
│ │ │ │ ├── 1-basic
│ │ │ │ └── events.patterns
│ │ │ │ └── 2-double-hold
│ │ │ │ └── events.patterns
│ │ ├── tap-preferred
│ │ │ ├── 1-dn-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 5-quick-tap
│ │ │ │ └── events.patterns
│ │ │ ├── 2-dn-timer-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 6-nested-timeouts
│ │ │ │ └── events.patterns
│ │ │ ├── 3a-moddn-dn-modup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3c-kcdn-dn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4c-dn-kcdn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3b-moddn-dn-modup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3d-kcdn-dn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-htdn-timer-htup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-kcdn-timer-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4b-dn-kcdn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4d-dn-kcdn-timer-up-kcup
│ │ │ │ └── events.patterns
│ │ │ ├── 7-positional
│ │ │ │ ├── 2-dn-timer-up
│ │ │ │ │ ├── events.patterns
│ │ │ │ │ └── native_posix_64.keymap
│ │ │ │ ├── 4a-dn-tgdn-timer-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ ├── 4a-dn-ntgdn-timer-ntgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ └── tgdn-dn-ntgdn-timer-ntgup-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ └── 8-global-quick-tap
│ │ │ │ ├── 1-basic
│ │ │ │ └── events.patterns
│ │ │ │ └── 2-double-hold
│ │ │ │ └── events.patterns
│ │ ├── hold-preferred
│ │ │ ├── 1-dn-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 5-quick-tap
│ │ │ │ └── events.patterns
│ │ │ ├── 2-dn-timer-up
│ │ │ │ ├── events.patterns
│ │ │ │ └── native_posix_64.keymap
│ │ │ ├── 3a-moddn-dn-modup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3c-kcdn-dn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4c-dn-kcdn-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3b-moddn-dn-modup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 3d-kcdn-dn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-htdn-timer-htup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4a-dn-kcdn-timer-kcup-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4b-dn-kcdn-kcup-timer-up
│ │ │ │ └── events.patterns
│ │ │ ├── 4d-dn-kcdn-timer-up-kcup
│ │ │ │ └── events.patterns
│ │ │ ├── 7-positional
│ │ │ │ ├── 2-dn-timer-up
│ │ │ │ │ ├── events.patterns
│ │ │ │ │ └── native_posix_64.keymap
│ │ │ │ ├── 4a-dn-ntgdn-timer-ntgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ ├── 4a-dn-tgdn-timer-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ │ └── tgdn-dn-ntgdn-timer-ntgup-tgup-up
│ │ │ │ │ └── events.patterns
│ │ │ ├── 6-retro-tap
│ │ │ │ └── events.patterns
│ │ │ └── 8-global-quick-tap
│ │ │ │ ├── 1-basic
│ │ │ │ └── events.patterns
│ │ │ │ └── 2-double-hold
│ │ │ │ └── events.patterns
│ │ └── tap-unless-interrupted
│ │ │ ├── 1-dn-up
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ │ ├── 2-dn-timer-up
│ │ │ ├── events.patterns
│ │ │ └── native_posix_64.keymap
│ │ │ ├── 5-quick-tap
│ │ │ └── events.patterns
│ │ │ ├── 3c-kcdn-dn-kcup-up
│ │ │ └── events.patterns
│ │ │ ├── 4c-dn-kcdn-kcup-up
│ │ │ └── events.patterns
│ │ │ ├── 3a-moddn-dn-modup-up
│ │ │ └── events.patterns
│ │ │ ├── 3b-moddn-dn-modup-timer-up
│ │ │ └── events.patterns
│ │ │ ├── 3d-kcdn-dn-kcup-timer-up
│ │ │ └── events.patterns
│ │ │ ├── 4a-dn-htdn-timer-htup-up
│ │ │ └── events.patterns
│ │ │ ├── 4a-dn-kcdn-timer-kcup-up
│ │ │ └── events.patterns
│ │ │ ├── 4b-dn-kcdn-kcup-timer-up
│ │ │ └── events.patterns
│ │ │ ├── 4d-dn-kcdn-timer-up-kcup
│ │ │ └── events.patterns
│ │ │ └── 6-global-quick-tap
│ │ │ ├── 1-basic
│ │ │ └── events.patterns
│ │ │ └── 2-double-hold
│ │ │ └── events.patterns
│ ├── caps-word
│ │ ├── deactivate-by-second-press
│ │ │ └── events.patterns
│ │ ├── deactivate-by-non-alpha-non-continuation
│ │ │ └── events.patterns
│ │ ├── continue-with-modifiers
│ │ │ └── events.patterns
│ │ ├── continue-with-non-alpha-continue-list-item
│ │ │ └── events.patterns
│ │ └── continue-with-non-modified-numeric-usage-id
│ │ │ └── events.patterns
│ └── modifiers
│ │ ├── explicit
│ │ ├── kp-lctl-dn-lctl-up
│ │ │ └── events.patterns
│ │ ├── kp-hyper-dn-a-dn-a-up-hyper-up
│ │ │ └── events.patterns
│ │ ├── kp-lctl-dn-lctl-dn-lctl-up-lctl-up
│ │ │ └── events.patterns
│ │ ├── kp-lctl-dn-lsft-dn-lctl-up-lsft-up
│ │ │ └── events.patterns
│ │ └── kp-lctl-dn-lsft-dn-lsft-up-lctl-up
│ │ │ └── events.patterns
│ │ ├── mixed
│ │ ├── kp-lctl-dn-mod-dn-lctl-up-mod-up
│ │ │ └── events.patterns
│ │ └── kp-lctl-dn-mod-dn-mod-up-lctl-up
│ │ │ └── events.patterns
│ │ └── implicit
│ │ ├── kp-mod1-dn-mod2-dn-mod1-up-mod2-up
│ │ └── events.patterns
│ │ └── kp-mod1-dn-mod2-dn-mod2-up-mod1-up
│ │ └── events.patterns
├── dts
│ ├── bindings
│ │ ├── vendor-prefixes.txt
│ │ ├── behaviors
│ │ │ ├── zmk,behavior-to-layer.yaml
│ │ │ ├── zmk,behavior-none.yaml
│ │ │ ├── zmk,behavior-backlight.yaml
│ │ │ ├── zmk,behavior-bluetooth.yaml
│ │ │ ├── zmk,behavior-key-toggle.yaml
│ │ │ ├── zmk,behavior-outputs.yaml
│ │ │ ├── zmk,behavior-toggle-layer.yaml
│ │ │ ├── zmk,behavior-key-press.yaml
│ │ │ ├── zmk,behavior-ext-power.yaml
│ │ │ ├── zmk,behavior-rgb-underglow.yaml
│ │ │ ├── zmk,behavior-transparent.yaml
│ │ │ ├── zmk,behavior-momentary-layer.yaml
│ │ │ ├── zero_param.yaml
│ │ │ ├── one_param.yaml
│ │ │ ├── zmk,behavior-reset.yaml
│ │ │ ├── two_param.yaml
│ │ │ └── zmk,behavior-key-repeat.yaml
│ │ ├── macros
│ │ │ ├── zmk,macro-control-tap-time.yaml
│ │ │ ├── zmk,macro-control-wait-time.yaml
│ │ │ ├── zmk,macro-control-mode-press.yaml
│ │ │ ├── zmk,macro-control-mode-tap.yaml
│ │ │ ├── zmk,macro-control-mode-release.yaml
│ │ │ └── zmk,macro-pause-for-release.yaml
│ │ └── zmk,keymap-sensors.yaml
│ └── behaviors
│ │ ├── none.dtsi
│ │ ├── ext_power.dtsi
│ │ ├── backlight.dtsi
│ │ ├── bluetooth.dtsi
│ │ ├── rgb_underglow.dtsi
│ │ ├── to_layer.dtsi
│ │ ├── key_toggle.dtsi
│ │ └── transparent.dtsi
├── .prettierrc.js
├── drivers
│ ├── zephyr
│ │ ├── module.yml
│ │ └── dts
│ │ │ └── bindings
│ │ │ └── sensor
│ │ │ └── zmk,battery-nrf-vddh.yaml
│ ├── gpio
│ │ ├── Kconfig
│ │ └── CMakeLists.txt
│ ├── display
│ │ ├── Kconfig
│ │ └── CMakeLists.txt
│ ├── sensor
│ │ ├── Kconfig
│ │ ├── CMakeLists.txt
│ │ └── ec11
│ │ │ └── CMakeLists.txt
│ ├── Kconfig
│ └── CMakeLists.txt
├── include
│ ├── zmk
│ │ ├── wpm.h
│ │ ├── kscan.h
│ │ ├── battery.h
│ │ ├── usb_hid.h
│ │ ├── split
│ │ │ └── bluetooth
│ │ │ │ ├── peripheral.h
│ │ │ │ └── central.h
│ │ ├── display
│ │ │ └── status_screen.h
│ │ ├── matrix_transform.h
│ │ ├── endpoints_types.h
│ │ ├── activity.h
│ │ └── ble
│ │ │ └── profile.h
│ └── dt-bindings
│ │ └── zmk
│ │ ├── outputs.h
│ │ ├── kscan-mock.h
│ │ ├── matrix-transform.h
│ │ └── matrix_transform.h
├── src
│ ├── split
│ │ └── CMakeLists.txt
│ ├── events
│ │ ├── sensor_event.c
│ │ ├── wpm_state_changed.c
│ │ ├── layer_state_changed.c
│ │ ├── activity_state_changed.c
│ │ ├── battery_state_changed.c
│ │ ├── position_state_changed.c
│ │ ├── usb_conn_state_changed.c
│ │ ├── keycode_state_changed.c
│ │ ├── modifiers_state_changed.c
│ │ ├── ble_active_profile_changed.c
│ │ ├── endpoint_selection_changed.c
│ │ └── split_peripheral_status_changed.c
│ └── display
│ │ └── CMakeLists.txt
└── scripts
│ └── requirements.txt
├── docs
├── .nvmrc
├── .eslintignore
├── src
│ ├── .gitignore
│ ├── data
│ │ ├── .gitignore
│ │ └── hid-usage-pages.js
│ ├── hid-usage.js
│ └── groups.js
├── .prettierrc.js
├── docs
│ ├── codes
│ │ ├── _footnotes
│ │ │ ├── ios-power.mdx
│ │ │ ├── macos-power.mdx
│ │ │ └── ios-application.mdx
│ │ ├── _power.mdx
│ │ ├── _input-assist.mdx
│ │ ├── _editing.mdx
│ │ └── _applications.mdx
│ └── assets
│ │ ├── env-var
│ │ ├── env_var.png
│ │ ├── gnuarmemb.png
│ │ ├── start_menu.png
│ │ ├── new_variable.png
│ │ └── zephyr_toolchain.png
│ │ ├── hold-tap
│ │ ├── case1_2.png
│ │ ├── comparison.png
│ │ └── case_hold_preferred.png
│ │ ├── usb-logging
│ │ ├── com.jpg
│ │ └── putty.jpg
│ │ ├── user-setup
│ │ ├── firmware-archive.png
│ │ └── github-actions-link.png
│ │ ├── dev-setup
│ │ └── vscode_devcontainer.png
│ │ ├── features
│ │ ├── beta-testing
│ │ │ ├── repo-url.png
│ │ │ ├── repo-branch.png
│ │ │ └── pr-repo-branch.png
│ │ └── keymaps
│ │ │ └── layer-diagram.png
│ │ ├── troubleshooting
│ │ ├── filetransfer
│ │ │ ├── mac.png
│ │ │ ├── linux.png
│ │ │ └── windows.png
│ │ └── splitpairing
│ │ │ └── corecoverage.png
│ │ └── pro-micro
│ │ └── pro-micro-pins-labelled.jpg
├── static
│ ├── .gitignore
│ ├── img
│ │ └── favicon.ico
│ └── tree-sitter-devicetree.wasm
├── .prettierignore
├── blog
│ └── assets
│ │ └── 2022-04-21-zmk-2yo
│ │ ├── first-zmk-keyboard.jpg
│ │ └── kyria-first-split.jpg
└── .gitignore
├── .clang-format
├── CODEOWNERS
├── .gitignore
├── .devcontainer
├── Dockerfile
└── .bashrc
├── .vscode
└── settings.json
├── .gitattributes
├── .github
└── dependabot.yml
└── .pre-commit-config.yaml
/app/prj.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.nvmrc:
--------------------------------------------------------------------------------
1 | lts/*
--------------------------------------------------------------------------------
/app/boards/shields/clog/clog.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/eek/eek.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/iris/iris.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/jian.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/m60/m60.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/qaz/qaz.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/contra/contra.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/iris/iris_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/jian_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/romac/romac.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | build/
2 | node_modules/
3 |
--------------------------------------------------------------------------------
/app/boards/shields/bfo9000/bfo9000.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/corne/corne_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/corne/corne_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/ergodash/ergodash.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/iris/iris_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/jian_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jorne/jorne_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jorne/jorne_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/kyria/kyria_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/kyria/kyria_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/naked60/naked60.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/osprette/osprette.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/quefrency/quefrency.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
--------------------------------------------------------------------------------
/app/boards/shields/bfo9000/bfo9000_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/bfo9000/bfo9000_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/hummingbird/hummingbird.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/lily58/lily58_right.conf:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/boards/shields/microdox/microdox_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/microdox/microdox_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/nibble/boards/proton_c.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/quefrency/quefrency_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/splitreus62/splitreus62.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/boards/proton_c.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/tests/none/layered/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/tests/none/normal/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/.gitignore:
--------------------------------------------------------------------------------
1 | hardware-metadata.d.ts
2 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource3x4/boardsource3x4.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/quefrency/quefrency_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/splitreus62/splitreus62_left.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/splitreus62/splitreus62_right.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/dts/bindings/vendor-prefixes.txt:
--------------------------------------------------------------------------------
1 | zmk ZMK Project
--------------------------------------------------------------------------------
/app/tests/transparent/normal/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/data/.gitignore:
--------------------------------------------------------------------------------
1 | hardware-metadata.json
2 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource5x12/boardsource5x12.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/boards/shields/jiran/jiran.conf:
--------------------------------------------------------------------------------
1 | # CONFIG_ZMK_SLEEP=y
--------------------------------------------------------------------------------
/app/boards/shields/clueboard_california/clueboard_california.conf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/tests/none/layered/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/tests/none/normal/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/tests/transparent/normal/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | endOfLine: "auto",
3 | };
4 |
--------------------------------------------------------------------------------
/app/drivers/zephyr/module.yml:
--------------------------------------------------------------------------------
1 | build:
2 | cmake: .
3 | kconfig: Kconfig
4 |
--------------------------------------------------------------------------------
/app/tests/backlight/basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/backlight/cycle/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/layer-filter-0/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/layer-filter-1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/press-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/press-timeout/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/macros/press-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/1-os-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/10-sl-sl-kp/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/transparent/layered/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/docs/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | endOfLine: "auto",
3 | };
4 |
--------------------------------------------------------------------------------
/app/boards/shields/crbn/README.md:
--------------------------------------------------------------------------------
1 | A 40% Ortho keyboard made by Polarity Works
2 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-brt/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-on/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-step/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/combos-and-holdtaps-1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/combos-and-holdtaps-2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/multiple-timeouts/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/overlapping-combos-0/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/overlapping-combos-1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/overlapping-combos-2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/overlapping-combos-3/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/key-repeat/send-nothing-if-no-keys-pressed-yet/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/tests/keypress/kp-press-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/9-sk-dn-up-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/backlight/low-brightness/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*zmk_backlight_update: //p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/combos-and-holdtaps-0/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/slowrelease-disabled/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/slowrelease-enabled/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/gresc/gresc-press-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release-nkro/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/macros/mo-plus-modifier-macro/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/10-callum-mods/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/sticky-keys/2-os-dn-up-kcdn-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/2-sl-dn-up-kcdn-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/3a-os-dn-kcdn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/3b-os-dn-kcdn-up-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/5-os-kcdn-dn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/docs/docs/codes/_footnotes/ios-power.mdx:
--------------------------------------------------------------------------------
1 | Both iOS power keys lock the home screen.
2 |
--------------------------------------------------------------------------------
/app/tests/combo/partially-overlapping-combos/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/press1-press2-release1-release2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/press1-release1-press2-release2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/macros/mo-plus-modifier-from-hold-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/4-os-dn-up-kcdn-timer-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/8-lsk-osk-combination/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/boards/shields/settings_reset/settings_reset.conf:
--------------------------------------------------------------------------------
1 | CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START=y
2 |
--------------------------------------------------------------------------------
/app/tests/combo/press-release-long-combo-complete/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/combo/press1-press2-release2-release1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/docs/static/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Ignore generated setup script
3 |
4 | setup.ps1
5 | setup.sh
6 |
--------------------------------------------------------------------------------
/.clang-format:
--------------------------------------------------------------------------------
1 | BasedOnStyle: LLVM
2 | IndentWidth: 4
3 | ColumnLimit: 100
4 | SortIncludes: false
5 |
--------------------------------------------------------------------------------
/app/tests/combo/press-release-long-combo-incomplete/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/sticky-keys/2-os-dn-up-kcdn-kcup-quick-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/sticky-keys/7-os-dn-up-kc1dn-kc2dn-kc1up-kc2up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
--------------------------------------------------------------------------------
/app/tests/combo/press-release-long-combo-wrong-last-key/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 |
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-alt-tab/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*\(hid_listener_keycode_\|hid_implicit_modifiers_\)//p
2 |
--------------------------------------------------------------------------------
/app/tests/toggle-layer/normal/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*tog_keymap_binding/tog/p
--------------------------------------------------------------------------------
/app/tests/wpm/1-single_keypress/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*wpm_work_handler: //p
2 | s/.*wpm_event_listener: //p
--------------------------------------------------------------------------------
/app/tests/wpm/2-multiple_keypress/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*wpm_work_handler: //p
2 | s/.*wpm_event_listener: //p
--------------------------------------------------------------------------------
/docs/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
3 | .docusaurus
4 | *.mustache
5 | hardware-metadata.json
6 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @zmkfirmware/core
2 |
3 | /app/boards @zmkfirmware/boards-shields
4 |
5 | /docs @zmkfirmware/docs
--------------------------------------------------------------------------------
/app/boards/shields/sofle/sofle_left.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Ryan Cross
2 | # SPDX-License-Identifier: MIT
3 |
--------------------------------------------------------------------------------
/app/boards/shields/sofle/sofle_right.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Ryan Cross
2 | # SPDX-License-Identifier: MIT
3 |
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/tg4x.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-modded-alpha/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*\(hid_listener_keycode_\|hid_implicit_modifiers_\)//p
2 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/1-normal/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
--------------------------------------------------------------------------------
/app/boards/shields/a_dux/a_dux.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
--------------------------------------------------------------------------------
/app/boards/shields/eek/README.md:
--------------------------------------------------------------------------------
1 | A fixed split 36key-board with a typing angle of 90 degrees distributed by cbkbd
2 |
--------------------------------------------------------------------------------
/app/tests/tap-dance/1a-tap1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/1b-tap2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/1c-tap3/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/2a-hold1/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/2b-hold2/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/2c-hold3/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/4a-single/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/toggle-layer/early-key-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*tog_keymap_binding/tog/p
--------------------------------------------------------------------------------
/app/boards/arm/planck/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | list(APPEND EXTRA_DTC_FLAGS "-qq")
4 |
5 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio_left.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/2-early-key-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3a-tap-int-mid/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3b-tap-int-seq/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3c-tap-int-after/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3d-hold-int-mid/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3e-hold-int-seq/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/5a-tdint-mid/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/5b-tdint-seq/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/5c-tdint-after/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.west
2 | /bootloader
3 | /modules
4 | /tools
5 | /zephyr
6 | /zmk-config
7 | /build
8 | *.DS_Store
9 | __pycache__
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio_right.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
--------------------------------------------------------------------------------
/app/tests/gresc/gresc-two-instances/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*on_mod_morph_binding_/morph_binding_/p
--------------------------------------------------------------------------------
/app/tests/macros/basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*behavior_queue_process_next/queue_process_next/p
--------------------------------------------------------------------------------
/app/tests/macros/press-mid-macro/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*keymap_apply_position_state/pos_state/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/3f-hold-int-after/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/5d-tdint-multiple/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*on_tap_dance_binding/td_binding/p
--------------------------------------------------------------------------------
/.devcontainer/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM docker.io/zmkfirmware/zmk-dev-arm:3.0
2 |
3 | COPY .bashrc tmp
4 | RUN mv /tmp/.bashrc ~/.bashrc
5 |
--------------------------------------------------------------------------------
/app/drivers/gpio/Kconfig:
--------------------------------------------------------------------------------
1 | menuconfig ZMK_DRIVERS_GPIO
2 | bool "GPIO"
3 |
4 | rsource "Kconfig.mcp23017"
5 | rsource "Kconfig.595"
--------------------------------------------------------------------------------
/app/tests/key-repeat/ignore-other-usage-page-events/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
--------------------------------------------------------------------------------
/app/tests/key-repeat/press-and-release-after-key-usage/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
--------------------------------------------------------------------------------
/app/tests/momentary-layer/3-covered/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | mo_pressed: position 1 layer 1
2 | mo_released: position 1 layer 1
3 |
--------------------------------------------------------------------------------
/docs/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/static/img/favicon.ico
--------------------------------------------------------------------------------
/app/boards/shields/crbn/crbn.conf:
--------------------------------------------------------------------------------
1 | # Uncomment lines below to enable encoder
2 | # CONFIG_EC11=y
3 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
--------------------------------------------------------------------------------
/app/boards/shields/lily58/lily58_left.conf:
--------------------------------------------------------------------------------
1 | # Uncomment to enable encoder
2 | # CONFIG_EC11=y
3 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
4 |
--------------------------------------------------------------------------------
/app/drivers/display/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | rsource "Kconfig.il0323"
--------------------------------------------------------------------------------
/app/tests/key-repeat/send-nothing-if-no-keys-pressed-yet/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
--------------------------------------------------------------------------------
/app/tests/macros/timing-override/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*behavior_queue_process_next/queue_process_next/p
--------------------------------------------------------------------------------
/app/boards/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | rsource "shields/*/Kconfig.shield"
5 |
--------------------------------------------------------------------------------
/app/tests/key-repeat/press-and-release-with-explicit-modifiers/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
--------------------------------------------------------------------------------
/app/tests/to-layer/normal/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*to_keymap_binding/to/p
3 | s/.*layer_changed/layer_changed/p
--------------------------------------------------------------------------------
/docs/docs/codes/_power.mdx:
--------------------------------------------------------------------------------
1 | import Table from "@site/src/components/codes/Table";
2 |
3 | ## Power & Lock
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/boards/shields/murphpad/boards/nice_nano.conf:
--------------------------------------------------------------------------------
1 | # Uncomment both to enable underglow
2 | CONFIG_ZMK_RGB_UNDERGLOW=y
3 | CONFIG_WS2812_STRIP=y
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/tri-layer-lt/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
--------------------------------------------------------------------------------
/app/boards/seeeduino_xiao.conf:
--------------------------------------------------------------------------------
1 | CONFIG_CONSOLE=n
2 | CONFIG_SERIAL=n
3 | CONFIG_UART_CONSOLE=n
4 | CONFIG_UART_INTERRUPT_DRIVEN=n
5 | CONFIG_ZMK_USB=y
6 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/mo-overlap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/quad-layer/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/tri-layer/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/docs/docs/assets/env-var/env_var.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/env-var/env_var.png
--------------------------------------------------------------------------------
/docs/docs/assets/env-var/gnuarmemb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/env-var/gnuarmemb.png
--------------------------------------------------------------------------------
/docs/docs/assets/hold-tap/case1_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/hold-tap/case1_2.png
--------------------------------------------------------------------------------
/docs/docs/assets/usb-logging/com.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/usb-logging/com.jpg
--------------------------------------------------------------------------------
/docs/docs/assets/usb-logging/putty.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/usb-logging/putty.jpg
--------------------------------------------------------------------------------
/docs/docs/codes/_footnotes/macos-power.mdx:
--------------------------------------------------------------------------------
1 | Both macOS power keys ignore quick presses, sleep on deliberate press, and display a prompt on long-press.
2 |
--------------------------------------------------------------------------------
/app/boards/shields/chalice/chalice.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable RGB underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/app/tests/conditional-layer/chained-activation/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/multiple-configs/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/3-covered/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*keymap_position_state_changed/kp_st/p
--------------------------------------------------------------------------------
/app/tests/momentary-layer/4-nested/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*keymap_position_state_changed/kp_st/p
--------------------------------------------------------------------------------
/docs/docs/assets/env-var/start_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/env-var/start_menu.png
--------------------------------------------------------------------------------
/docs/docs/assets/hold-tap/comparison.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/hold-tap/comparison.png
--------------------------------------------------------------------------------
/docs/docs/codes/_input-assist.mdx:
--------------------------------------------------------------------------------
1 | import Table from "@site/src/components/codes/Table";
2 |
3 | ## Input Assist
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/static/tree-sitter-devicetree.wasm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/static/tree-sitter-devicetree.wasm
--------------------------------------------------------------------------------
/app/boards/shields/redox/redox.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable the Redox RGB Underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/app/tests/backlight/config-on/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | Update backlight brightness: 0%
2 | Update backlight brightness: 40%
3 | Update backlight brightness: 0%
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/tri-layer-alt-order/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/zmk-modtap-proposal.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/app/tests/hold-tap/zmk-modtap-proposal.odg
--------------------------------------------------------------------------------
/app/tests/hold-tap/zmk-modtap-proposal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/app/tests/hold-tap/zmk-modtap-proposal.pdf
--------------------------------------------------------------------------------
/app/tests/macros/wait-macro-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*behavior_queue_process_next/queue_process_next/p
3 | s/.*queue_macro/qm/p
--------------------------------------------------------------------------------
/docs/docs/assets/env-var/new_variable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/env-var/new_variable.png
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.associations": {
3 | "*.overlay": "dts",
4 | "*.keymap": "dts"
5 | },
6 | "python.formatting.provider": "black"
7 | }
--------------------------------------------------------------------------------
/app/boards/shields/reviung41/reviung41.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable RGB underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
4 |
--------------------------------------------------------------------------------
/app/drivers/display/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | zephyr_sources_ifdef(CONFIG_IL0323 il0323.c)
--------------------------------------------------------------------------------
/app/drivers/sensor/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | rsource "battery/Kconfig"
5 | rsource "ec11/Kconfig"
--------------------------------------------------------------------------------
/app/tests/backlight/config-brt/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | Update backlight brightness: 60%
2 | Update backlight brightness: 80%
3 | Update backlight brightness: 60%
4 |
--------------------------------------------------------------------------------
/app/tests/conditional-layer/same-layer-reached-both-ways/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/docs/docs/assets/env-var/zephyr_toolchain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/env-var/zephyr_toolchain.png
--------------------------------------------------------------------------------
/docs/docs/codes/_footnotes/ios-application.mdx:
--------------------------------------------------------------------------------
1 | Key press is registered, but has no visible effect in tested apps (Gmail, Safari, Notes)
2 | iPhone 6 / iOS 12.4.6
3 |
--------------------------------------------------------------------------------
/app/tests/caps-word/deactivate-by-second-press/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
3 | s/.*caps_word_enhance_usage/enhance_usage/p
--------------------------------------------------------------------------------
/app/tests/conditional-layer/same-layer-reached-differently/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*conditional_layer/cl/p
4 |
--------------------------------------------------------------------------------
/docs/docs/assets/user-setup/firmware-archive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/user-setup/firmware-archive.png
--------------------------------------------------------------------------------
/app/boards/shields/clog/clog_left.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "clog.dtsi"
8 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/tidbit.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "tidbit.dtsi"
8 |
--------------------------------------------------------------------------------
/app/include/zmk/wpm.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | int zmk_wpm_get_state();
--------------------------------------------------------------------------------
/app/tests/hold-tap/README.md:
--------------------------------------------------------------------------------
1 | Refer to the pdf/open document "zmk-modtap-proposal.{pdf,odt}" in this directory for a visual representation of the numbered tests for hold-tap.
2 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/5-nested-early-key-release/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*keymap_position_state_changed/kp_st/p
--------------------------------------------------------------------------------
/docs/docs/assets/dev-setup/vscode_devcontainer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/dev-setup/vscode_devcontainer.png
--------------------------------------------------------------------------------
/docs/docs/assets/hold-tap/case_hold_preferred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/hold-tap/case_hold_preferred.png
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
3 | # Always use Unix-style line endings for Bash scripts so they work in
4 | # Docker on Windows.
5 | .bashrc text eol=lf
6 | *.sh text eol=lf
7 |
--------------------------------------------------------------------------------
/app/boards/shields/a_dux/a_dux_left.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "a_dux.dtsi"
8 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio_left.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "cradio.dtsi"
8 |
--------------------------------------------------------------------------------
/app/boards/shields/nibble/boards/nice_nano.conf:
--------------------------------------------------------------------------------
1 | # Enable underglow
2 | CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # Use the STRIP config specific to the LEDs you're using
4 | CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/app/boards/shields/quick_actions/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | if SHIELD_QUICK_ACTIONS
2 |
3 | config ZMK_KEYBOARD_NAME
4 | default "Quick Actions"
5 |
6 | endif # SHIELD_QUICK_ACTIONS
7 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/boards/nice_nano.conf:
--------------------------------------------------------------------------------
1 | # Enable underglow
2 | CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # Use the STRIP config specific to the LEDs you're using
4 | CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/docs/docs/assets/features/beta-testing/repo-url.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/features/beta-testing/repo-url.png
--------------------------------------------------------------------------------
/docs/docs/assets/features/keymaps/layer-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/features/keymaps/layer-diagram.png
--------------------------------------------------------------------------------
/docs/docs/assets/troubleshooting/filetransfer/mac.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/troubleshooting/filetransfer/mac.png
--------------------------------------------------------------------------------
/docs/docs/assets/user-setup/github-actions-link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/user-setup/github-actions-link.png
--------------------------------------------------------------------------------
/app/boards/shields/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CRADIOS
5 | def_bool $(shields_list_contains,cradios)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/m60/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_M60
5 | def_bool $(shields_list_contains,m60)
6 |
--------------------------------------------------------------------------------
/app/src/split/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if (CONFIG_ZMK_SPLIT_BLE)
5 | add_subdirectory(bluetooth)
6 | endif()
--------------------------------------------------------------------------------
/app/tests/caps-word/deactivate-by-non-alpha-non-continuation/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
3 | s/.*caps_word_enhance_usage/enhance_usage/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/1-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/docs/docs/assets/features/beta-testing/repo-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/features/beta-testing/repo-branch.png
--------------------------------------------------------------------------------
/docs/docs/assets/pro-micro/pro-micro-pins-labelled.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/pro-micro/pro-micro-pins-labelled.jpg
--------------------------------------------------------------------------------
/docs/docs/assets/troubleshooting/filetransfer/linux.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/troubleshooting/filetransfer/linux.png
--------------------------------------------------------------------------------
/app/boards/arm/mikoto/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | if(CONFIG_PINMUX)
3 | zephyr_library()
4 | zephyr_library_sources(pinmux.c)
5 | zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
6 | endif()
--------------------------------------------------------------------------------
/app/boards/arm/nice60/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 Nick Winans
2 | # SPDX-License-Identifier: MIT
3 |
4 | config BOARD_NICE60
5 | bool "nice!60"
6 | depends on SOC_NRF52840_QIAA
7 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | if(CONFIG_PINMUX)
3 | zephyr_library()
4 | zephyr_library_sources(pinmux.c)
5 | zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
6 | endif()
--------------------------------------------------------------------------------
/app/boards/shields/contra/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CONTRA
5 | def_bool $(shields_list_contains,contra)
--------------------------------------------------------------------------------
/app/boards/shields/crbn/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CRBN
5 | def_bool $(shields_list_contains,crbn)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/ergodash/ergodash_left.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "ergodash.dtsi"
8 |
9 |
--------------------------------------------------------------------------------
/app/boards/shields/qaz/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_QAZ
5 | def_bool $(shields_list_contains,qaz)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_TG4X
5 | def_bool $(shields_list_contains,tg4x)
6 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/5-quick-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/many-nested/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/1-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/wpm/1-single_keypress/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=n
2 | CONFIG_ZMK_BLE=n
3 | CONFIG_LOG=y
4 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
5 | CONFIG_ZMK_LOG_LEVEL_DBG=y
6 | CONFIG_ZMK_WPM=y
--------------------------------------------------------------------------------
/docs/blog/assets/2022-04-21-zmk-2yo/first-zmk-keyboard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/blog/assets/2022-04-21-zmk-2yo/first-zmk-keyboard.jpg
--------------------------------------------------------------------------------
/docs/blog/assets/2022-04-21-zmk-2yo/kyria-first-split.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/blog/assets/2022-04-21-zmk-2yo/kyria-first-split.jpg
--------------------------------------------------------------------------------
/docs/docs/assets/features/beta-testing/pr-repo-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/features/beta-testing/pr-repo-branch.png
--------------------------------------------------------------------------------
/docs/docs/assets/troubleshooting/filetransfer/windows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/troubleshooting/filetransfer/windows.png
--------------------------------------------------------------------------------
/app/boards/arm/s40nc/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config BOARD_S40NC
5 | bool "S40NC"
6 | depends on SOC_NRF52840_QIAA
7 |
--------------------------------------------------------------------------------
/app/boards/shields/bat43/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_BAT43
5 | def_bool $(shields_list_contains,bat43)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/murphpad/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_MURPHPAD
5 | def_bool $(shields_list_contains,murphpad)
--------------------------------------------------------------------------------
/app/boards/shields/nibble/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_NIBBLE
5 | def_bool $(shields_list_contains,nibble)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_TIDBIT
5 | def_bool $(shields_list_contains,tidbit)
6 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/1-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/5-quick-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/5-quick-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/wpm/2-multiple_keypress/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=n
2 | CONFIG_ZMK_BLE=n
3 | CONFIG_LOG=y
4 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
5 | CONFIG_ZMK_LOG_LEVEL_DBG=y
6 | CONFIG_ZMK_WPM=y
7 |
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/bdn9_rev2.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment the line below to enable RGB.
5 | # CONFIG_ZMK_RGB_UNDERGLOW=y
6 |
--------------------------------------------------------------------------------
/app/boards/shields/bat43/bat43.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bat43
3 | name: BAT43
4 | type: shield
5 | url: https://kbd.dailycraft.jp/bat43/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/chalice/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CHALICE
5 | def_bool $(shields_list_contains,chalice)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/eek/eek.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: eek
3 | name: eek!
4 | type: shield
5 | url: https://github.com/Klackygears/eek_doc
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/naked60/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_NAKED60
5 | def_bool $(shields_list_contains,naked60)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/nibble/nibble.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Enable Encoders
5 | CONFIG_EC11=y
6 | CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
7 |
--------------------------------------------------------------------------------
/app/boards/shields/romac/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson, Richard Jones
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_ROMAC
5 | def_bool $(shields_list_contains,romac)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/tg4x.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: tg4x
3 | name: TG4x
4 | type: shield
5 | url: https://github.com/MythosMann/tg4x
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/include/zmk/kscan.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | int zmk_kscan_init(char *name);
10 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/3a-moddn-dn-modup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/3c-kcdn-dn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/4c-dn-kcdn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/6-nested-timeouts/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/1-dn-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/keypress/kp-press-release/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | ZMK_MOCK_PRESS(0,0,10)
6 | ZMK_MOCK_RELEASE(0,0,10)
7 | >;
8 | };
--------------------------------------------------------------------------------
/docs/docs/assets/troubleshooting/splitpairing/corecoverage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/erikdesjardins/zmk_quick_actions/quick_actions/docs/docs/assets/troubleshooting/splitpairing/corecoverage.png
--------------------------------------------------------------------------------
/app/boards/shields/contra/contra.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: contra
3 | name: Contra
4 | type: shield
5 | url: https://github.com/ai03-2725/Contra
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/osprette/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_OSPRETTE
5 | def_bool $(shields_list_contains,osprette)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/qaz/qaz.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: qaz
3 | name: QAZ
4 | type: shield
5 | url: https://www.cbkbd.com/product/qaz-keyboard-kit
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/include/dt-bindings/zmk/outputs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #define OUT_TOG 0
8 | #define OUT_USB 1
9 | #define OUT_BLE 2
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/3b-moddn-dn-modup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/3d-kcdn-dn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/4a-dn-htdn-timer-htup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/4a-dn-kcdn-timer-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/4b-dn-kcdn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/4d-dn-kcdn-timer-up-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/7-positional/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/3a-moddn-dn-modup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/3c-kcdn-dn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/4c-dn-kcdn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/3a-moddn-dn-modup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/3c-kcdn-dn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/4c-dn-kcdn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/5-quick-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/boards/arm/dz60rgb/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config BOARD_DZ60RGB_REV1
5 | bool "DZ60RGB Keyboard"
6 | depends on SOC_STM32F303XC
7 |
--------------------------------------------------------------------------------
/app/boards/native_posix.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=n
2 | CONFIG_ZMK_BLE=n
3 | CONFIG_LOG=y
4 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
5 | CONFIG_ZMK_LOG_LEVEL_DBG=y
6 | CONFIG_DEBUG=y
7 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
8 |
--------------------------------------------------------------------------------
/app/boards/shields/eek/Kconfig.shield:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2020 The ZMK Contributors
3 | #
4 | # SPDX-License-Identifier: MIT
5 | #
6 |
7 | config SHIELD_EEK
8 | def_bool $(shields_list_contains,eek)
--------------------------------------------------------------------------------
/app/boards/shields/knob_goblin/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_KNOB_GOBLIN
5 | def_bool $(shields_list_contains,knob_goblin)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/qaz/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_QAZ
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "QAZ"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/quick_actions/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_QUICK_ACTIONS
5 | def_bool $(shields_list_contains,quick_actions)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/reviung41/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_REVIUNG41
5 | def_bool $(shields_list_contains,reviung41)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/romac_plus/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_ROMAC_PLUS
5 | def_bool $(shields_list_contains,romac_plus)
6 |
--------------------------------------------------------------------------------
/app/include/zmk/battery.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | uint8_t zmk_battery_state_of_charge();
10 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/3b-moddn-dn-modup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/4a-dn-htdn-timer-htup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/7-positional/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/3b-moddn-dn-modup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/3d-kcdn-dn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/4a-dn-htdn-timer-htup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/4a-dn-kcdn-timer-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/4b-dn-kcdn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/4d-dn-kcdn-timer-up-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/7-positional/2-dn-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/3c-kcdn-dn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/4c-dn-kcdn-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/boards/shields/hummingbird/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_HUMMINGBIRD
5 | def_bool $(shields_list_contains,hummingbird)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/naked60/naked60.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: naked60
3 | name: Naked60
4 | type: shield
5 | url: https://salicylic-acid3.hatenablog.com/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/osprette/osprette.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: osprette
3 | name: Osprette
4 | type: shield
5 | url: https://github.com/smores56/osprette/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/tidbit_19key.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "tidbit.dtsi"
8 | #include "tidbit_19key.keymap"
9 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/7-positional/4a-dn-tgdn-timer-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/3a-moddn-dn-modup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/boards/arm/bluemicro840/Kconfig:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | config BOARD_ENABLE_DCDC
4 | bool "Enable DCDC mode"
5 | select SOC_DCDC_NRF52X
6 | default y
7 | depends on BOARD_BLUEMICRO840_V1
8 |
9 |
--------------------------------------------------------------------------------
/app/boards/arm/bt60/Kconfig:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | config BOARD_ENABLE_DCDC
4 | bool "Enable DCDC mode"
5 | select SOC_DCDC_NRF52X
6 | default y
7 | depends on (BOARD_BT60_V1_HS || BOARD_BT60_V1)
8 |
--------------------------------------------------------------------------------
/app/boards/arm/s40nc/s40nc.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: s40nc
3 | name: S40NC
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | outputs:
9 | - usb
10 | - ble
11 | url: https://mechwild.com
12 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource5x12/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_BOARDSOURCE5X12
5 | def_bool $(shields_list_contains,boardsource5x12)
--------------------------------------------------------------------------------
/app/boards/shields/eek/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_EEK
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "eek! ~ Keyboard"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/m60/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_M60
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "m60"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/settings_reset/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_SETTINGS_RESET
5 | def_bool $(shields_list_contains,settings_reset)
6 |
--------------------------------------------------------------------------------
/app/drivers/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | rsource "gpio/Kconfig"
5 | rsource "kscan/Kconfig"
6 | rsource "sensor/Kconfig"
7 | rsource "display/Kconfig"
8 |
--------------------------------------------------------------------------------
/app/drivers/sensor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020-2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | add_subdirectory_ifdef(CONFIG_ZMK_BATTERY battery)
5 | add_subdirectory_ifdef(CONFIG_EC11 ec11)
--------------------------------------------------------------------------------
/app/include/zmk/usb_hid.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | int zmk_usb_hid_send_report(const uint8_t *report, size_t len);
--------------------------------------------------------------------------------
/app/tests/combo/combos-and-holdtaps-2/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | pressed: usage_page 0x07 keycode 0xE0 implicit_mods 0x00 explicit_mods 0x00
2 | pressed: usage_page 0x07 keycode 0xE4 implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/7-positional/4a-dn-ntgdn-timer-ntgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/7-positional/4a-dn-tgdn-timer-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/3b-moddn-dn-modup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/3d-kcdn-dn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/4a-dn-htdn-timer-htup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/4a-dn-kcdn-timer-kcup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/4b-dn-kcdn-kcup-timer-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/4d-dn-kcdn-timer-up-kcup/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/keypress/kp-press-release/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
2 | released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
2 | released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/app/tests/modifiers/explicit/kp-lctl-dn-lctl-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/transparent/layered/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | kp_pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
2 | kp_released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/app/boards/arm/proton_c/proton_c.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: proton_c
3 | name: QMK Proton-C
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | url: https://qmk.fm/proton-c/
9 | exposes: [pro_micro]
10 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource3x4/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_BOARDSOURCE3X4
5 | def_bool $(shields_list_contains,boardsource3x4)
6 |
7 |
--------------------------------------------------------------------------------
/app/boards/shields/contra/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_CONTRA
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Contra Keyboard"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/crbn/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_CRBN
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "CRBN"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/naked60/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_NAKED60
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Naked60BMP"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/nibble/nibble.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nibble
3 | name: Nibble
4 | type: shield
5 | url: https://nullbits.co/nibble/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 |
--------------------------------------------------------------------------------
/app/boards/shields/romac_plus/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_ROMAC_PLUS
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "RoMac+ v4"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/romac_plus/romac_plus.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment to enable encoder
5 | #CONFIG_EC11=y
6 | #CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_TG4X
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "TG4x"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/two_percent_milk/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_TWO_PERCENT_MILK
5 | def_bool $(shields_list_contains,two_percent_milk)
6 |
--------------------------------------------------------------------------------
/app/include/zmk/split/bluetooth/peripheral.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | bool zmk_split_bt_peripheral_is_connected(void);
--------------------------------------------------------------------------------
/app/tests/caps-word/continue-with-modifiers/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
3 | s/.*caps_word_enhance_usage/enhance_usage/p
4 | s/.*caps_word_is_caps_includelist/caps_includelist/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/7-positional/tgdn-dn-ntgdn-timer-ntgup-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/7-positional/4a-dn-ntgdn-timer-ntgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/7-positional/4a-dn-tgdn-timer-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/7-positional/4a-dn-ntgdn-timer-ntgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release-nkro/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
2 | released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/docs/docs/codes/_editing.mdx:
--------------------------------------------------------------------------------
1 | import Table from "@site/src/components/codes/Table";
2 |
3 | ## Cut, Copy, Paste
4 |
5 |
6 |
7 | ## Undo, Redo
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/Kconfig:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | config BOARD_ENABLE_DCDC
4 | bool "Enable DCDC mode"
5 | select SOC_DCDC_NRF52X
6 | default y
7 | depends on (BOARD_NICE_NANO || BOARD_NICE_NANO_V2)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/bat43/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_BAT43
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Bat43"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/clueboard_california/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CLUEBOARD_CALIFORNIA
5 | def_bool $(shields_list_contains,clueboard_california)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/hummingbird/hummingbird.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: hummingbird
3 | name: Hummingbird
4 | type: shield
5 | url: https://github.com/PJE66/hummingbird
6 | requires: [seeed_xiao]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/romac/romac.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: romac
3 | name: Romac Macropad
4 | type: shield
5 | url: https://mechboards.co.uk/shop/kits/romac-macro-pad/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/7-positional/tgdn-dn-ntgdn-timer-ntgup-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/7-positional/tgdn-dn-ntgdn-timer-ntgup-tgup-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
--------------------------------------------------------------------------------
/app/tests/modifiers/explicit/kp-hyper-dn-a-dn-a-up-hyper-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-lctl-up-mod-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/mixed/kp-lctl-dn-mod-dn-mod-up-lctl-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/wpm/2-multiple_keypress/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | key_pressed_count 1 keycode 5
2 | Raised WPM state changed 12 wpm_update_counter 1
3 | key_pressed_count 2 keycode 5
4 | Raised WPM state changed 8 wpm_update_counter 3
5 |
--------------------------------------------------------------------------------
/app/boards/arm/nice60/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 Nick Winans
2 | # SPDX-License-Identifier: MIT
3 |
4 | config BOARD_ENABLE_DCDC
5 | bool "Enable DCDC mode"
6 | select SOC_DCDC_NRF52X
7 | default y
8 | depends on BOARD_NICE60
9 |
--------------------------------------------------------------------------------
/app/boards/shields/chalice/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_CHALICE
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Chalice"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/lily58/lily58.conf:
--------------------------------------------------------------------------------
1 | # Uncomment to enable encoder
2 | # CONFIG_EC11=y
3 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
4 |
5 | # Uncomment the following line to enable the Lily58 OLED Display
6 | # CONFIG_ZMK_DISPLAY=y
7 |
--------------------------------------------------------------------------------
/app/boards/shields/m60/m60.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: m60
3 | name: MakerDiary m60
4 | type: shield
5 | url: https://makerdiary.com/pages/m60-mechanical-keyboard
6 | requires: [makerdiary_nrf52840_m2]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/tests/combo/press-release-long-combo-complete/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | pressed: usage_page 0x07 keycode 0x1D implicit_mods 0x00 explicit_mods 0x00
2 | released: usage_page 0x07 keycode 0x1D implicit_mods 0x00 explicit_mods 0x00
3 |
--------------------------------------------------------------------------------
/app/tests/modifiers/explicit/kp-lctl-dn-lctl-dn-lctl-up-lctl-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lctl-up-lsft-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/explicit/kp-lctl-dn-lsft-dn-lsft-up-lctl-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod1-up-mod2-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/app/tests/modifiers/implicit/kp-mod1-dn-mod2-dn-mod2-up-mod1-up/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_register_mod/reg/p
3 | s/.*hid_unregister_mod/unreg/p
4 | s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
--------------------------------------------------------------------------------
/docs/src/hid-usage.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: CC-BY-NC-SA-4.0
5 | */
6 |
7 | export default function usage(page, id) {
8 | return (page << 16) | id;
9 | }
10 |
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/Kconfig.board:
--------------------------------------------------------------------------------
1 | # keeb.io BDN9 board configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_BDN9
7 | bool "BDN9 rev2"
8 | depends on SOC_STM32F072XB
9 |
--------------------------------------------------------------------------------
/app/boards/arm/ferris/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Ferris board configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_FERRIS
7 | bool "Ferris rev 0.2"
8 | depends on SOC_STM32F072XB
9 |
--------------------------------------------------------------------------------
/app/boards/arm/planck/planck_rev6.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: planck_rev6
3 | name: Planck Rev6
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | outputs:
9 | - usb
10 | url: https://olkb.com/collections/planck
11 |
--------------------------------------------------------------------------------
/app/boards/shields/osprette/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_OSPRETTE
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Osprette"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/reviung41/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_REVIUNG41
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Reviung41"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/reviung41/reviung41.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: reviung41
3 | name: REVIUNG41
4 | type: shield
5 | url: https://github.com/gtips/reviung/tree/master/reviung41
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/romac/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson, Richard Jones
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_ROMAC
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "RoMac"
8 |
9 | endif
10 |
11 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-to-layer.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: To Layer
5 |
6 | compatible: "zmk,behavior-to-layer"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/boards/arm/mikoto/Kconfig.board:
--------------------------------------------------------------------------------
1 | # mikoto board configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_MIKOTO_520
7 | bool "mikoto_520"
8 | depends on SOC_NRF52840_QIAA
9 |
--------------------------------------------------------------------------------
/app/boards/arm/proton_c/Kconfig.board:
--------------------------------------------------------------------------------
1 | # QMK Proton-C board configuration
2 |
3 | # Copyright (c) 2020 Pete Johanson
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_QMK_PROTON_C
7 | bool "QMK Proton-C"
8 | depends on SOC_STM32F303XC
9 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource3x4/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_BOARDSOURCE3X4
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Boardsource 3x4"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/boardsource5x12/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_BOARDSOURCE5X12
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "boardsource5x12"
8 |
9 | endif
--------------------------------------------------------------------------------
/app/boards/shields/helix/helix.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Enables RGB functionality (Uncomment lines below to enable.)
5 | # CONFIG_ZMK_RGB_UNDERGLOW=y
6 | # CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/app/include/zmk/display/status_screen.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | lv_obj_t *zmk_display_status_screen();
--------------------------------------------------------------------------------
/app/scripts/requirements.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Convert YAML to JSON for validation
5 | remarshal>=0.14.0
6 |
7 | # Perform our hardware metadata validation
8 | jsonschema>=3.2.0
--------------------------------------------------------------------------------
/app/tests/caps-word/continue-with-non-alpha-continue-list-item/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
3 | s/.*caps_word_enhance_usage/enhance_usage/p
4 | s/.*caps_word_is_caps_includelist/caps_includelist/p
--------------------------------------------------------------------------------
/app/tests/caps-word/continue-with-non-modified-numeric-usage-id/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode_//p
2 | s/.*hid_implicit_modifiers_//p
3 | s/.*caps_word_enhance_usage/enhance_usage/p
4 | s/.*caps_word_is_caps_includelist/caps_includelist/p
--------------------------------------------------------------------------------
/app/boards/arm/mikoto/mikoto_520.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: mikoto_520
3 | name: Mikoto 5.20
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://github.com/zhiayang/mikoto
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/nice_nano.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nice_nano
3 | name: nice!nano v1
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://nicekeyboards.com/nice-nano
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/shields/a_dux/a_dux_right.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "a_dux.dtsi"
8 |
9 | &default_transform {
10 | col-offset = <17>;
11 | };
12 |
--------------------------------------------------------------------------------
/app/boards/shields/chalice/chalice.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: chalice
3 | name: Chalice
4 | type: shield
5 | url: https://customkbd.com/products/chalice-pre-order
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - underglow
10 |
--------------------------------------------------------------------------------
/app/boards/shields/clog/clog_right.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "clog.dtsi"
8 |
9 | &default_transform {
10 | col-offset = <17>;
11 | };
12 |
--------------------------------------------------------------------------------
/app/boards/shields/hummingbird/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_HUMMINGBIRD
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "Hummingbird"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/tidbit.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: tidbit
3 | name: Tidbit Numpad
4 | type: shield
5 | url: https://nullbits.co/tidbit/
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 | - display
11 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-none.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: None Binding Behavior
5 |
6 | compatible: "zmk,behavior-none"
7 |
8 | include: zero_param.yaml
9 |
--------------------------------------------------------------------------------
/app/include/zmk/matrix_transform.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | uint32_t zmk_matrix_transform_row_column_to_position(uint32_t row, uint32_t column);
--------------------------------------------------------------------------------
/app/src/events/sensor_event.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_sensor_event);
--------------------------------------------------------------------------------
/app/boards/arm/bt60/bt60_v1.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bt60_v1
3 | name: BT60 V1 Soldered
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | - encoder
9 | outputs:
10 | - usb
11 | - ble
12 | url: https://polarityworks.com
13 |
--------------------------------------------------------------------------------
/app/boards/arm/ferris/ferris_rev02.yaml:
--------------------------------------------------------------------------------
1 | identifier: ferris_rev02
2 | name: Ferris 0.2
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | ram: 40
10 | supported:
11 | - switches
12 | - underglow
13 |
--------------------------------------------------------------------------------
/app/boards/arm/nice60/nice60.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nice60
3 | name: nice!60
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | - underglow
9 | outputs:
10 | - usb
11 | - ble
12 | url: https://nicekeyboards.com/nice-60
13 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/nice_nano_v2.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nice_nano_v2
3 | name: nice!nano v2
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://nicekeyboards.com/nice-nano
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/nrf52840_m2/Kconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config BOARD_ENABLE_DCDC
5 | bool "Enable DCDC mode"
6 | select SOC_DCDC_NRF52X
7 | default y
8 | depends on BOARD_NRF52840_M2
9 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_11.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nrfmicro_11
3 | name: nRFMicro 1.1/1.2
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://github.com/joric/nrfmicro/
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_13.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nrfmicro_13
3 | name: nRFMicro 1.3/1.4
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://github.com/joric/nrfmicro/
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/planck/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Planck V6 board configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_PLANCK_REV6
7 | bool "Planck V6 Keyboard"
8 | depends on SOC_STM32F303XC
9 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio_right.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "cradio.dtsi"
8 |
9 | &default_transform {
10 | col-offset = <17>;
11 | };
12 |
--------------------------------------------------------------------------------
/app/boards/shields/crbn/crbn.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: crbn
3 | name: CRBN Featherlight
4 | type: shield
5 | url: https://github.com/PolarityWorks/CRBN-Featherlight
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 |
--------------------------------------------------------------------------------
/app/boards/shields/romac_plus/romac_plus.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: romac_plus
3 | name: Romac+ Macropad
4 | type: shield
5 | url: https://example.org
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 | - display
11 |
--------------------------------------------------------------------------------
/app/boards/shields/two_percent_milk/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_TWO_PERCENT_MILK
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "2% Milk"
8 |
9 | endif
10 |
--------------------------------------------------------------------------------
/app/drivers/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | add_subdirectory_ifdef(CONFIG_ZMK_DRIVERS_GPIO gpio)
5 | add_subdirectory(kscan)
6 | add_subdirectory(sensor)
7 | add_subdirectory(display)
8 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-backlight.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Backlight behavior
5 |
6 | compatible: "zmk,behavior-backlight"
7 |
8 | include: two_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-bluetooth.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Bluetooth Behavior
5 |
6 | compatible: "zmk,behavior-bluetooth"
7 |
8 | include: two_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-key-toggle.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Key toggle behavior
5 |
6 | compatible: "zmk,behavior-key-toggle"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-outputs.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Output Selection Behavior
5 |
6 | compatible: "zmk,behavior-outputs"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-toggle-layer.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Toggle Layer
5 |
6 | compatible: "zmk,behavior-toggle-layer"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/include/dt-bindings/zmk/kscan-mock.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #warning "kscan-mock.h has been deprecated and superseded by kscan_mock.h"
8 |
9 | #include "kscan_mock.h"
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release-nkro/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=n
2 | CONFIG_LOG=y
3 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
4 | CONFIG_ZMK_LOG_LEVEL_DBG=y
5 | CONFIG_DEBUG=y
6 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
7 | CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
--------------------------------------------------------------------------------
/docs/docs/codes/_applications.mdx:
--------------------------------------------------------------------------------
1 | import Table from "@site/src/components/codes/Table";
2 |
3 | ## Application Controls
4 |
5 |
6 |
7 | ## Applications (Launch)
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/boards/arm/bt60/bt60_v1_hs.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bt60_v1_hs
3 | name: BT60 V1 Hotswap
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | - encoder
9 | outputs:
10 | - usb
11 | - ble
12 | url: https://polarityworks.com
13 |
--------------------------------------------------------------------------------
/app/boards/shields/clog/clog.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: clog
3 | name: Clog
4 | type: shield
5 | url: https://github.com/smores56/clog
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - clog_left
11 | - clog_right
12 |
--------------------------------------------------------------------------------
/app/boards/shields/ergodash/ergodash_right.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include "ergodash.dtsi"
8 |
9 | &default_transform {
10 | col-offset = <7>;
11 | };
12 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/jian.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: jian
3 | name: Jian
4 | type: shield
5 | url: https://github.com/KGOH/Jian-Info
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - jian_left
11 | - jian_right
12 |
--------------------------------------------------------------------------------
/app/boards/shields/settings_reset/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_SETTINGS_RESET
5 |
6 | config ZMK_KEYBOARD_NAME
7 | default "SETTINGS RESET"
8 |
9 | endif
10 |
11 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-key-press.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Key press/release behavior
5 |
6 | compatible: "zmk,behavior-key-press"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-control-tap-time.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Set Macro Tap Duration
5 |
6 | compatible: "zmk,macro-control-tap-time"
7 |
8 | include: one_param.yaml
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-control-wait-time.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Set Macro Wait Duration
5 |
6 | compatible: "zmk,macro-control-wait-time"
7 |
8 | include: one_param.yaml
--------------------------------------------------------------------------------
/app/include/zmk/endpoints_types.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | enum zmk_endpoint {
10 | ZMK_ENDPOINT_USB,
11 | ZMK_ENDPOINT_BLE,
12 | };
13 |
--------------------------------------------------------------------------------
/app/boards/arm/ferris/ferris_rev02.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: ferris_rev02
3 | name: Ferris 0.2
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | outputs:
9 | - usb
10 | url: https://github.com/pierrechevalier83/ferris/tree/main/0.2
11 |
--------------------------------------------------------------------------------
/app/boards/arm/s40nc/s40nc.yaml:
--------------------------------------------------------------------------------
1 | identifier: s40nc
2 | name: S40NC
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | supported:
9 | - adc
10 | - usb_device
11 | - ble
12 | - ieee802154
13 | - pwm
14 | - watchdog
15 |
--------------------------------------------------------------------------------
/app/boards/arm/seeeduino_xiao/seeeduino_xiao.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: seeeduino_xiao
3 | name: Seeeduino XIAO
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | url: https://wiki.seeedstudio.com/Seeeduino-XIAO/
9 | exposes: [seeed_xiao]
10 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource5x12/boardsource5x12.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: boardsource5x12
3 | name: Boardsource 5x12
4 | type: shield
5 | url: https://boardsource.xyz/store/5ecb802c86879c9a0c22db61
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/boards/shields/corne/corne.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable the Corne RGB Underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
4 |
5 | # Uncomment the following line to enable the Corne OLED Display
6 | # CONFIG_ZMK_DISPLAY=y
7 |
--------------------------------------------------------------------------------
/app/boards/shields/jiran/jiran.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: jiran
3 | name: Jiran
4 | type: shield
5 | url: https://github.com/Ladniy/jiran
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - jiran_left
11 | - jiran_right
12 |
--------------------------------------------------------------------------------
/app/boards/shields/jorne/jorne.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable the Jorne RGB Underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
4 |
5 | # Uncomment the following line to enable the Jorne OLED Display
6 | # CONFIG_ZMK_DISPLAY=y
7 |
--------------------------------------------------------------------------------
/app/boards/shields/quick_actions/quick_actions.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment to enable Encoders
5 | CONFIG_EC11=y
6 | CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
7 | CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=512
--------------------------------------------------------------------------------
/app/boards/shields/quick_actions/quick_actions.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: quick_actions
3 | name: Quick Actions
4 | type: shield
5 | url: https://github.com/GreenAirplane/ergogen
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 |
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/boards/nice_nano.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Enable underglow
5 | CONFIG_ZMK_RGB_UNDERGLOW=y
6 | # Use the STRIP config specific to the LEDs you're using
7 | CONFIG_WS2812_STRIP=y
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-ext-power.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: External power control Behavior
5 |
6 | compatible: "zmk,behavior-ext-power"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-rgb-underglow.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: RGB Underglow Action
5 |
6 | compatible: "zmk,behavior-rgb-underglow"
7 |
8 | include: two_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-control-mode-press.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Set Macro To Press Mode
5 |
6 | compatible: "zmk,macro-control-mode-press"
7 |
8 | include: zero_param.yaml
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-control-mode-tap.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Set Macro To Tap Mode
5 |
6 | compatible: "zmk,macro-control-mode-tap"
7 |
8 | include: zero_param.yaml
9 |
--------------------------------------------------------------------------------
/app/src/events/wpm_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_wpm_state_changed);
--------------------------------------------------------------------------------
/docs/src/data/hid-usage-pages.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: CC-BY-NC-SA-4.0
5 | */
6 |
7 | export const genericDesktop = 0x01;
8 | export const key = 0x07;
9 | export const consumer = 0x0c;
10 |
--------------------------------------------------------------------------------
/app/boards/arm/bt60/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
4 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
5 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
6 |
--------------------------------------------------------------------------------
/app/boards/arm/mikoto/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
4 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
5 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
6 |
--------------------------------------------------------------------------------
/app/boards/arm/nice60/nice60.yaml:
--------------------------------------------------------------------------------
1 | identifier: nice60
2 | name: nice!60
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | supported:
9 | - adc
10 | - usb_device
11 | - ble
12 | - ieee802154
13 | - pwm
14 | - watchdog
15 |
--------------------------------------------------------------------------------
/app/boards/shields/boardsource3x4/boardsource3x4.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: boardsource3x4
3 | name: Boardsource 3x4 Macropad
4 | type: shield
5 | url: https://boardsource.xyz/store/5ecc2008eee64242946c98c1
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-transparent.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Transparent Binding Behavior
5 |
6 | compatible: "zmk,behavior-transparent"
7 |
8 | include: zero_param.yaml
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-control-mode-release.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Set Macro To Release Mode
5 |
6 | compatible: "zmk,macro-control-mode-release"
7 |
8 | include: zero_param.yaml
--------------------------------------------------------------------------------
/app/dts/bindings/macros/zmk,macro-pause-for-release.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Macro Pause Until Release Marker
5 |
6 | compatible: "zmk,macro-pause-for-release"
7 |
8 | include: zero_param.yaml
--------------------------------------------------------------------------------
/app/src/events/layer_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_layer_state_changed);
--------------------------------------------------------------------------------
/app/boards/arm/bluemicro840/Kconfig.board:
--------------------------------------------------------------------------------
1 | # BlueMicro840 board configuration
2 |
3 | # Copyright (c) 2020 Pete Johanson, Derek Schmell
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_BLUEMICRO840_V1
7 | bool "BlueMicro840_V1"
8 | depends on SOC_NRF52840_QIAA
9 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
4 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
5 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
6 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
4 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
5 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
6 |
--------------------------------------------------------------------------------
/app/boards/shields/microdox/microdox.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable the Microdox RGB Underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
4 |
5 | # Uncomment the following line to enable the Microdox OLED Display
6 | # CONFIG_ZMK_DISPLAY=y
7 |
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | ZMK_MOCK_PRESS(0,0,10)
6 | ZMK_MOCK_RELEASE(0,0,10)
7 | ZMK_MOCK_PRESS(0,0,10)
8 | ZMK_MOCK_RELEASE(0,0,10)
9 | >;
10 | };
--------------------------------------------------------------------------------
/app/tests/none/normal/native_posix.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/docs/src/groups.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: CC-BY-NC-SA-4.0
5 | */
6 |
7 | import groups from "./data/groups.js";
8 |
9 | export function getGroup(id) {
10 | return groups[id] ?? null;
11 | }
12 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: "daily"
7 | - package-ecosystem: "npm"
8 | directory: "/docs"
9 | schedule:
10 | interval: "daily"
11 |
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/bdn9_rev2.yaml:
--------------------------------------------------------------------------------
1 | identifier: bdn9
2 | name: keeb.io BDN9
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | ram: 40
10 | supported:
11 | - encoders
12 | - switches
13 | - underglow
14 | - per_key
15 |
--------------------------------------------------------------------------------
/app/boards/arm/bluemicro840/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
4 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
5 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
6 |
--------------------------------------------------------------------------------
/app/boards/arm/nrf52840_m2/nrf52840_m2.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nrf52840_m2
3 | name: nRF52840 M.2 Module
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://wiki.makerdiary.com/nrf52840-m2/
10 | exposes: [makerdiary_nrf52840_m2]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_11_flipped.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nrfmicro_11_flipped
3 | name: nRFMicro 1.1 (flipped)
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://github.com/joric/nrfmicro/
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=n
2 | # Enable to have the native posix build expose USBIP device(s)
3 | # CONFIG_ZMK_USB=y
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
--------------------------------------------------------------------------------
/app/boards/shields/corne/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CORNE_LEFT
5 | def_bool $(shields_list_contains,corne_left)
6 |
7 | config SHIELD_CORNE_RIGHT
8 | def_bool $(shields_list_contains,corne_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/elephant42/elephant42.conf:
--------------------------------------------------------------------------------
1 | # Uncomment the following lines to enable the Elephant42 RGB Underglow
2 | # CONFIG_ZMK_RGB_UNDERGLOW=y
3 | # CONFIG_WS2812_STRIP=y
4 |
5 | # Uncomment the following line to enable the Elephant42 OLED Display
6 | # CONFIG_ZMK_DISPLAY=y
--------------------------------------------------------------------------------
/app/boards/shields/sofle/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Ryan Cross
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_SOFLE_LEFT
5 | def_bool $(shields_list_contains,sofle_left)
6 |
7 | config SHIELD_SOFLE_RIGHT
8 | def_bool $(shields_list_contains,sofle_right)
9 |
--------------------------------------------------------------------------------
/app/include/dt-bindings/zmk/matrix-transform.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #warning "matrix-transform.h has been deprecated and superseded by matrix_transform.h"
8 |
9 | #include "matrix_transform.h"
--------------------------------------------------------------------------------
/app/src/events/activity_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_activity_state_changed);
--------------------------------------------------------------------------------
/app/src/events/battery_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_battery_state_changed);
--------------------------------------------------------------------------------
/app/src/events/position_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_position_state_changed);
--------------------------------------------------------------------------------
/app/src/events/usb_conn_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_usb_conn_state_changed);
--------------------------------------------------------------------------------
/app/tests/keytoggle/kt-press-release-nkro/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | ZMK_MOCK_PRESS(0,0,10)
6 | ZMK_MOCK_RELEASE(0,0,10)
7 | ZMK_MOCK_PRESS(0,0,10)
8 | ZMK_MOCK_RELEASE(0,0,10)
9 | >;
10 | };
--------------------------------------------------------------------------------
/app/tests/none/normal/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/app/boards/arm/nice60/README.md:
--------------------------------------------------------------------------------
1 | # nice!60
2 | 
3 |
4 | The nice!60 is a hotswap 60% made by Nice Keyboards. https://nicekeyboards.com/nice-60
5 |
6 | ## Building nice!60 ZMK firmware
7 | ```
8 | west build -p -b nice60
9 | ```
10 |
--------------------------------------------------------------------------------
/app/boards/arm/nrf52840_m2/Kconfig.board:
--------------------------------------------------------------------------------
1 | # Maker Diary nrf52840 M.2 board configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_NRF52840_M2
7 | bool "nrf52480_m2"
8 | depends on SOC_NRF52840_QIAA
9 |
10 |
--------------------------------------------------------------------------------
/app/boards/shields/clog/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CLOG_LEFT
5 | def_bool $(shields_list_contains,clog_left)
6 |
7 | config SHIELD_CLOG_RIGHT
8 | def_bool $(shields_list_contains,clog_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/ergodash/ergodash.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: ergodash
3 | name: Ergodash
4 | type: shield
5 | url: https://github.com/omkbd/ErgoDash
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - ergodash_left
11 | - ergodash_right
12 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_JIAN_LEFT
5 | def_bool $(shields_list_contains,jian_left)
6 |
7 | config SHIELD_JIAN_RIGHT
8 | def_bool $(shields_list_contains,jian_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/knob_goblin/knob_goblin.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: knob_goblin
3 | name: Knob Goblin
4 | type: shield
5 | url: https://knob-goblin.com/
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 |
--------------------------------------------------------------------------------
/app/boards/shields/lily58/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_LILY58_LEFT
5 | def_bool $(shields_list_contains,lily58_left)
6 |
7 | config SHIELD_LILY58_RIGHT
8 | def_bool $(shields_list_contains,lily58_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/redox/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 | config SHIELD_REDOX_LEFT
4 | def_bool $(shields_list_contains,redox_left)
5 |
6 | config SHIELD_REDOX_RIGHT
7 | def_bool $(shields_list_contains,redox_right)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/two_percent_milk/two_percent_milk.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: two_percent_milk
3 | name: 2% Milk
4 | type: shield
5 | url: https://github.com/Spaceboards/SpaceboardsHardware/tree/master/Keyboards/2%25%20Milk
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 |
--------------------------------------------------------------------------------
/app/drivers/sensor/ec11/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | zephyr_include_directories(.)
5 |
6 | zephyr_library()
7 |
8 | zephyr_library_sources(ec11.c)
9 | zephyr_library_sources_ifdef(CONFIG_EC11_TRIGGER ec11_trigger.c)
--------------------------------------------------------------------------------
/app/src/events/keycode_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_keycode_state_changed);
11 |
--------------------------------------------------------------------------------
/app/src/events/modifiers_state_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_modifiers_state_changed);
--------------------------------------------------------------------------------
/app/tests/transparent/normal/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/bdn9_rev2.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bdn9_rev2
3 | name: BDN9 Rev2
4 | type: board
5 | arch: arm
6 | features:
7 | - keys
8 | - encoder
9 | outputs:
10 | - usb
11 | url: https://keeb.io/products/bdn9-rev-2-3x3-9-key-macropad-rotary-encoder-and-rgb
12 |
--------------------------------------------------------------------------------
/app/boards/arm/bluemicro840/bluemicro840_v1.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bluemicro840_v1
3 | name: BlueMicro840 v1
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://nrf52.jpconstantineau.com/docs/bluemicro840_v1/
10 | exposes: [pro_micro]
11 |
--------------------------------------------------------------------------------
/app/boards/arm/s40nc/README.md:
--------------------------------------------------------------------------------
1 | # S40NC
2 | 
3 |
4 | Shorty40NoCordy (S40NC) is a limited run 40% bluetooth keyboard originally made and sold by MechWild.
5 |
6 | ## Building S40NC ZMK firmware
7 | ```
8 | west build -p -b s40nc
9 | ```
10 |
--------------------------------------------------------------------------------
/app/boards/arm/seeeduino_xiao_ble/seeeduino_xiao_ble.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: seeeduino_xiao_ble
3 | name: Seeeduino XIAO BLE
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | - ble
9 | url: https://wiki.seeedstudio.com/XIAO_BLE/
10 | exposes: [seeed_xiao]
11 |
--------------------------------------------------------------------------------
/app/boards/shields/a_dux/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_A_DUX_LEFT
5 | def_bool $(shields_list_contains,a_dux_left)
6 |
7 | config SHIELD_A_DUX_RIGHT
8 | def_bool $(shields_list_contains,a_dux_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/fourier/fourier.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: fourier
3 | name: Fourier Rev. 1
4 | type: shield
5 | url: https://github.com/keebio/fourier
6 | requires:
7 | - pro_micro
8 | features:
9 | - keys
10 | siblings:
11 | - fourier_left
12 | - fourier_right
13 |
--------------------------------------------------------------------------------
/app/boards/shields/helix/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_HELIX_LEFT
5 | def_bool $(shields_list_contains,helix_left)
6 |
7 | config SHIELD_HELIX_RIGHT
8 | def_bool $(shields_list_contains,helix_right)
--------------------------------------------------------------------------------
/app/boards/shields/iris/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Pete Johanson, Kurtis Lew
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_IRIS_LEFT
5 | def_bool $(shields_list_contains,iris_left)
6 |
7 | config SHIELD_IRIS_RIGHT
8 | def_bool $(shields_list_contains,iris_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/jiran/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_JIRAN_LEFT
5 | def_bool $(shields_list_contains,jiran_left)
6 |
7 | config SHIELD_JIRAN_RIGHT
8 | def_bool $(shields_list_contains,jiran_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/jorne/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_JORNE_LEFT
5 | def_bool $(shields_list_contains,jorne_left)
6 |
7 | config SHIELD_JORNE_RIGHT
8 | def_bool $(shields_list_contains,jorne_right)
9 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-momentary-layer.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Momentary layer on press/release behavior
5 |
6 | compatible: "zmk,behavior-momentary-layer"
7 |
8 | include: one_param.yaml
9 |
--------------------------------------------------------------------------------
/app/include/dt-bindings/zmk/matrix_transform.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #define KT_ROW(item) (item >> 8)
8 | #define KT_COL(item) (item & 0xFF)
9 |
10 | #define RC(row, col) (((row) << 8) + (col))
--------------------------------------------------------------------------------
/app/tests/toggle-layer/normal/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | tog_pressed: position 1 layer 1
2 | tog_released: position 1 layer 1
3 | kp_pressed: usage_page 0x0C keycode 0xB5 implicit_mods 0x00 explicit_mods 0x00
4 | kp_released: usage_page 0x0C keycode 0xB5 implicit_mods 0x00 explicit_mods 0x00
5 |
--------------------------------------------------------------------------------
/app/boards/arm/bt60/bt60_v1.yaml:
--------------------------------------------------------------------------------
1 | identifier: bt60_v1
2 | name: BT60 V1 Soldered
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/mikoto/mikoto_520.yaml:
--------------------------------------------------------------------------------
1 | identifier: mikoto_520
2 | name: mikoto_520
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/nice_nano.yaml:
--------------------------------------------------------------------------------
1 | identifier: nice_nano
2 | name: nice!nano
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_CRADIO_LEFT
5 | def_bool $(shields_list_contains,cradio_left)
6 |
7 | config SHIELD_CRADIO_RIGHT
8 | def_bool $(shields_list_contains,cradio_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/leeloo/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_LEELOO_LEFT
5 | def_bool $(shields_list_contains,leeloo_left)
6 |
7 | config SHIELD_LEELOO_RIGHT
8 | def_bool $(shields_list_contains,leeloo_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/redox/redox.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: redox
3 | name: Redox
4 | type: shield
5 | url: https://github.com/mattdibi/redox-keyboard
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - underglow
10 | siblings:
11 | - redox_left
12 | - redox_right
13 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zero_param.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | properties:
5 | label:
6 | type: string
7 | required: true
8 | "#binding-cells":
9 | type: int
10 | required: true
11 | const: 0
12 |
--------------------------------------------------------------------------------
/app/src/events/ble_active_profile_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_ble_active_profile_changed);
--------------------------------------------------------------------------------
/app/tests/momentary-layer/1-normal/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | mo_pressed: position 1 layer 1
2 | kp_pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
3 | kp_released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
4 | mo_released: position 1 layer 1
5 |
--------------------------------------------------------------------------------
/app/boards/arm/bt60/bt60_v1_hs.yaml:
--------------------------------------------------------------------------------
1 | identifier: bt60_v1_hs
2 | name: BT60 V1 Hotswap
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_11.yaml:
--------------------------------------------------------------------------------
1 | identifier: nrfmicro_11
2 | name: nrfmicro_11
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_13.yaml:
--------------------------------------------------------------------------------
1 | identifier: nrfmicro_13
2 | name: nrfmicro_13
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/shields/a_dux/a_dux.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: a_dux
3 | name: A. Dux
4 | type: shield
5 | url: https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - a_dux_left
11 | - a_dux_right
12 |
--------------------------------------------------------------------------------
/app/boards/shields/bfo9000/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_BFO9000_LEFT
5 | def_bool $(shields_list_contains,bfo9000_left)
6 |
7 | config SHIELD_BFO9000_RIGHT
8 | def_bool $(shields_list_contains,bfo9000_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/lotus58/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_LOTUS58_LEFT
5 | def_bool $(shields_list_contains,lotus58_left)
6 |
7 | config SHIELD_LOTUS58_RIGHT
8 | def_bool $(shields_list_contains,lotus58_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/murphpad/murphpad.conf:
--------------------------------------------------------------------------------
1 | # Uncomment to turn on logging, and set ZMK logging to debug output
2 | # CONFIG_ZMK_USB_LOGGING=y
3 |
4 | # Uncomment both to enable encoder
5 | CONFIG_EC11=y
6 | CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
7 |
8 | # Uncomment to enable OLED
9 | CONFIG_ZMK_DISPLAY=y
--------------------------------------------------------------------------------
/app/boards/shields/zodiark/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_ZODIARK_LEFT
5 | def_bool $(shields_list_contains,zodiark_left)
6 |
7 | config SHIELD_ZODIARK_RIGHT
8 | def_bool $(shields_list_contains,zodiark_right)
9 |
--------------------------------------------------------------------------------
/app/src/events/endpoint_selection_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_endpoint_selection_changed);
11 |
--------------------------------------------------------------------------------
/.devcontainer/.bashrc:
--------------------------------------------------------------------------------
1 | export LS_OPTIONS='-F --color=auto'
2 | alias ls='ls $LS_OPTIONS'
3 | if [ "${CODESPACES}" = "true" ]; then
4 | export WORKSPACE_DIR="$HOME/workspace/zmk"
5 | fi
6 | if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
7 | source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
8 | fi
9 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/nice_nano_v2.yaml:
--------------------------------------------------------------------------------
1 | identifier: nice_nano_v2
2 | name: nice!nano v2
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/shields/ergodash/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_ERGODASH_LEFT
5 | def_bool $(shields_list_contains,ergodash_left)
6 |
7 | config SHIELD_ERGODASH_RIGHT
8 | def_bool $(shields_list_contains,ergodash_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/microdox/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_MICRODOX_LEFT
5 | def_bool $(shields_list_contains,microdox_left)
6 |
7 | config SHIELD_MICRODOX_RIGHT
8 | def_bool $(shields_list_contains,microdox_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/murphpad/murphpad.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: murphpad
3 | name: MurphPad
4 | type: shield
5 | url: https://mechwild.com/product/murphpad/
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | - underglow
13 |
--------------------------------------------------------------------------------
/app/boards/shields/splitreus62/splitreus62.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: splitreus62
3 | name: Splitreus62
4 | type: shield
5 | url: https://github.com/Na-Cly/splitreus62
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - splitreus62_left
11 | - splitreus62_right
12 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/2-early-key-release/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | kp_pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
2 | mo_pressed: position 1 layer 1
3 | kp_released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
4 | mo_released: position 1 layer 1
5 |
--------------------------------------------------------------------------------
/app/boards/shields/cradio/cradio.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: cradio
3 | name: Cradio/Sweep
4 | type: shield
5 | url: https://github.com/davidphilipbarr/Sweep
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | siblings:
11 | - cradio_left
12 | - cradio_right
13 |
--------------------------------------------------------------------------------
/app/boards/shields/quefrency/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_QUEFRENCY_LEFT
5 | def_bool $(shields_list_contains,quefrency_left)
6 |
7 | config SHIELD_QUEFRENCY_RIGHT
8 | def_bool $(shields_list_contains,quefrency_right)
9 |
--------------------------------------------------------------------------------
/app/boards/shields/splitreus62/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Derek Schmell
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_SPLITREUS62_LEFT
5 | def_bool $(shields_list_contains,splitreus62_left)
6 |
7 | config SHIELD_SPLITREUS62_RIGHT
8 | def_bool $(shields_list_contains,splitreus62_right)
9 |
--------------------------------------------------------------------------------
/app/include/zmk/split/bluetooth/central.h:
--------------------------------------------------------------------------------
1 |
2 | #pragma once
3 |
4 | #include
5 | #include
6 |
7 | int zmk_split_bt_invoke_behavior(uint8_t source, struct zmk_behavior_binding *binding,
8 | struct zmk_behavior_binding_event event, bool state);
--------------------------------------------------------------------------------
/app/src/events/split_peripheral_status_changed.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #include
8 | #include
9 |
10 | ZMK_EVENT_IMPL(zmk_split_peripheral_status_changed);
--------------------------------------------------------------------------------
/app/tests/backlight/config-brt/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | /* BL_INC */
6 | ZMK_MOCK_PRESS(0,0,10)
7 | ZMK_MOCK_RELEASE(0,0,10)
8 | /* BL_DEC */
9 | ZMK_MOCK_PRESS(0,1,10)
10 | ZMK_MOCK_RELEASE(0,1,10)
11 | >;
12 | };
13 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-on/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | /* BL_ON */
6 | ZMK_MOCK_PRESS(1,0,10)
7 | ZMK_MOCK_RELEASE(1,0,10)
8 | /* BL_OFF */
9 | ZMK_MOCK_PRESS(1,1,10)
10 | ZMK_MOCK_RELEASE(1,1,10)
11 | >;
12 | };
13 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/6-retro-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/boards/shields/elephant42/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_ELEPHANT42_LEFT
5 | def_bool $(shields_list_contains,elephant42_left)
6 |
7 | config SHIELD_ELEPHANT42_RIGHT
8 | def_bool $(shields_list_contains,elephant42_right)
--------------------------------------------------------------------------------
/app/boards/shields/fourier/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 |
5 | config SHIELD_FOURIER_LEFT
6 | def_bool $(shields_list_contains,fourier_left)
7 |
8 | config SHIELD_FOURIER_RIGHT
9 | def_bool $(shields_list_contains,fourier_right)
10 |
--------------------------------------------------------------------------------
/app/boards/shields/helix/helix.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: helix
3 | name: Helix
4 | type: shield
5 | url: https://github.com/MakotoKurauchi/helix
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | siblings:
12 | - helix_left
13 | - helix_right
14 |
--------------------------------------------------------------------------------
/app/boards/shields/jian/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 |
2 | if SHIELD_JIAN_LEFT
3 |
4 | config ZMK_KEYBOARD_NAME
5 | default "Jian"
6 |
7 | config ZMK_SPLIT_ROLE_CENTRAL
8 | default y
9 |
10 | endif
11 |
12 | if SHIELD_JIAN_LEFT || SHIELD_JIAN_RIGHT
13 |
14 | config ZMK_SPLIT
15 | default y
16 |
17 | endif
18 |
--------------------------------------------------------------------------------
/app/boards/shields/lily58/lily58.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: lily58
3 | name: Lily58
4 | type: shield
5 | url: https://github.com/kata0510/Lily58
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | siblings:
12 | - lily58_left
13 | - lily58_right
14 |
--------------------------------------------------------------------------------
/app/include/zmk/activity.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | enum zmk_activity_state { ZMK_ACTIVITY_ACTIVE, ZMK_ACTIVITY_IDLE, ZMK_ACTIVITY_SLEEP };
10 |
11 | enum zmk_activity_state zmk_activity_get_state();
--------------------------------------------------------------------------------
/app/tests/backlight/basic/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=y
2 | CONFIG_GPIO_EMUL=y
3 | CONFIG_ZMK_BLE=n
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
10 | CONFIG_LED_GPIO=y
11 | CONFIG_ZMK_BACKLIGHT=y
12 |
--------------------------------------------------------------------------------
/app/tests/backlight/cycle/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=y
2 | CONFIG_GPIO_EMUL=y
3 | CONFIG_ZMK_BLE=n
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
10 | CONFIG_LED_GPIO=y
11 | CONFIG_ZMK_BACKLIGHT=y
12 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/6-retro-tap/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/tap-dance/1a-tap1/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,200)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/tap-dance/4a-single/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,1,10)
9 | ZMK_MOCK_RELEASE(0,1,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/bdn9_rev2.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bdn9_rev2
3 | name: BDN9 Rev2
4 | type: board
5 | arch: arm
6 | outputs:
7 | - usb
8 | features:
9 | - keys
10 | - encoder
11 | url: https://keeb.io/collections/bdn9-collection/products/bdn9-rev-2-3x3-9-key-macropad-rotary-encoder-and-rgb
12 |
--------------------------------------------------------------------------------
/app/boards/arm/bluemicro840/bluemicro840_v1.yaml:
--------------------------------------------------------------------------------
1 | identifier: bluemicro840_v1
2 | name: BlueMicro840_V1
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/tests/tap-dance/2a-hold1/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,400)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml:
--------------------------------------------------------------------------------
1 | identifier: nrf52840_m2
2 | name: Makerdiary nRF52840 M.2 module
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml:
--------------------------------------------------------------------------------
1 | identifier: nrfmicro_11_flipped
2 | name: nrfmicro_11_flipped
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | supported:
10 | - adc
11 | - usb_device
12 | - ble
13 | - ieee802154
14 | - pwm
15 | - watchdog
16 |
--------------------------------------------------------------------------------
/app/boards/arm/proton_c/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # QMK Proton-C board configuration
2 |
3 | # Copyright (c) 2020 Pete Johanson
4 | # SPDX-License-Identifier: MIT
5 |
6 | if BOARD_QMK_PROTON_C
7 |
8 | config BOARD
9 | default "proton_c"
10 |
11 | config ZMK_USB
12 | default y
13 |
14 | endif # BOARD_QMK_PROTON_C
15 |
--------------------------------------------------------------------------------
/app/boards/shields/corne/corne.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: corne
3 | name: Corne
4 | type: shield
5 | url: https://github.com/foostan/crkbd/
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - underglow
12 | siblings:
13 | - corne_left
14 | - corne_right
15 |
--------------------------------------------------------------------------------
/app/boards/shields/jorne/jorne.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: jorne
3 | name: Jorne
4 | type: shield
5 | url: https://github.com/joric/jorne
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - underglow
12 | siblings:
13 | - jorne_left
14 | - jorne_right
15 |
--------------------------------------------------------------------------------
/app/boards/shields/quefrency/quefrency.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: quefrency
3 | name: Quefrency Rev. 1
4 | type: shield
5 | url: https://github.com/keebio/quefrency-rev1-pcb
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | - encoder
10 | siblings:
11 | - quefrency_left
12 | - quefrency_right
13 |
--------------------------------------------------------------------------------
/app/tests/backlight/low-brightness/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=y
2 | CONFIG_GPIO_EMUL=y
3 | CONFIG_ZMK_BLE=n
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
10 | CONFIG_LED_GPIO=y
11 | CONFIG_ZMK_BACKLIGHT=y
12 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/1-dn-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/8-global-quick-tap/1-basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/boards/arm/bt60/Kconfig.board:
--------------------------------------------------------------------------------
1 | # BT60 board configuration
2 |
3 | # Copyright (c) 2021 Polarity Works
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_BT60_V1
7 | bool "bt60"
8 | depends on SOC_NRF52840_QIAA
9 |
10 | config BOARD_BT60_V1_HS
11 | bool "bt60 hotswap"
12 | depends on SOC_NRF52840_QIAA
13 |
--------------------------------------------------------------------------------
/app/boards/arm/nrf52840_m2/board.cmake:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/bfo9000/bfo9000.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: bfo9000
3 | name: BFO-9000
4 | type: shield
5 | url: https://keeb.io/products/bfo-9000-keyboard-customizable-full-size-split-ortholinear
6 | requires: [pro_micro]
7 | features:
8 | - keys
9 | siblings:
10 | - bfo9000_left
11 | - bfo9000_right
12 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/8-global-quick-tap/2-double-hold/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/1-dn-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/8-global-quick-tap/1-basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/1-dn-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/8-global-quick-tap/1-basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/none/layered/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/app/boards/arm/bdn9/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
4 | board_runner_args(jlink "--device=STM32F072CB" "--speed=4000")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/arm/ferris/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
4 | board_runner_args(jlink "--device=STM32F072CB" "--speed=4000")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/arm/planck/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
4 | board_runner_args(jlink "--device=STM32F303VC" "--speed=4000")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/arm/proton_c/proton_c.yaml:
--------------------------------------------------------------------------------
1 | identifier: proton_c
2 | name: QMK Proton-C
3 | type: mcu
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | ram: 40
10 | supported:
11 | - gpio
12 | - i2c
13 | - counter
14 | - spi
15 | - usb_device
16 | - lsm303dlhc
17 | - nvs
18 | - can
19 |
--------------------------------------------------------------------------------
/app/boards/shields/leeloo/leeloo.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: leeloo
3 | name: Leeloo
4 | type: shield
5 | url: https://clicketysplit.ca/pages/leeloo
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | siblings:
13 | - leeloo_left
14 | - leeloo_right
15 |
--------------------------------------------------------------------------------
/app/boards/shields/sofle/sofle.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: sofle
3 | name: Sofle
4 | type: shield
5 | url: https://github.com/josefadamcik/SofleKeyboard
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | siblings:
13 | - sofle_left
14 | - sofle_right
15 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/one_param.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | properties:
5 | label:
6 | type: string
7 | required: true
8 | "#binding-cells":
9 | type: int
10 | required: true
11 | const: 1
12 |
13 | binding-cells:
14 | - param1
15 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-reset.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Keyboard Reset Behavior
5 |
6 | compatible: "zmk,behavior-reset"
7 |
8 | include: zero_param.yaml
9 |
10 | properties:
11 | type:
12 | type: int
13 | default: 0
14 |
--------------------------------------------------------------------------------
/app/src/display/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | target_sources_ifdef(CONFIG_ZMK_DISPLAY app PRIVATE main.c)
5 | target_sources_ifdef(CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN app PRIVATE status_screen.c)
6 |
7 | add_subdirectory_ifdef(CONFIG_ZMK_DISPLAY widgets/)
8 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/8-global-quick-tap/2-double-hold/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/toggle-layer/normal/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/app/tests/transparent/layered/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = ;
8 | };
--------------------------------------------------------------------------------
/app/boards/arm/dz60rgb/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
4 | board_runner_args(jlink "--device=STM32F303CC" "--speed=4000")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/arm/proton_c/board.cmake:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: MIT
2 |
3 | board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
4 | board_runner_args(jlink "--device=STM32F303CC" "--speed=4000")
5 |
6 | include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/knob_goblin/knob_goblin.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment to enable Encoders
5 | CONFIG_EC11=y
6 | CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
7 |
8 | # Uncomment the following line to enable the Knob Goblin OLED Display
9 | CONFIG_ZMK_DISPLAY=y
10 |
--------------------------------------------------------------------------------
/app/boards/shields/sofle/sofle.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 Ryan Cross
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment the following line to enable the Sofle OLED Display
5 | # CONFIG_ZMK_DISPLAY=y
6 |
7 | # Uncomment these two lines to add support for encoders
8 | # CONFIG_EC11=y
9 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
10 |
--------------------------------------------------------------------------------
/app/drivers/zephyr/dts/bindings/sensor/zmk,battery-nrf-vddh.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Battery SoC monitoring using nRF VDDH
5 |
6 | compatible: "zmk,battery-nrf-vddh"
7 |
8 | properties:
9 | label:
10 | required: true
11 | type: string
12 |
--------------------------------------------------------------------------------
/app/dts/behaviors/none.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ none: behavior_none {
10 | compatible = "zmk,behavior-none";
11 | label = "NONE";
12 | #binding-cells = <0>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/8-global-quick-tap/2-double-hold/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/1-dn-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/6-global-quick-tap/1-basic/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/tests/key-repeat/send-nothing-if-no-keys-pressed-yet/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,10)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/wpm/1-single_keypress/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include "../behavior_keymap.dtsi"
2 |
3 | &kscan {
4 | events = <
5 | ZMK_MOCK_PRESS(0,0,10)
6 | ZMK_MOCK_RELEASE(0,0,10)
7 | /* Wait for the worker to trigger and reset after 5 seconds, followed by a 0 at 6 seconds */
8 | ZMK_MOCK_PRESS(0,0,6000)
9 | >;
10 | };
--------------------------------------------------------------------------------
/.pre-commit-config.yaml:
--------------------------------------------------------------------------------
1 | fail_fast: false
2 | repos:
3 | - repo: https://github.com/pocc/pre-commit-hooks
4 | rev: v1.1.1
5 | hooks:
6 | - id: clang-format
7 | args:
8 | - -i
9 | - repo: https://github.com/pre-commit/mirrors-prettier
10 | rev: v2.2.1
11 | hooks:
12 | - id: prettier
13 |
--------------------------------------------------------------------------------
/app/boards/arm/dz60rgb/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # DZ60RGB keyboard configuration
2 |
3 | # Copyright (c) 2020 The ZMK Contributors
4 | # SPDX-License-Identifier: MIT
5 |
6 | if BOARD_DZ60RGB_REV1
7 |
8 | config ZMK_KEYBOARD_NAME
9 | default "DZ60RGB Rev 1"
10 |
11 | config ZMK_USB
12 | default y
13 |
14 | endif # BOARD_DZ60RGB_REV1
15 |
--------------------------------------------------------------------------------
/app/boards/arm/nice60/board.cmake:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 Nick Winans
2 | # SPDX-License-Identifier: MIT
3 |
4 | set(OPENOCD_NRF5_SUBFAMILY nrf52)
5 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
6 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/lotus58/lotus58.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: lotus58
3 | name: Lotus58
4 | type: shield
5 | url: https://github.com/TweetyDaBird/Lotus58
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | siblings:
13 | - lotus58_left
14 | - lotus58_right
15 |
--------------------------------------------------------------------------------
/app/boards/shields/microdox/microdox.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: microdox
3 | name: Microdox
4 | type: shield
5 | url: https://boardsource.xyz/store/5f2e7e4a2902de7151494f92
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | siblings:
12 | - microdox_left
13 | - microdox_right
14 |
--------------------------------------------------------------------------------
/app/dts/behaviors/ext_power.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | ext_power: behavior_ext_power {
10 | compatible = "zmk,behavior-ext-power";
11 | label = "EXTPOWER";
12 | #binding-cells = <1>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/balanced/7-positional/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-unless-interrupted/6-global-quick-tap/2-double-hold/events.patterns:
--------------------------------------------------------------------------------
1 | s/.*hid_listener_keycode/kp/p
2 | s/.*mo_keymap_binding/mo/p
3 | s/.*on_hold_tap_binding/ht_binding/p
4 | s/.*decide_hold_tap/ht_decide/p
5 | s/.*update_hold_status_for_retro_tap/update_hold_status_for_retro_tap/p
6 | s/.*decide_retro_tap/decide_retro_tap/p
--------------------------------------------------------------------------------
/app/boards/arm/s40nc/board.cmake:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | set(OPENOCD_NRF5_SUBFAMILY nrf52)
5 | board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
6 | include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
7 | include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake)
8 |
--------------------------------------------------------------------------------
/app/boards/shields/iris/iris.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: iris
3 | name: Iris
4 | type: shield
5 | url: https://keeb.io/products/iris-keyboard-split-ergonomic-keyboard
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | siblings:
13 | - iris_left
14 | - iris_right
15 |
--------------------------------------------------------------------------------
/app/boards/shields/leeloo/leeloo.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment the following line to enable the OLED Display
5 | # CONFIG_ZMK_DISPLAY=y
6 |
7 | # Uncomment these two lines to add support for encoders
8 | # CONFIG_EC11=y
9 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
10 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/two_param.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | properties:
5 | label:
6 | type: string
7 | required: true
8 | "#binding-cells":
9 | type: int
10 | required: true
11 | const: 2
12 |
13 | binding-cells:
14 | - param1
15 | - param2
16 |
--------------------------------------------------------------------------------
/app/tests/hold-tap/hold-preferred/7-positional/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/app/tests/hold-tap/tap-preferred/7-positional/2-dn-timer-up/native_posix_64.keymap:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "../behavior_keymap.dtsi"
5 |
6 | &kscan {
7 | events = <
8 | ZMK_MOCK_PRESS(0,0,500)
9 | ZMK_MOCK_RELEASE(0,0,10)
10 | >;
11 | };
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | /node_modules
3 |
4 | # Production
5 | /build
6 |
7 | # Generated files
8 | .docusaurus
9 | .cache-loader
10 |
11 | # Misc
12 | .DS_Store
13 | .env.local
14 | .env.development.local
15 | .env.test.local
16 | .env.production.local
17 |
18 | npm-debug.log*
19 | yarn-debug.log*
20 | yarn-error.log*
21 |
--------------------------------------------------------------------------------
/app/boards/arm/nice_nano/Kconfig.board:
--------------------------------------------------------------------------------
1 | # nice!nano board configuration
2 |
3 | # Copyright (c) 2020 Pete Johanson
4 | # SPDX-License-Identifier: MIT
5 |
6 | config BOARD_NICE_NANO
7 | bool "nice!nano"
8 | depends on SOC_NRF52840_QIAA
9 |
10 | config BOARD_NICE_NANO_V2
11 | bool "nice!nano v2"
12 | depends on SOC_NRF52840_QIAA
13 |
14 |
--------------------------------------------------------------------------------
/app/boards/arm/nrfmicro/Kconfig:
--------------------------------------------------------------------------------
1 | config BOARD_ENABLE_DCDC
2 | bool "Enable DCDC mode"
3 | select SOC_DCDC_NRF52X
4 | default y
5 | depends on (BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13)
6 |
7 | config BOARD_NRFMICRO_CHARGER
8 | bool "Enable battery charger"
9 | default y
10 | depends on (BOARD_NRFMICRO_13)
11 |
--------------------------------------------------------------------------------
/app/boards/arm/planck/planck_rev6.yaml:
--------------------------------------------------------------------------------
1 | identifier: planck_rev6
2 | name: PLANKREV6
3 | type: keyboard
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | ram: 40
10 | supported:
11 | - gpio
12 | - i2c
13 | - counter
14 | - spi
15 | - usb_device
16 | - lsm303dlhc
17 | - nvs
18 | - can
19 | - kscan
20 |
--------------------------------------------------------------------------------
/app/boards/seeeduino_xiao_ble.conf:
--------------------------------------------------------------------------------
1 |
2 | CONFIG_CONSOLE=n
3 | CONFIG_SERIAL=n
4 | CONFIG_UART_CONSOLE=n
5 | CONFIG_UART_INTERRUPT_DRIVEN=n
6 | CONFIG_ZMK_USB=y
7 | CONFIG_ZMK_BLE=y
8 |
9 |
10 | CONFIG_MPU_ALLOW_FLASH_WRITE=y
11 | CONFIG_NVS=y
12 | CONFIG_SETTINGS_NVS=y
13 | CONFIG_FLASH=y
14 | CONFIG_FLASH_PAGE_LAYOUT=y
15 | CONFIG_FLASH_MAP=y
--------------------------------------------------------------------------------
/app/boards/shields/kyria/kyria.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: kyria
3 | name: Kyria
4 | type: shield
5 | url: https://splitkb.com/products/kyria-pcb-kit
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | - underglow
13 | siblings:
14 | - kyria_left
15 | - kyria_right
16 |
--------------------------------------------------------------------------------
/app/boards/shields/tg4x/README.md:
--------------------------------------------------------------------------------
1 | # TG4x
2 |
3 | Standard setup for the [TG4x](https://github.com/MythosMann/tg4x/) 40% keyboard.
4 |
5 | ## Board Revision and Layout Notes
6 |
7 | This TG4x implementation is for...
8 |
9 | * rev 2.1 of the board
10 | * Split spacebar with 2.25U on the left and 2.75U on the right
11 | * 2U right shift
12 |
--------------------------------------------------------------------------------
/app/dts/behaviors/backlight.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2021 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ bl: behavior_backlight {
10 | compatible = "zmk,behavior-backlight";
11 | label = "BCKLGHT";
12 | #binding-cells = <2>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/dts/behaviors/bluetooth.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ bt: behavior_bluetooth {
10 | compatible = "zmk,behavior-bluetooth";
11 | label = "BLUETOOTH";
12 | #binding-cells = <2>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/dts/behaviors/rgb_underglow.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | rgb_ug: behavior_rgb_underglow {
10 | compatible = "zmk,behavior-rgb-underglow";
11 | label = "RGB_UG";
12 | #binding-cells = <2>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/dts/behaviors/to_layer.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ to: behavior_to_layer {
10 | compatible = "zmk,behavior-to-layer";
11 | label = "TO_LAYER";
12 | #binding-cells = <1>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/dts/bindings/behaviors/zmk,behavior-key-repeat.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: Key repeat behavior
5 |
6 | compatible: "zmk,behavior-key-repeat"
7 |
8 | include: zero_param.yaml
9 |
10 | properties:
11 | usage-pages:
12 | type: array
13 | required: true
14 |
--------------------------------------------------------------------------------
/app/dts/bindings/zmk,keymap-sensors.yaml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | description: |
5 | Allows defining the collection of sensors bound in the keymap layers
6 |
7 | compatible: "zmk,keymap-sensors"
8 |
9 | properties:
10 | sensors:
11 | type: phandles
12 | required: true
13 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-on/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=y
2 | CONFIG_GPIO_EMUL=y
3 | CONFIG_ZMK_BLE=n
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
10 | CONFIG_LED_GPIO=y
11 | CONFIG_ZMK_BACKLIGHT=y
12 | CONFIG_ZMK_BACKLIGHT_ON_START=n
13 |
--------------------------------------------------------------------------------
/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml:
--------------------------------------------------------------------------------
1 | identifier: DZ60RGB_rev1
2 | name: DZ60RGBREV1
3 | type: keyboard
4 | arch: arm
5 | toolchain:
6 | - zephyr
7 | - gnuarmemb
8 | - xtools
9 | ram: 40
10 | supported:
11 | - gpio
12 | - i2c
13 | - counter
14 | - spi
15 | - usb_device
16 | - lsm303dlhc
17 | - nvs
18 | - can
19 | - kscan
20 |
--------------------------------------------------------------------------------
/app/boards/arm/ferris/README.md:
--------------------------------------------------------------------------------
1 | # Building ZMK for the Ferris 0.2
2 |
3 |
4 | ## Standard Build
5 |
6 | ```
7 | west build -p -d build/ferris --board ferris_rev02
8 | ```
9 |
10 | ## Flashing
11 |
12 | `west` can be used to flash the board directly. Press the reset button once, and run:
13 |
14 | ```
15 | west flash -d build/ferris
16 | ```
17 |
--------------------------------------------------------------------------------
/app/boards/shields/lotus58/lotus58.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment the following line to enable the Lotus58 OLED Display
5 | # CONFIG_ZMK_DISPLAY=y
6 |
7 | # Uncomment these two lines to add support for encoders
8 | # CONFIG_EC11=y
9 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
10 |
--------------------------------------------------------------------------------
/app/boards/shields/tidbit/tidbit.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Enable Encoders
5 | CONFIG_EC11=y
6 | CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
7 |
8 | # Enable underglow
9 | #CONFIG_ZMK_RGB_UNDERGLOW=y
10 | # Use the STRIP config specific to the LEDs you're using
11 | #CONFIG_WS2812_STRIP=y
12 |
--------------------------------------------------------------------------------
/app/boards/shields/zodiark/zodiark.conf:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2021 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | # Uncomment the following line to enable the Zodiark OLED Display
5 | # CONFIG_ZMK_DISPLAY=y
6 |
7 | # Uncomment these two lines to add support for encoders
8 | # CONFIG_EC11=y
9 | # CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
10 |
--------------------------------------------------------------------------------
/app/boards/shields/zodiark/zodiark.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: zodiark
3 | name: Zodiark
4 | type: shield
5 | url: https://www.splitlogic.xyz/buildguides/zodiark-build-guide
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - encoder
12 | siblings:
13 | - zodiark_left
14 | - zodiark_right
15 |
--------------------------------------------------------------------------------
/app/dts/behaviors/key_toggle.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ kt: behavior_key_toggle {
10 | compatible = "zmk,behavior-key-toggle";
11 | label = "KEY_TOGGLE";
12 | #binding-cells = <1>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/dts/behaviors/transparent.dtsi:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | / {
8 | behaviors {
9 | /omit-if-no-ref/ trans: behavior_transparent {
10 | compatible = "zmk,behavior-transparent";
11 | label = "TRANS";
12 | #binding-cells = <0>;
13 | };
14 | };
15 | };
16 |
--------------------------------------------------------------------------------
/app/tests/backlight/config-brt/native_posix_64.conf:
--------------------------------------------------------------------------------
1 | CONFIG_GPIO=y
2 | CONFIG_GPIO_EMUL=y
3 | CONFIG_ZMK_BLE=n
4 | CONFIG_LOG=y
5 | CONFIG_LOG_BACKEND_SHOW_COLOR=n
6 | CONFIG_ZMK_LOG_LEVEL_DBG=y
7 | CONFIG_DEBUG=y
8 | CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
9 |
10 | CONFIG_LED_GPIO=y
11 | CONFIG_ZMK_BACKLIGHT=y
12 | CONFIG_ZMK_BACKLIGHT_BRT_START=60
13 |
--------------------------------------------------------------------------------
/app/boards/shields/elephant42/elephant42.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: elephant42
3 | name: Elephant42
4 | type: shield
5 | url: https://github.com/illness072/elephant42
6 | requires: [pro_micro]
7 | exposes: [i2c_oled]
8 | features:
9 | - keys
10 | - display
11 | - underglow
12 | siblings:
13 | - elephant42_left
14 | - elephant42_right
15 |
--------------------------------------------------------------------------------
/app/drivers/gpio/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2020 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | zephyr_library_named(zmk__drivers__gpio)
5 | zephyr_library_include_directories(${CMAKE_SOURCE_DIR}/include)
6 |
7 | zephyr_library_sources_ifdef(CONFIG_GPIO_595 gpio_595.c)
8 | zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23017 gpio_mcp23017.c)
9 |
--------------------------------------------------------------------------------
/app/include/zmk/ble/profile.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | #pragma once
8 |
9 | #include
10 |
11 | #define ZMK_BLE_PROFILE_NAME_MAX 15
12 |
13 | struct zmk_ble_profile {
14 | char name[ZMK_BLE_PROFILE_NAME_MAX];
15 | bt_addr_le_t peer;
16 | };
17 |
--------------------------------------------------------------------------------
/app/tests/momentary-layer/4-nested/keycode_events.snapshot:
--------------------------------------------------------------------------------
1 | mo_pressed: position 1 layer 1
2 | mo_pressed: position 0 layer 2
3 | kp_pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
4 | kp_released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
5 | mo_released: position 0 layer 2
6 | mo_released: position 1 layer 1
7 |
--------------------------------------------------------------------------------