Чем прозрачная клавиша KC_TRNS отличается от KC_NO?
KC_TRNS означает, что позиция не задаёт собственную функцию и передаёт нажатие нижнему активному слою. KC_NO означает отсутствие действия: нажатие этой позиции ничего не выполняет, а поиск функции ниже не продолжается.
KC_TRNS передаёт функцию
Прозрачная клавиша полезна, когда новый слой должен временно менять только часть раскладки. Для остальных позиций нажатие проходит к соответствующему нижнему слою.
Так можно сохранить базовые буквы или модификаторы без дублирования их назначения на каждом слое.
- Позиция остаётся доступной через нижний слой.
- Функция зависит от слоёв ниже.
- Подходит для частично изменённого слоя.
KC_NO блокирует действие
KC_NO задаёт пустую позицию. Нажатие не вызывает код клавиши и не передаёт его нижнему слою.
Это отличается от прозрачности: нижний слой не используется для поиска функции в этой позиции.
- Нажатие ничего не выполняет.
- Нижний слой не подставляет функцию.
- Позиция остаётся намеренно отключённой.
Как выбрать код
Если на новом слое должна сохраняться базовая команда, используйте прозрачную позицию. Если команду нужно запретить, назначайте KC_NO.
Проверяйте результат на активном слое и на базовом: одинаковая физическая позиция может иметь разные коды.
- Для наследования выбрать KC_TRNS.
- Для блокировки выбрать KC_NO.
- Проверить оба состояния слоя.
Проверьте себя
- Определить, нужна ли функция нижнего слоя.
- Назначить KC_TRNS для наследования.
- Назначить KC_NO для отключения.
Частый вопрос
Можно ли считать KC_TRNS пустой клавишей?
Нет. Она не задаёт собственную функцию, но передаёт нажатие нижнему слою; KC_NO полностью отключает действие.