Модификация раскладки Moonlander
Сделано в @Cum_Insider
Перед прочтением настоятельно рекомендую полностью прочитать статью про Moonlander и клавиатуры в целом за авторством @optozorax.
Создание раскладки в Oryx
В первую очередь нужно попробовать создать раскладку в визуальном редакторе Oryx. Переходим в редактор раскладок для Moonlander и создаем раскладку под свои нужды.
Мою раскладку можно найти в моем GitHub.
Чтобы клавиатуру было удобно использовать с мышью, самые часто используемые с ней клавиши располагаем на левой половине клавиатуры.
В раскладке присутствуют пустые клавиши. Это потому, что я не придумал, как их задействовать.
LAYER 0 [MAIN]
- Используются стандартные раскладки QWERTY и ЙЦУКЕН с небольшими изменениями.
Esc
иTab
,Win
иAlt
на привычных местах.- На месте цифрового ряда часто используемые символы.
- Цифровой ряд спрятан в слой Layer 2 [Nums].
- Расположение клавиши
Del
на левой половине позволяет удобно редактировать текст с мышкой, а также быстро удалять файлы и другие вещи. - Точка и запятая вынесены отдельными клавишами под левый мизинец.
- Также на этом слою расположились скобки
([
,)]
и<{
,>}
и символы'"
и\/
, где вторые модификации активируются с шифтом. - Клавиша
SysRq
— это клавишаPrtScr
. Для создания скриншота экрана используется программа ShareX . Нажатием клавишиPrtScr
создается скриншот экрана, а для скриншота области используется сочетаниеCtrl + PrtScr
. Для записи же гифки области экрана —Shift + Ctrl + PrtScr
. - На левом тамб-блоке (кластер клавиш под большой палец) расположились
Space
,Enter
,Shift
иCtrl
. Близкое расположение клавишShift
иCtrl
позволяет нажимать их одновременно одним большим пальцем, что, в свою очередь, позволяет с легкостью реализовывать использующие их шорткаты. Во избежание случайного изменения языка нужно изменить сочетание, меняющее язык, наWin + Space
. - На правом тамб-блоке расположились клавиша изменения языка (
Win + Space
) иBackspace
. - Под левую руку в слой Layer 1 [Arrows] спрятаны стрелки и кнопки управления медиа.
- Кнопка активации игрового слоя Layer 3 [Game] и слоя с клавишами Fn Layer 4 [Fn] расположены в правой части клавиатуры.
Layer 1 [Arrows]
- Слой Layer 1 [Arrows] содержит лишь стрелки, клавиши
End
,PgDown
,PgUp
,Home
, а также кнопки управления медиа. - Клавишу активации слоя удобно нажимать как большим пальцем, так и безымянным.
- Сочетание стрелок и
Ctrl
позволяет выделять символы. А если использоватьShift + Ctrl
, то выделятся будут целые слова. - Перейдя в слой со стрелками и зажав
Win + Ctrl
, можно переключаться между рабочими столами без мыши лишь лишь левой рукой. Альтернативный способ переключенияWin + Tab
использует мышь и работает не так быстро.
Layer 2 [Nums]
- Вместо стандартного цифрового ряда используется NumPad-овская раскладка, спрятанная в слой под левой рукой для удобной работы с мышью.
- Точка, запятая и иные знаки не меняют расположения во избежание путаницы.
- Также в правой части клавиатуры становится доступен набор редко используемых символов, что расширяет возможности одного лишь слоефикатора.
Layer 3 [Game]
Игровой слой привносит минимум изменений:
Layer 4 [Fn]
Ничего особенного: лишь Fn
клавиши.
Прошивка через Wally
Скачиваем .bin
файл прошивки и программу для прошивки Wally:
Устанавливаем Wally, запускаем и выбираем .bin
файл прошивки. Переводим клавиатуру в режим загрузчика нажатием скрепкой на спрятанную кнопку RESET:
Устройство должно успешно прошиться.
Wally позволяет прошивать раскладки, созданные только в визуальном редакторе Oryx, который в свою очередь сильно ограничен. Мы должны исправить проблему с русским языком, при переключении на который большинство символов замещаются на иные.
Доработка раскладки помощью MSKLC
Скачиваем и устанавливаем MSKLC. Открываем два редактора для русской и английской раскладок. Загрузим в редактор уже существующие раскладки:
Загружаем раскладки "Русская" и "США" и редактируем под свои нужды.
В процессе экспериментов вполне ожидаемо в системе расплодится куча недоработанных раскладок, которые нужно будет удалить. Для того, чтобы это сделать, нужно зайти в Панель управления -> Программы -> Программы и компоненты (Удаления программ) и удалить лишние раскладки.
Базовый слой
- Независимо от языка знаки остаются на своих местах.
- Хоть мы и поменяли раскладку у себя на компьютере, Oryx все равно думает, что мы используем стандартную раскладку. Поэтому, когда мы хотим использовать, например, открытую круглую скобку
(
, нам нужно передать в Oryx, что мы хотим нажать минус-
:
- Oryx нажмет клавишу, где, как он считает, находится минус
-
, на на самом деле у нас там находится скобка(
. Победа!
Слой с зажатым Shift
Слой зажатыми Alt + Ctrl
Слой зажатыми Alt + Ctrl + Shift
- Этот слой позволяет реализовать слой с редко используемыми символами путем сочетания цифр и
Alt + Ctrl + Shift
:
Таблица символов
|Ожидание |Ожидание | |Oryx |Пользователя | |:-----------------:|:-----------:| | S + 1 | * | | S + 2 | : | | S + 3 | - | | S + 4 | + | | S + 5 | = | | S + 6 | _ | | S + 7 | ! | | S + 8 | ? | | S + 9 | # | | S + 0 | ; | | S + C + A + 1 | % | | S + C + A + 2 | ₽ | | S + C + A + 3 | $ | | S + C + A + 4 | ` | | S + C + A + 5 | ~ | | S + C + A + 6 | — | | S + C + A + 7 | ^ | | S + C + A + 8 | & | | S + C + A + 9 | @ | | S + C + S + 0 | | | | - | ( | | S + - | [ | | A + C + - | < | | S + A + C + - | { | | = | ) | | S + = | ] | | A + C + = | > | | S + A + C + = | } | | \ | \ | | S + \ | / | | ` | ' | | S + ` | " | | / | . | | S + / | , |
Доработка раскладки с библиотекой lang_shift
Для исправления недоразумения с русской раскладкой уважаемый @optozorax написал библиотеку lang_shift. Ее возможности описаны в README репозитория.
Дальше путь открыт только C кодерам.
Прошивка через командную строку
Сначала нужно попробовать прошить ту же раскладку, созданную на Oryx, через командную строку. Это можно делать как на Windows, так и на Linux.
Я решил поставить Fedora Linux второй системой.
Обновим пакеты дистрибутива до актуальной версии:
sudo yum update -y
Исходный код раскладки, сделанной на Oryx, будет работать только с форком QMK от ZSA. Конечно, можно использовать обычный QMK, но там вроде чего-то не хватает. Поэтому первым делом надо скачать и перейти в этот форк:
git clone https://github.com/zsa/qmk_firmware zsa_qmk cd zsa_qmk
./util/qmk_install.sh git submodule init git submodule update
Скачиваем прошивку, созданную с помощью Oryx:
Копируем папку *_source из .zip
файла прошивки в папку zsa_qmk/keyboards/moonlander/keymaps/:
Переводим клавиатуру в режим загрузчика и прошиваем ее:
sudo make moonlander:my_layout_source:flash
Боюсь, что для того, чтобы сделать следующий шаг, нужно постичь магию кодинга на C. Могу лишь пожелать удачи <3