Заміна розташування кнопок на клавіатурі в MacOS
Макбук з європейською клавіатурою відрізняється від американської розташуванням деяких клавіш.
І якщо форма клавіші "Enter" та розташування "Backslash" мене якось не зачіпають, то знак ~
для мене особисто одна з найчастіше використовуваних клавіш. І через те що вона розташована внизу замість гори мені доводиться викручувати собі пальці кожного разу. Тож я знайшов спосіб як повернути її на своє нормальне місце.
Є така вбудована утиліта hidutil
За допомогою однієї єдиної команди можно перевизначити розташування клавіш.
1hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000064},{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035}]}'
Це перемикає клавішу з кодом 0x700000035
з клавішею з кодом 0x700000064
.
Від ребута до ребута
Але, після перезавантаження операційки потрібно виконувати цю команду щоразу. Тож, маємо щось із цим робити.
Створюємо файл ~/Library/LaunchAgents/local.hidutilKeyMapping.plist
з наступним змістом:
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4<dict>
5 <key>Label</key>
6 <string>local.hidutilKeyMapping</string>
7 <key>ProgramArguments</key>
8 <array>
9 <string>/usr/bin/hidutil</string>
10 <string>property</string>
11 <string>--set</string>
12 <string>{
13 "UserKeyMapping": [
14 {
15 "HIDKeyboardModifierMappingSrc":0x700000035,
16 "HIDKeyboardModifierMappingDst":0x700000064
17 },
18 {
19 "HIDKeyboardModifierMappingSrc":0x700000064,
20 "HIDKeyboardModifierMappingDst":0x700000035
21 }
22 ]
23 }</string>
24 </array>
25 <key>RunAtLoad</key>
26 <true/>
27</dict>
28</plist>
Далі потрібно завантажити цей файл та запустити сервіс
1launchctl load ~/Library/LaunchAgents/local.hidutilKeyMapping.plist
2launchctl start local.hidutilKeyMapping
Update at 2023-12-12
Оновився сьогодні до MacOS версії Sonoma 14.2 і всьо... Ворекераунд більше не працює. Наразі рішення не маю. Додано лінки про все що знайшов по темі, щоб слідкувати.
Update at 2024-01-23
Оновився до Sonoma 14.3, після чого виконав hidutil property --set ...
із sudo привілеями і, о чудо, кнопки свапнулися. Залишається порішати чого воно при завантаженні системи не спрацювало.
Update at 2024-02-19
1sudo mv ~/Library/LaunchAgents/local.KeyRemapping.plist /Library/LaunchDaemons/
2sudo chown root:wheel /Library/LaunchDaemons/local.KeyRemapping.plist
3sudo launchctl load /Library/LaunchDaemons/local.KeyRemapping.plist
Порішало проблєму 👆
Джерела
- https://rakhesh.com/mac/using-hidutil-to-map-macos-keyboard-keys/
- https://github.com/amarsyla/hidutil-key-remapping-generator
- https://hidutil-generator.netlify.app/
- https://www.reddit.com/r/MacOS/comments/18g4vxn/cannot_remap_keys_on_macbook_pro_with_hidutils_in/
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html
- https://www.usb.org/sites/default/files/hut1_4.pdf