Configuration - inpudiy/zmk-guide GitHub Wiki

В этом разделе описывается процесс конфигурации клавиатуры, за исключением настройки матрицы и keymap. Основное внимание уделяется подготовке файлов, необходимых для сборки прошивки и реализации базовой функциональности.

Файл сборки

В разделе про подготовку репозитория мы упомянули файл build.yaml. Сейчас настроим его вместе.

Первым делом нужно указать, какая плата (контроллер) будет использоваться. На странице документации приведён список доступных вариантов: https://zmk.dev/docs/hardware

Вот список вариантов, которые, скорее всего, подойдут вам:

  • nice_nano_v2 — Подойдёт для nice_nano_v2 и Super Mini nRF52840
  • seeeduino_xiao_ble — Вариант для Seeed Studio XIAO nRF52840
  • sparkfun_pro_micro_rp2040 — Проводной RP2040 Pro Micro

Пример импорта в файл:

include:
  - board: nice_nano_v2

Следующий шаг — указать имя "shield". Если прошивка собирается для моносплита, то указывается один shield:

include:
  - board: nice_nano_v2
    shield: kometa

Если сборка производится для сплита, то указываем ещё и сторону каждой половины:

include:
  - board: nice_nano_v2
    shield: kometa_left
  - board: nice_nano_v2
    shield: kometa_right

Файлы Kconfig

Теперь переходим в другую директорию, а именно /boards/shields. Внутри неё создаём папку с именем нашего щита. Чтобы создать эту папку через сайт, необходимо в директории /boards/shields создать новый файл, путь к которому автоматически создаст нужную директорию. Поэтому создадим файл Kconfig.shield. Для этого нажимаем на "+" в меню файлов:

image

Далее в имени файла указываем такую конструкцию: /kometa/Kconfig.shield, где первое слово — имя директории, а второе — имя самого файла. Таким образом автоматически создастся файл в нужной директории.

image

Начнём заполнять Kconfig.shield. В случае со сплит-клавиатурой также нужно указать имя обеих половин:

# Не используйте пробелы в именах!
config SHIELD_KOMETA_LEFT
    def_bool $(shields_list_contains,kometa_left)

config SHIELD_KOMETA_RIGHT
    def_bool $(shields_list_contains,kometa_right)

Следующий файл, который нужно создать в той же директории, — это Kconfig.defconfig. Можете просто заменить имя платы на своё. В этом файле описывается, какая плата будет центральной, и указывается, что это split:

if SHIELD_KOMETA_LEFT

config ZMK_KEYBOARD_NAME
    default "kometa"

config ZMK_SPLIT_ROLE_CENTRAL
    default y

endif

if SHIELD_KOMETA_LEFT || SHIELD_KOMETA_RIGHT

config ZMK_SPLIT
    default y

endif

Теперь создаём следующий файл — kometa.zmk.yaml. В этом файле можно просто заменить "kometa" на имя вашего проекта. Остальное разберём, когда будем делать более сложные конфигурации:

file_format: "1"
id: kometa
name: kometa
type: shield
url: https://github.com/inpudiy/KOMETA
requires: [pro_micro]
features:
  - keys
siblings:
  - kometa_left
  - kometa_right

И последний файл, который необходимо создать, — это kometa.conf. Он должен находиться в папке config, где уже лежит west.yml. В нём описываются различные параметры, такие как режим сна, поддержка ZMK Studio и другие настройки. (Отдельно будет файл с их описанием). Вот пример такой конфигурации:

CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y
CONFIG_ZMK_PM_SOFT_OFF=y