* [Docs] recurse-submodules option is need now * [Docs] `tmk_core` folder is correct * [Docs] fix typo * [Docs] package scope has changed * [Docs] Fix menu differences * Update docs/arm_debugging.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update docs/arm_debugging.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * fix typo Co-authored-by: fauxpark <fauxpark@gmail.com>
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