Являясь приверженцем уходящей вглубь веков традиции менять свои устройства ввода настолько сильно, что никто кроме тебя самого не может ими пользоваться — я печатаю на собственной раскладке OPRIQ («OPtional RIght Qwerty»), на которой можно печатать как одной левой рукой, так и двумя руками. При этом в леворуком режиме доступны все функции обычной клавиатуры.
Раскладка используется в полную силу при работе в программах, завязанных на быстрый ввод хоткеев (Фотошоп, AutoCAD, Excel и др.):
- При работе с интерфейсом какой-нибудь программы — левая рука вводит хоткеи, пока правая кобенится на мышке
- Когда надо вводить много текста — к печати подключается правая рука
Раскладка работает на английском и на русском языках.
Для работы раскладки под Windows запускается специальный скрипт, написанный на языке AutoHotKey.
Содержание:
[1] В чём прикол
Прикол в том, что OPRIQ одинаково хороша и как леворукая, и как двурукая раскладка.
Судя по всему, что я знаю об одноруких способах печати, OPRIQ — единственная в мире (!) раскладка, в которой одновременно:
- Собственно, можно печатать вслепую как одной левой рукой, так и двумя руками (когда правая рука освобождается), причём в двуруком режиме раскладка не сильно отличается от стандартной QWERTY
- В одноруком режиме есть доступ ко всем клавишам полноценной клавиатуры (буквы, цифры, символы, стрелочки, клавиши F1..F12)
- Можно левой рукой зажать любую клавишу с любым мыслимым сочетанием модификаторов (Alt/Ctrl/Shift/Win)
- Не требуется никакой специальной клавиатуры, можно печатать на любой обычной клаве (правда, всё-таки желательно, чтобы клава на хардварном уровне обладала 6NKRO)
💡
Anti-ghosting (или его частный вариант 6NKRO) — способность клавиатуры распознавать все одновременные нажатые на ней клавиши. Стандартные мембранные клавиатуры обычно распознают не более 2..4 одновременных нажатий. Механические клавиатуры и клавиатуры ноутбуков обычно распознают не менее 6 одновременных нажатий (отсюда и цифра 6 в 6NKRO).
Дополнительный бонус: двурукая раскладка на 90% совпадает с обычной раскладкой (QWERTY/ЙЦУКЕН), поэтому выучить раскладку OPRIQ можно без отрыва от производства.
[2] Устройство OPRIQ
Общая схема устройства раскладки
По задумке, устройство раскладки (при печати на английском языке) должно быть понятно из приводимой схемы. Читателю предлагается максимально внимательно изучить схему, а затем перейти к дополнительным разъяснениям ниже.
В раскладке используются:
-
Широкая постановка рук (также известная как Wide QWERTY):
-
Расслоение на 5 слоёв:
💡
При зажатии слоевой клавиши функции всех клавиш клавиатуры меняются.
Это называется переходом на слой.- Домашний/Home
- Двурукий/2h — слой, в котором заблокированы все функции однорукой печати
- Доп.текст/Text2 — слой дополнительных клавиш для леворукой печати
- Навигация/Navigation
- Мышь/Mouse
-
Двухфункциональность для трёх клавиш: [`~], [Tab], [Space]
💡
Например, нажатие клавиши [Space] посылает символ пробела, а удержание при нахождении на домашнем слое — открывает слой Text2. Итого, клавиша [Space] — двухфункциональна.
-
Аккордовый ввод на клавишах [S], [D] и [F] (только для однорукого режима). При этом простое нажатие этих клавиш по отдельности просто вводит соответствующие буквы.
💡
Например, на домашнем слое одновременное нажатие клавиш [D] и [F] работает как Enter. Такие одновременные нажатия называются аккордами.
-
Переключение со слоя 2h на слой Home по таймеру. Об этом ниже.
Переключение слоёв по таймеру
В мире кастомных раскладок только переключение слоёв по таймеру является чем-то, чего я не встречал в других раскладках (все остальные перечисленные выше подходы уже давно известны клавиатурному коммунити).
Вот как выглядит переключение слоёв по таймеру в OPRIQ:
- Клавиатура, видя использование клавиш с её правой половины, на 1 секунду блокирует леворукие аккорды и слоевые функции клавиш Пробел и Tab (т.е. клавиатура фиксирует пользователя на слое «2h»). При каждом новом нажатии клавиш с правой половины клавиатуры — таймер обновляется.
- Когда таймер заканчивается, все однорукие функции снова становятся доступны (т.е. клавиатура переходит на слой «Home»)
Причины введения таймера
Таймер введён потому, что это единственный устроивший меня способ разделения клавиатуры на однорукий и двурукий режимы.
Что не так с другими способами:
-
Самый прямой способ сделать двурукую раскладку однорукой — это сделать пробел двухфункциональной клавишей (причём именно пробел, ибо все другие клавиши сильно менее удобны для этой роли):
- При быстром нажатии пробела вводится, собственно, символ «пробел»
- При удержании пробела открывается «зеркальный» слой (на этом слое клавиши с левой половины клавиатуры начинают вводить буквы с правой половины)
📜
Конкретно о зеркальных раскладках (Mirrored QWERTY) и в целом обо всех известных мне способах однорукой печати рассказывается в отдельной статье: (ещё переношу из Notion)
-
Есть и другой подход: можно завести специальную клавишу, которая бы переключала клавиатуру с однорукого на двурукий режим. Но по моему опыту постоянно переключать режимы — вроде и мелочь, но ОЧЕНЬ И ОЧЕНЬ напряжная, т.к. постоянно забываешь в каком режиме сейчас находится клавиатура. Всякие там световые индикаторы, иконки в трее и т.п. проблему для меня не решали — всё равно постоянно путался.
Впечатления от такого переключения слоёв
На практике сейчас я «просто печатаю на раскладке и всё». Никаких дополнительных умственных усилий не требуется: не нужно постоянно помнить, в каком режиме сейчас клавиатура.
Единственный затупон, который я испытываю — это периодические попытки нажимать леворукий Enter аккордом (одновременным нажатием клавиш D и F), когда ещё не истёк 1-секундный таймер двурукого режима. Но тут уже только Бог поможет.
Русская раскладка
В целом русская раскладка (ЙЦУКЕН) работает ровно по той же схеме, что и английская раскладка. Т.е. на русской раскладке тоже можно делать всякое одной рукой.
В силу использования широкой постановки рук на OPRIQ, четыре клавиши русской раскладки оказываются перенесёнными в центр клавиатуры.
Самым неприятным является перенос символа точки и символа запятой на центр клавиатуры, ибо эти символы используются довольно часто, а значит нужно будет время на привыкание.
[3] Впечатления от работы
На момент написания статьи я печатаю на OPRIQ около года.
Раскладкой очень доволен во всех аспектах, сейчас она уже воспринимается как родная.
Однорукая печать
Теоретически, на OPRIQ одной рукой можно печатать хоть текст, хоть код, хоть что угодно.
На практике текст одной рукой я набираю только на тренажёрах (typeracer, Клавогонки и т.п.), а как только в реальной работе надо набрать слово длиннее 3..4 букв — печатаю двумя руками. А вот все хоткеи ввожу обычно только левой рукой. Собственно, так всё и задумывалось.
Двурукая печать
При двурукой печати OPRIQ максимально близка к обычной клавиатуре, но в ней ещё и добавлен слой навигации. В слое навигации правой рукой на домашнем ряде зажимаются модификаторы (Alt/Shift/Ctrl/Win), а левая вводит стрелочки. Также со слоя навигации можно управлять громкостью и вводить спец-символы («»°•—₽←↓→↑).
Благодаря слою навигации очень удобно редактировать текст. Например, Shift+Ctrl+Left выделяет слово, Shift+Up выделяет строку и т.п. Это универсальные хоткеи самой Windows, поэтому они работают практически в любом текстовом редакторе.
Скорость печати
Если печатать просто текст, то мои текущие скорости следующие:
Средняя, зн/мин | Рекордная, зн/мин | |
---|---|---|
Печать левой рукой | 300 (eng) | 390 (eng) |
Печать двумя руками | 480 (eng), 460 (ru) | 580 (eng), 570 (ru) |
Если печатать код (т.е. надо набирать кучу спец.символов), то скорость падает на ~30%, но так происходит и на любой другой раскладке.
Игрушечки
В игрушечках раскладка часто не работает (ибо в них клавиши обрабатываются своеобразно). Особых проблем это не создаёт, ибо раскладку можно выключить, а клавиши на левой половине клавиатуры совпадают с клавишами обычной клавиатуры (кроме клавиши Caps Lock, которая в OPRIQ работает как Ctrl — но и её можно отдельно переназначить на уровне регистра Windows с помощью программы SharpKeys; об этом ниже).
[4] Недостатки и нюансы использования OPRIQ
Список недостатков и нюансов вышел относительно объёмным, но это потому, что я специально хочу обозначить все возможные сложности при использования раскладки.
По жизни
- Как и у любой другой нестандартной раскладки, главный недостаток OPRIQ — становится тяжело в полную силу печатать на стандартной раскладке. С одной стороны, OPRIQ в своей основе не очень сильно отличается от исходной QWERTY, поэтому совсем уж экзистенциальных кризисов печать на стандартной раскладке не вызывает. С другой стороны, в условиях волнения на каком-нибудь IT-собеседовании за чужим компом всё равно будешь выглядеть как полный нуб. Поэтому я на собеседования хожу со своим ноутом, лол.
- Если переходить на OPRIQ, то надо будет переучивать не только английскую, но и русскую раскладку тоже (хотя реально меняется позиция лишь нескольких клавиш).
- Не всегда есть возможность переставить колпачки клавиш клавиатуры в их новое положение. Даже когда печатаешь в слепую — всё равно не очень удобно, что на клавишах написано одно, а реально они делают другое.
- OPRIQ требует установки специального софта. На работке придётся объяснять отделу IT-безопасности зачем их драгоценному коллеге понадобился софт по перехвату клавиш клавиатуры.
По мелочи
- Поскольку клавиша TAB — двух-функциональная (слоевая), то сочетание Alt+TAB работает при отпускании кнопки TAB (а не при её нажатии), что всё-таки при частом переключении окон иногда подбешивает.
- Если клавиатура не обладает 6NKRO, то какие-то хитрые хоткеи из-за хардварных ограничений могут не срабатывать в одноруком режиме (например, на одной из клав у меня не работал Alt+Ctrl+P, фактически нажимаемый на OPRIQ сочетанием Caps+Tab+Space+Q). С другой стороны, таких реально используемых, но не работающих хоткеев в моей работе встречалось не больше 1..2 на клавиатуру. Плюс, их же всё равно можно нажать обычным способом (т.е. двумя руками).
Ограничения операционной системы
Язык, на котором написан скрипт раскладки (AutoHotKey), работает только под Windows. Соответственно, на данный момент раскладка работает только под Windows.
💡
Теоретически, можно взять идею раскладки OPRIQ и написать такую же для Мака, Линукса и QMK.
💡
QMK — специальный софт (по сути библиотека языка С), которым прошивают контроллеры программируемых клавиатур. Пищевая основа клавиатурного коммунити.
Ограничения софта (ограничения AutoHotKey)
- На каких-то клавиатурах (но далеко не на всех) по невыясненной причине глючно работают переназначения для клавиш Caps Lock и AltGr (правый Alt). Под «глюками» понимается, что периодически Caps Lock (который должен работать в OPRIQ как Ctrl) вероломно просовывает в клавиатуру свою исходную Caps Lock функцию. То же самое делает AltGr, одновременно руиня свою слоевую функцию в OPRIQ. У этой проблемы есть варианты решения, об этом в следующем разделе.
- Скрипт раскладки сейчас написан так, что иногда модификаторы (Alt/Ctrl/Shift) остаются зажатыми, поэтому скрипт приходится перезагружать (комбинация Win+F3). Такое происходит в среднем один раз за рабочий день. Вообще код скрипта скорее всего можно переписать и очистить от этого глюка, но мне всё лень.
- Некоторые поля ввода блокируют все перехваты клавиш AutoHotKey. За подобным замечен Касперский, некоторые сайты с вводом данных с пластиковой карточки, инсталляторы, экран ввода пароля при логине в Windows и т.п. Поэтому клавиатура в таких случаях работает как обычная.
[5] Софт и установка
OPRIQ не требует установки, надо просто скачать и запустить исполняемый файл.
Для ценителей — можно поугорать в редактирование исходного скрипта, написанного на языке AutoHotKey.
Какая клавиатура нужна для OPRIQ
Самые популярные форматы обычной клавиатуры — это ANSI (с однорядной клавишей Enter) и ISO (с двурядной клавишей Enter). Соответствие клавиш клавиатур этого формата клавишам OPRIQ можно понять из схемы:
Для клавиатур с другим расположением клавиш скрипт тоже запустится, просто надо будет исходя из логики показанной на картинке понять какие клавиши куда переназначились.
Алгоритм запуска OPRIQ
1️⃣
Скачать файлы раскладки:
Файлы внутри архива:
- OPRIQ.exe (Исполняемый файл)
- OPRIQ.ahk (Исходный код)
- OPRIQ.png (Иконка)
2️⃣
Перевести раскладку Windows на английскую (EN) и запустить файл OPRIQ.exe После запуска, в трее должна появиться иконка раскладки:
❗
Если запустить OPRIQ.exe, не находясь на английской (EN) раскладке, то скрипт начнёт жаловаться на то, что он не может полноценно отработать:
❗
Чтобы полностью выключить скрипт OPRIQ, надо нажать правой кнопкой мыши по иконке скрипта, и в открывшемся меню выбрать Exit.
Управление раскладкой OPRIQ
Для общего управления OPRIQ используются комбинации:
Hotkey | Действие |
---|---|
Win + F3 | Перезагрузка OPRIQ |
Win + F4 | Включить/выключить OPRIQ |
Win + F5 | Насильно отжать все модификаторы (Alt/Ctrl/Shift/Win) |
Pause | Насильно отжать все модификаторы (Alt/Ctrl/Shift/Win) |
Если вдруг что-то подвисло, то можно попробовать понажимать Win+F3 и Win+F5.
Комбинация Win+F4 выключает все переназначения клавиатуры, но скрипт при этом продолжает висеть в трее (при выключенных переназначениях иконка скрипта в трее изменится на букву S как на картинке):
❗
При вызове всех этих команд в центре экрана на 1 секунду появляется сообщение, что вызов соответствующей команды сработал:
Редактирование исходного файла
Раскладка написана на языке AutoHotKey, поэтому при установленном AutoHotKey можно редактировать и затем запускать исходный файл OPRIQ.ahk (размер файла — 800 строк).
Скачать установщики версии AutoHotKey, для которой была написана OPRIQ:
С исходным файлом можно делать всё что угодно, но есть две ключевых переменных, влияющих на удобство пользования раскладки:
🤔
За время срабатывания таймера авто-переключения со слоя «2h» на слой «Home» отвечает переменная alarm_Length
. Её можно поменять на желаемую продолжительность таймера в миллисекуднах со знаком минус (по умолчанию установлено -1000, т.е. одна секунда).
🤔
Для двух-функциональных клавиш можно изменить интервал времени, который считается за нажатие (если клавиша нажата дольше этого времени, то она уже считается удерживаемой). Для этого надо поменять переменную tap_time_gap
на желаемое время в миллисекундах (по умолчанию установлено 250, т.е. четверть секунды).
Решение проблем с клавишами AltGr (правый Alt) и CAPS
Как было обозначено выше, на некоторых клавиатурах переназначения для клавиш Caps и AltGr могут периодически подглючивать (периодически — это несколько раз за рабочий день).
Что с этим можно сделать:
(1)
С помощью программы SharpKeys переназначить на уровне регистра Windows функции клавиш Caps Lock и Right Alt соответственно на Left Ctrl и F14. В скрипте OPRIQ уже предусмотрена возможность такого переназначения, поэтому он без лишних телодвижений продолжит работать как надо.
Скачать программу SharpKeys (не требует установки):
Sharipkeys на github: github.com/randyrangs/sharpkeys
(2)
Если нет желания лезть в регистр Windows, то иногда (но не всегда) может помочь следующее. На уровне исходного файла OPRIQ.ahk надо найти строчку ; SendMode Input
и стереть в ней символ точки с запятой в начале строки (и потом надо будет с установленным AutoHotKey запустить исправленный OPRIQ.ahk файл). Это активирует альтернативный способ обработки нажатий клавиатуры.
[6] Модификации раскладки
Выше раскладка была приведена в том виде, в котором она в минимальной степени отличается от обычной раскладки (насколько это вообще возможно для раскладки с подобным функционалом). Именно в такую раскладку OPRIQ я рекомендую поугорать всех заинтересовавшихся.
Далее уже описываются такие модификации, которые в первую очередь удовлетворяют мои личные клавиатурные предпочтения, а не добавляют какой-то принципиально важный новый функционал.
Перестановка клавиш T/F и N/J
Поскольку в английском языке буквы T и N встречаются сильно чаще букв F и J (это касается и текста и хоткеев), то я поставил их на домашний ряд:
- T теперь на месте F (и наоборот)
- N теперь на месте J (и наоборот)
Такая модификация называется OPRIQ_TFNJ. На данный момент (и на всех видео из статьи) я печатаю именно на этой модификации раскладки.
Скачать файлы раскладки OPRIQ_TNFJ:
Не могу рекомендовать всем раскладку именно в этой модификации, т.к. эти переназначения клавиш заметно сильнее отличают OPRIQ от QWERTY, чем (как ни странно) все остальные изменения.
Русская раскладка ЖГИЁЖ
При разработке OPRIQ я постоянно переделывал и переучивал русскую раскладку под разное число и расположение клавиш, поэтому когда сформировалась финальная версия OPRIQ — я решил остаться на своей русской раскладке, а не возвращаться на ЙЦУКЕН.
Раскладка названа «🔥🦔» частично по буквам верхнего ряда, частично ради мемности.
В раскладке равномерно распределяется нагрузка между пальцами, плюс минимизировано число ПНОПов.
💡
ПНОПы — последовательные нажатия одним пальцем. В клавиатурном коммунити считается, что большое число ПНОПов является показателем плохо оптимизированной раскладки. Пример вопиющего ПНОПа на раскладке ЙЦУКЕН: в постановке рук ФЫВА ОЛДЖ слово «торг» печатается одним правым указательным пальцем.
Сейчас на ЖГИЁЖе печатаю примерно с той же скоростью, что и на ЙЦУКЕНЕ пару лет назад.
💡
Кстати, КУРЬЁЗ: если запустить Excel при включенной русской раскладке, то хоткей Ctrl+C не работает (видимо, это из-за того, что на месте буквы C находится точка). Никто кроме Excel таких подстав мне не делал (предают только свои 😭). Не особая проблема, ибо надо просто запускать Excel с включенной английской раскладкой, всё.
Скачать установщик раскладки ЖГИЁЖ (раскладка должна использоваться с OPRIQ_TFNJ):
(внутри zip-файла — инсталлятор раскладки)
После установки раскладку надо добавить в систему через настройки языка Windows (Язык → Русский → Параметры → Добавить клавиатуру). В итоге раскладка должна отобразиться в списке клавиатур:
[7] История создания раскладки OPRIQ
Отталкиваясь от моего предыдущего 7-летнего опыта печати на одноруких раскладках, разработка OPRIQ заняла около полутора лет. На самом драматичном этапе разработки левая рука ушаталась настолько сильно (чё-то там воспаление нерва чё-то там), что пришлось посетить руко-врача и потом не прикасаться к клавиатуре пару недель.
Уже 2 года планирую написать об этом статью. Может, однажды, напишу…