Модификация раскладки 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