, последнее обновление:

Ремап Caps Lock без сторонних средств

Предисловие

Так исторически сложилось, что для переключения между раскладками я использую Caps Lock. Началось это с моего активного использования Linux на рабочедомашних компьютерах и ноутбуках, в итоге привык и считаю это самым удобным способом переключения раскладки.

Но недавно ко мне приехал rMBP Late 2013 15”, ось которого из коробки этого не умеет. На помощь пришел Karabiner-Elements, который со своей задачей успешно справлялся до недавнего времени.

В связи с тем, что я подключил-таки к макбуку внешний монитор и клавиатуру, жена начала ругаться на меня. И было за что - клавиатура шумела очень сильно и будила ребенка. Ребенок не высыпается, плачет, у жены дергается глаз. Было принято решение купить какую-нибудь компактную и бесшумную по максимуму клавиатуру. Выбор пал на Logitech K380.

Клавиатура всем хороша - можно подключить к трем девайсам, блюпуп (+1 свободный USB порт!), довольно тяжелая (с места просто так не сдвинешь) и компактная (раза в 2-2,5 меньше, чем мой Razer Deathstalker). Но тут выяснилась проблема - если использовать драйвера от производителя для ремапа Fx как Fx, а не всякое дерьмо вроде управления плеером, Karabiner-Elements просто ломает все к чертям. Попытки подружить-таки KE и дрова с оффсайта успехом не увенчались и KE был успешно удален.

А теперь к самому вкусному.

Ремапим Caps Lock на F19 встроенными средствами

В macOS есть встроенные средства для ремапа клавиш, чем я успешно и воспользовался. Команда получилась такая:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000006e}]}'

После чего добавляем ее исполнение в crontab:

@reboot hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000006e}]}'

И перенастраиваем переключение источника ввода в настройках клавиатуры в параметрах системы. Все! Без лишнего стороннего софта и хаков.

Данный метод также работает во всех новых версиях (High Sierra, Mojave, Catalina).