
Экспериментировать с клавиатурами я начал с... очень сильной боли в мизинцах. Дело в том, что
печатать
я учился сам в далеком 2008 году. Естественно, я не знал ни про какие методы десятипалой печати, а
тем более про кастомные раскладки клавиатур. Начал печатать 2 указательными пальцами, со временем
подключал остальные для ускорения печати, пока не дошел до всех 6 пальцев... Нет, у меня 10 пальцев,
просто безымянный[^a] и мизинец никак не получалось приспособить.

![как я печатал: мизинец и безымянный подогнуты](fingers.svg "ChatGPT любезно проиллюстрировал то,
как я печатаю")[^b]

Эту привычку шестипалой печати я пронес спустя года, пока не поступил в вуз, где количество
набиваемых текстов не улетело в космос. Тут-то у меня и начались боли в пальцах. Печатая, я подгибал
мизинцы, из-за чего они 99% времени были в согнутом состоянии. Понятно, что с этим надо было что-то
делать, тогда я и попробовал переучиться на полноценную десятипалую печать.

## qwerty → colemak

Открыл какой-то учебник, начал пытаться набивать тексты на qwerty по всем правилам, но мышечная
память оказалась сильнее моих желаний. Раскладка клавиатуры вообще никак не располагала к удобному
набору текстов всеми десятью пальцами.

Тогда ко мне пришла интересная мысль: «Раз уж я учусь печатать с 0, почему бы не попробовать другую
раскладку?» Погуглил, оказалось, что самая популярная раскладка - dvorak, но она переделывает всю
клавиатуру, и все хоткеи съезжают в непонятные места. Поэтому выбор пал на colemak - меньше
изменений в раскладке, бо́льшая часть хоткеев на прежних местах.

Снова открыл какой-то учебник и начал пытаться печатать. Всего 8 клавишами на среднем ряду я уже мог
писать несложные английские слова, в отличие от qwerty. Это меня очень порадовало и вдохновило, за
пару вечеров я выучил всю раскладку и начал потихоньку тренироваться в реальной жизни.

Спустя 2 месяца я восстановил прежнюю скорость печати, у меня прекратились боли в мизинцах, а печать
начала доставлять какое-то удовольствие: «Ух ты, я сейчас написал целое предложение, вообще не
сдвигая пальцы с домашнего ряда».

Как итог, я больше не могу пользоваться чужими компьютерами с qwerty-клавиатурой, не могу печатать
не 10 пальцами[^c] или 1 рукой. Но я вообще всем доволен, и желаний возвращаться на qwerty нет.

Естественно, я не рекомендую переходить на colemak просто так. Ваша скорость печати не возрастет, а
первые месяцы, наоборот, упадет до 0. Вы не начнете лучше писать на английском, вы не начнете лучше
программировать. Зато рекомендую попробовать следующие мои эксперименты.

## Левый ⌘, правый ⌘

Следующий мой эксперимент начался с какого-то поста на каком-то форуме. Человек упоминал, что
использует клавиши ctrl для переключения раскладок.

Звучит очень просто и очень удобно. Все ведь сталкивались с тем, что начинали печатать на русском
английскими буквами? Вот этот механизм решает эту проблему.

> Левый ⌘ - английский язык, правый ⌘ - русский.

Язык выбирается одиночным нажатием ⌘, а сочетания с ним работают как обычно.

На macOS это настраивается довольно просто через [karabiner](https://karabiner-elements.pqrs.org/):

Фрагмент правила для левого ⌘:

```json
"from": { "key_code": "left_command" },
"to": [{ "key_code": "left_command" }],
"to_if_alone": [
  {
    "select_input_source": {
      "input_source_id": "^com.apple.keylayout.Colemak$"
    }
  }
]
```

[Полная конфигурация Karabiner](command-language.json).

Вы даже не представляете, насколько это удобно - чувствовать руками, какая конкретно сейчас включена
раскладка. Плюс для работы с colemak это оказалось крайне удобно из-за смещенных хоткеев. Перед
активацией любых горячих клавиш я быстро жму два раза на cmd и не парюсь, что ⌘+s на английской и
русской клавиатурах делают разное.

## Типографическая раскладка

Еще одна моя слабость - типографика. Мне нравится правильно оформленный текст, всякие стрелочки и
яблочки . Для набора таких символов есть «[типографическая раскладка Ильи Бирмана
](https://ilyabirman.ru/typography-layout/)».

![Типографическая раскладка Бирмана](birman.png "типографическая раскладка Ильи Бирмана")

Именно через эту раскладку я набираю все кавычки и длинные тире, а не через gpt!

Но есть одна проблема - она прибита гвоздями к qwerty-клавиатуре, а, как вы понимаете, мне такое не
подходит. Поэтому пришлось сделать форк[^1] этой раскладки чисто со слоем символов, без букв. Если
вы установите эту раскладку в систему и попробуете что-то печатать, будут получаться только
спецсимволы.

Дело в том, что ее нужно использовать только как служебный слой, активируемый через какую-то
клавишу. Я выбрал клавишу `правый ⌥`. Настраивается это также «просто» через karabiner:

Фрагмент правила для правого ⌥, на примере Colemak:

```json
"from": { "key_code": "right_option" },
"to": [
  {
    "select_input_source": {
      "input_source_id": "org.unknown.keylayout.simplebirman"
    }
  }
],
"to_after_key_up": [
  {
    "select_input_source": {
      "input_source_id": "com.apple.keylayout.Colemak"
    }
  }
]
```

[Полная конфигурация Karabiner](birman-layer.json).

«Просто», естественно, в кавычках. Этот конфиг запоминает, какая была активирована раскладка перед
зажатием ⌥ и возвращает ее после отпускания.[^keyboard-layers]

## Raycast

«Погоди, Антон, но это ведь совсем не про клавиатуру», - заметите вы; «А вот и про клавиатуру», -
отвечу я. Raycast - шедевральная программа для mac, ей оды можно петь бесконечно, но сегодня речь
пройдет про хоткеи.

Данная программка позволяет настроить горячие клавиши для выполнения любых действий, которые она
сама умеет делать. Это тоже оказалось настолько удобно, что я решил рассказать и вам.

Вот часть моих горячих клавиш, которыми я пользуюсь постоянно:

- `⌥ ↩` - открыть терминал;
- `⌥ p` - выбор проекта в IDE;
- `⌥ ⇧ o` - obsidian;
- `⌥ ⇧ t` - telegram;
- `⌥ ⇧ m` - mail.

Обращаю внимание на первые 2 пункта. Это ОЧЕНЬ удобно и рекомендую попробовать настроить нечто
подобное.

## Другие похождения с клавиатурами

### Сплиты

Я пробовал сплиты. Все их пробовали. Выглядят они очень *по-хакерски*. Но что-то вообще не зашло.
Возможно, из-за того, что для них нужна полная десятипалая печать на всех раскладках, а я умею
только на английском. Или, возможно, из-за того, что у меня был плохонький Б/У сплит с avito.

### Diktor

Альтернативная раскладка вместо йцукен. Пытался научиться, но тоже не пошло. Может, из-за того, что
меня стандартная устраивает, может, из-за того, что нормальных тренажеров не было.

### Еще больше karabiner

Когда я понял, что через karabiner на маке можно вертеть клавиатурой, как хочется, я принялся
«оптимизировать» свой способ печати. Началось с простого: поменял `;` и `:` местами. Идея довольно
понятная, ведь я большую часть времени писал на python, а там точка с запятой практически не
используется. Мелочь, а удобно. Потом перешел на golang, и стало как-то неудобно.

После я попробовал поменять слой цифр `123…` и спецсимволов `!@#…` местами. Тоже идея довольно
понятная - в программировании цифры мы набираем реже, чем символы. Но оказалось не очень удобно для
набора пин-кодов и хоткеев в jetbrains IDE. Сюда же отнесем попытки замены `-` на `_`, `"` на `'`.

Еще пытался улучшить стрелки, перенести их на ⌥ + jikl. Настроил и так ни разу и не воспользовался.

## Резкое окончание статьи

Не придумал, что еще можно рассказать, так что на этом подведем итоги.

Клавиатуры хоть и очень привычный инструмент, но далеки от идеалов. Если вам комфортно открывать
мышкой программы и жмать по qwerty, я вам завидую.

Если же что-то вызывает неудобство, я вам показал инструменты, которыми это можно исправить.

[^a]: Забавно, что палец называется «безымянным», хотя у него есть имя, получается, он должен быть
«имянным».
[^b]: Знали бы, как я намучился с этими вашими ИИ, до сих пор пальцы с трудом рисуют...
[^c]: Бойтесь своих желаний. Хотел научиться печатать 10 пальцами - получай.
[^keyboard-layers]: ![Одиночный левый ⌘ выбирает Colemak, правый ⌘ - русский. Удержание правого ⌥
включает типографические символы, отпускание возвращает предыдущую раскладку.](keyboard-layers.svg)

[^1]: https://github.com/w0rng/simple-birman-layout