Схема переназначения клавиш для macOS, ориентированная на повышение продуктивности (ещё одна).
Идея основана на проекте CapsLock Enhancement от Vonng, но с одним важным отличием:
навигация в стиле WASD, вместо стиля Vim.
Для тех, кто больше привык к клавишам-стрелкам или управлению в шутерах ᗜωᗜ
Этот проект заточен под мои текущие рабочие задачи и не ставит перед собой цель охватить все возможные сценарии использования, однако он легко поддаётся модификации, если вам понравится общая идея.
Клавиша Capslock
превращается в новый модификатор – Hyper *
, который позволяет делать много всего,
не отрывая рук от основного ряда клавиатуры:
-
Быстрая навигация и редактирование текста
-
Удаление слов и строк одним нажатием
-
Навигация в macOS: рабочие столы, приложения и вкладки
-
Запуск и переключение между приложениями
-
Управление мышью с клавиатуры
-
... и прочие полезные в работе улучшения
Развернуть
-
macOS
-
Установите Karabiner-Elements:
brew install --cask karabiner-elements
-
Скачайте файл конфигурации и позвольте Karabiner его загрузить;
-
Включите HyperIJKL в Karabiner-Elements:
Karabiner-Elements → Complex Modifications → Add rule → Enable all
-
Наслаждайтесь!
Некоторые второстепенные функции HyperIJKL требуют для своей работы дополнительных шагов установки (отмечены в разделе Описание). См. инструкцию в Расширенная установка.
Зажмите Capslock
, чтобы активировать режим Hyper *
.
Одиночное нажатие Capslock
соответствует нажатию esc
.
Нажмите Capslock + esc
, чтобы переключить режим Capslock.
* |
⌥ |
⇧ |
⌘ |
␣ |
---|---|---|---|---|
Hyper | option | shift | command | пробел |
клавиша / слой | * |
* ⌘ |
* ⌥ |
* ⌥ ⌘ |
---|---|---|---|---|
i |
вверх | выделить строку сверху | параграф вверх* | выделить параграф сверху* |
j |
влево | выделить символ слева | слово влево | выделить слово слева |
k |
вниз | выделить строку снизу | параграф вниз* | выделить параграф снизу* |
l |
вправо | выделить символ справа | слово вправо | выделить слово справа |
u |
home | home с выделением | в начало строки | выделить строку, курсор в начало |
o |
end | end с выделением | в конец строки | выделить строку, курсор в конец |
y |
page up | выделить предыдущую страницу | в начало документа* | выделить до начала документа* |
h |
page down | выделить следующую страницу | в конец документа* | выделить до конца документа* |
n |
удалить слева (backspace) | удалить строку слева | удалить слово слева | - |
m |
удалить текущую строку | выделить текущую строку | переместить строку вниз | - |
, |
удалить текущее слово* | выделить текущую строку* | переместить строку вверх | - |
. |
удалить справа (delete) | удалить строку справа | удалить слово справа | - |
[ |
( | отменить (undo) | - | - |
] |
) | повторить (redo) | - | - |
esc |
capslock | - | - | - |
* требуется дополнительная настройка. См. Расширенная установка.
Осуществляйте навигацию в macOS: рабочие столы, окна, вкладки, Mission Control и Launchpad.
клавиша / слой | * ⇧ |
---|---|
i |
Mission Control |
j |
Launchpad |
k |
предыдущая вкладка |
l |
следующая вкладка |
u |
предыдущий рабочий стол |
o |
следующий рабочий стол |
y |
на весь экран |
h |
свернуть текущее окно |
Управляйте указателем, кнопками и колёсами мыши с помощью клавиатуры.
клавиша / слой | * ⇧ |
* ⌥ ⇧ |
---|---|---|
i |
указатель вверх | колесо вверх |
j |
указатель влево | колесо влево |
k |
указатель вниз | колесо вниз |
l |
указатель вправо | колесо вправо |
u |
левая кнопка мыши | левая кнопка мыши |
o |
правая кнопка мыши | правая кнопка мыши |
h |
средняя кнопка мыши | средняя кнопка мыши |
Сочетания клавиш в этом разделе дублируют некоторые сочетания из Навигации в ОС, но для левой руки. С их помощью можно управлять окнами и рабочими столами, держа мышь в правой руке.
клавиша / слой | * |
* ⌘ |
---|---|---|
w |
следующая вкладка | предыдущая вкладка |
s |
следующий рабочий стол | предыдущий рабочий стол |
x |
вперёд | - |
z |
назад | - |
Запускайте приложения или переключайтесь на уже запущенное приложение.
* §
одним нажатием запускает несколько приложений, настроенных в hyperijkl.yml
.
Клавиша §
расположена над клавишей tab
на клавиатурах типа ISO (европейские), замените её на клавишу `
,
чтобы получить похожий результат на клавиатурах типа ANSI (американские) (см. Модификация HyperIJKL).
клавиша / слой | * |
* ⌘ |
* ⌥ |
---|---|---|---|
e |
Outlook | Заметки | Thunderbird |
r |
IDEA | VSCode | DBeaver |
t |
iTerm | Мониторинг системы | Системные настройки |
d |
Postman | Docker | Lens |
f |
Finder | Forklift | Просмотр |
g |
KeepassXC | Spotify | IINA |
c |
Telegram | Rocket.Chat | Signal |
v |
Zoom | Microsoft Teams | Skype |
b |
Chrome | Firefox | Safari |
§ |
Запуск рабочего окружения | - | - |
Нажмите * 1
, чтобы центрировать указатель мыши на Мониторе 1. Сочетание клавиш работает с цифрами от 1 до 4.
клавиша / слой | * |
---|---|
1 |
монитор 1 |
2 |
монитор 2 |
3 |
монитор 3 |
4 |
монитор 4 |
клавиша / слой | * |
* ⌘ |
---|---|---|
; |
EN | - |
p |
источник ввода 2 | - |
/ |
источник ввода 3 | - |
␣ |
предыдущий источник ввода | следующий источник ввода в меню |
Нажмите * ;
, чтобы выбрать источник ввода EN.
* p
– выбрать второй источник ввода.
* /
– выбрать третий источник ввода.
* ␣
– выбрать предыдущий источник ввода (аналогично сочетанию клавиш ⌥ ␣
в macOS).
* ⌘ ␣
– выбрать следующий источник ввода в меню ввода
(обходит весь список источников ввода аналогично сочетанию клавиш ⌥ ⌘ ␣
).
Для работы переключателей источников ввода 2 и 3 может потребоваться дополнительная настройка.
Настройка производится заменой предустановленных кодов источников ввода на требуемые в файле hyperijkl.yml
.
Также требуемые источники ввода должны быть настроены в macOS.
Переустановите скрипт после внесения изменений (см. Модификация HyperIJKL) и проверьте,
работают ли сочетания LANG2 и LANG3.
* требуется дополнительная настройка. См. Расширенная установка.
Сочетания клавиш HyperIJKL могут работать на экране логина.
-
Перейдите в:
Karabiner-Elements → Misc
-
Нажмите
Copy the current configuration to the system default configuration
. Потребуется ввести пароль администратора.
Вы можете модифицировать сочетания клавиш HyperIJKL следующим образом:
-
Откройте файл HyperIJKL/mac/hyperijkl.yml;
-
Отредактируйте назначения клавиш (для справки см. Документация Karabiner);
-
Выполните команду в директории
mac
:make all
-
Перейдите в:
Karabiner-Elements → Complex Modifications
-
Удалите все старые правила HyperIJKL;
-
Нажмите:
Add rule → Enable all
под списком только что добавленных правил.
Расширенная установка HyperIJKL позволяет использовать некоторые дополнительные сочетания клавиш, но требует более сложной первоначальной настройки, которая включает в себя модификацию сочетаний клавиш macOS и IntelliJ IDEA.
-
Установите Karabiner-Elements:
brew install --cask karabiner-elements
-
Клонируйте репозиторий HyperIJKL:
git clone https://github.com/RomanYuldashev/HyperIJKL.git
-
Выполните установочный скрипт в директории
mac
проекта:make all
Этот шаг автоматически настраивает файл
DefaultKeyBindings.dict
в macOS. Подробнее см. Настройка DefaultKeyBindings.dict -
Включите HyperIJKL в Karabiner-Elements:
Karabiner-Elements → Complex Modifications → Add rule → Enable all
-
Настройте дополнительные сочетания клавиш в IDEA (см. Настройка дополнительных сочетаний клавиш в IDEA).
HyperIJKL требует модификации системного файла macOS DefaultKeyBindings.dict для работы сочетаний клавиш из расширенного списка. Если вы ранее не настраивали кастомные сочетания клавиш macOS — отлично! В ином случае вам потребуется вручную слить имеющиеся настройки и настройки HyperIJKL в один файл. Скрипт расширенной установки HyperIJKL выведет предупреждение, если обнаружит конфликт с имеющимися настройками.
HyperIJKL utilizes a couple of text navigation actions that are supported by macOS but are rarely recognized by apps. To enable these actions in IntelliJ IDEA you will have to add shortcuts for them either through in-app Settings or by directly modifying configuration files.
HyperIJKL позволяет использовать некоторые приёмы текстовой навигации, которые поддерживаются macOS, но редко распознаются сторонними приложениями. Чтобы включить эти сочетания клавиш в IntelliJ IDEA вам потребуется настроить их либо через панель Settings, либо напрямую – через редактирование файлов конфигурации.
-
Перейдите в директорию, содержащую файлы конфигурации IDEA (конкретное название директории зависит от установленной версии приложения):
cd ~/Library/Application\ Support/JetBrains/[IntelliJIdea]
-
Если директория
[IdeaConfigBasePath]/keymaps
не существует, скопируйте её из директорииmac/idea
проекта HyperIJKL и вставьте сюда;Иначе перейдите в
keymaps
, откройтеmacOS.xml
текстовым редактором и вставьте в него все блоки<action>
из файлаmac/idea/keymaps/macOS.xml
проекта HyperIJKL; -
Перейдите в
[IdeaConfigBasePath]/options/mac
и откройтеkeymap.xml
. Убедитесь, что имяactive_keymap
соответствует файлу .xml в директорииkeymaps
:<active_keymap name="macOS" />
-
Перезапустите IDEA;
-
Проверьте, что настроенные сочетания клавиш работают в IDEA:
* ⌥ i
→ перейти в начало параграфа* ⌥ ⌘ i
→ выделить предыдущий параграф* ⌥ k
→ перейти в коней параграфа* ⌥ ⌘ k
→ выделить следующий параграф
-
Выполните предыдущие шаги расширенной установки HyperIJKL;
-
Откройте IntelliJ IDEA;
-
Перейдите в:
Settings → Keymap → Find
-
Добавьте следующие сочетания клавиш:
Move Caret Backward a Paragraph →
* ⌥ i
Move Caret Backward a Paragraph with Selection →
* ⌥ ⌘ i
Move Caret Forward a Paragraph →
* ⌥ k
Move Caret Forward a Paragraph with Selection →
* ⌥ ⌘ k
Author:Roman Yuldashev (RomanYuldashev@proton.me)
License: Apache 2.0 License
ᗜˬᗜ