5.8 KiB
Введение
Эта страница пытается объяснить основную информацию, которую вы должны знать, чтобы работать с проектом QMK. Предполагается, что вы знакомы с навигацией в оболочке Unix, но не предполагается, что вы знакомы с C или с компиляцией с использованием make.
Базовая структура QMK
QMK - это форк Джуна Вако (Jun Wako) проекта tmk_keyboard. Оригинальный код TMK с изменениями можно найти в папке tmk_core
. Дополнения QMK к проекту можно найти в папке quantum
. Проекты клавиатур можно найти в папках handwired
и keyboard
.
Структура пространства пользователя
Внутри папки users
находится каталог для каждого пользователя. Это место для пользователей, куда они могут поместить код, чтобы использовать его с разными клавиатурами. Для получения дополнительной информации обратитесь к документации по функциям пользовательского пространства.
Структура проекта клавиатуры
Внутри папки keyboards
есть подпапки handwired
и есть подкаталоги поставщиков и производителей, для примера, clueboard
- это каталог для каждого проекта клавиатуры, например, qmk_firmware/keyboards/clueboard/2x1800
. В нем вы найдете следующую структуру:
keymaps/
: Различные раскладки клавиш, которые можно собрать.rules.mk
: Файл, который устанавливает параметры по умолчанию для команды "make". Не редактируйте этот файл напрямую, вместо этого используйтеrules.mk
, относящийся к конкретной раскладке.config.h
: Файл, который устанавливает параметры времени компиляции по умолчанию. Не редактируйте этот файл напрямую, вместо этого используйтеconfig.h
, относящийся к конкретной раскладке.info.json
: Файл настройки раскладки для QMK Configurator. Посмотрите Поддержку конфигуратора для дополнительной информации.readme.md
: Краткий обзор клавиатуры.<keyboardName>.h
: В этом файле определяется раскладка клавиатуры по матрице переключателей клавиатуры.<keyboardName>.c
: В этом файле вы можете найти пользовательский код для клавиатуры.
Для получения дополнительной информации о структуре проекта обратитесь к Руководству QMK по клавиатуре.
Структура раскладки клавиатуры
В каждой папке раскладки клавиатуры могут быть найдены следующие файлы. Обязательным является только файл keymap.c
, и если остальные файлы не найдены, то будут выбраны параметры по умолчанию.
config.h
: настройки вашей раскладки клавиатуры.keymap.c
: весь код вашей раскладки клавиатуры (обязателен).rules.mk
: активированные функции QMK.readme.md
: описание вашей раскладки клавиш, как ее могут использовать другие, и объяснения функций. Пожалуйста, загрузите изображения на сервис, такой как imgur.
Файл config.h
Существует 3 возможных местоположения config.h
:
- клавиатура (
/keyboards/<keyboard>/config.h
) - пространство пользователя (
/users/<user>/config.h
) - раскладка клавиш (
/keyboards/<keyboard>/keymaps/<keymap>/config.h
)
Система сборки автоматически загружает файлы конфигурации в указанном выше порядке. Если вы хотите переопределить любую настройку, заданную предыдущим config.h
, вам сначала нужно будет включить некоторый шаблонный код для настроек, которые вы хотите изменить.
#pragma once
Затем, чтобы переопределить настройку из предыдущего файла config.h
, вы должны сделать #undef
и #define
для неё снова.
Код и настройка шаблона вместе выглядят так:
#pragma once
// Переопределения производятся здесь!
#undef MY_SETTING
#define MY_SETTING 4