Техническое примечание Apple TN2450 описывает, как переназначить ключи. Выполнение следующей команды переназначит Right Alt на Right Control.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Обратите внимание, что вышеприведенная команда не переключает правый Alt и правый контроль. Они оба будут правы. Если у вас есть MacBook, вы не заметите этого, пока не подключите внешнюю клавиатуру. Если вы хотите переключить Right Alt и Right Control, вам нужно добавить вторую команду переключения, как показано ниже.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e4,
"HIDKeyboardModifierMappingDst":0x7000000e6},
{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Таблица в нижней части Технической ноты содержит список шестнадцатеричных значений для каждого ключа. Чтобы обобщить приведенный выше ответ для переключения любых клавиш, вы должны or
указать шестнадцатеричное значение из этого списка вместе с 0x700000000
. Следующий код Python демонстрирует один из способов сделать это.
In [1]: def convert(val):
...: int_val = int(val, 16)
...: int_ref = 0x700000000
...:
...: return hex(int_ref | int_val)
...:
In [2]: r_alt = '0xE6'
In [3]: print(convert(r_alt))
0x7000000e6
Src
иDst
.\
в моей клавиатуре - это то,Shift+Option+7
что я хотел бы заменить на что-то более простое, например,Option+.
которое я почти не использую. Как мне это сделать? Спасибо за вашу помощь.Более общий и удобный подход заключается в использовании Karabiner-Elements , который является версией Karabiner, которая работает на Sierra.
источник
Это дополнение к ответу Стивена С. Хауэлла.
У меня новый MacBook Pro со скандинавской клавиатурой. У этой новой модели больше нет клавиши Esc, что является для меня серьезным препятствием.
Я обнаружил, что следующее будет переводить клавишу § (верхний левый, левый от клавиши 1 и выше клавишу табуляции), которую я не думаю, что когда-либо раньше использовал для создания Esc.
В документации Apple (ссылка на которую содержится в ответе Стивена) это обозначено как «Клавиатура за пределами США \ и |» (0x64).
Некоторые из «не-американских» клавиш трудно обнаружить, потому что они обычно относятся к клавишам с другой меткой на клавиатуре, которую вы используете. (Я также обнаружил, что «Серьезный акцент и тильда» относится к клавише между левым смещением и z, которая генерируется на моей клавиатуре
<
. Я не смог определить, какая клавиша соответствует «Не США»#
и~
«не экспериментировал дальше, как только обнаружил»). мой ключ.) Если вы хотите поэкспериментировать, попробуйте запустить скрипт в терминале, пока не найдете нужный ключ:Это зацикливает ключевые коды и меняет их по одному, в надежде, что вы сможете методом проб и ошибок найти ключ, который вам не особенно полезен. Попробуйте набрать что-нибудь, когда вас попросят - если вы получили
g
то, что ожидали, вы нашли правильный код клавиши. (Измените0x70000000a
на что-нибудь другое, еслиg
вам неудобно. Возможно, вы хотите переназначитьg
клавишу?) Когда вы закончите печатать, просто нажмите Enter, чтобы перейти к следующей клавише.Что бы это ни стоило, последняя команда внутри цикла - это то, как вы сбрасываете все
UserKeyMapping
настройки:Когда вы изначально запускаете,
hidutil property --get UserKeyMapping
он производитно кажется, что вы не можете передать это значение, чтобы убрать настройку (или, скорее, он принимает, но игнорирует этот ввод).
(Если вы не знакомы с Терминалом, просто скопируйте / вставьте его,
for
покаdone
не появитсяbash$
подсказка или аналогичная информация.)Согласно этому связанному вопросу переполнения стека, вы можете поместить команду в файл сценария в вашем домашнем каталоге и добавить ее в свою
launchd
конфигурацию, чтобы сделать это изменение постоянным.Если некоторым читателям неудобно делать это самостоятельно, вот быстрый скрипт, который сделает это за вас. Опять же, просто скопируйте / вставьте это в окне терминала.
Очевидно, что если у вас появился какой-то другой ключ, который
0x700000064
вам не нужно менять в скрипте или в файле,"$HOME"/bin/userkeymapping
он будет создан, если вы уже запустили вышеописанное.источник
LoginHook
но он не работал для меня, и, основываясь на stackoverflow.com/a/22872222/874188, я переключился наlaunchd
подход.Если все, что вы хотите сделать, это переназначить один ключ
Пример: как переназначить Escape Key на Mac
Перейдите в меню Apple и выберите «Системные настройки», затем перейдите на панель настроек «Клавиатура» и выберите вкладку «Клавиатура».
Нажмите кнопку «Ключи модификатора» в правом нижнем углу
ссылка
источник
В случае, если вы хотите восстановить значения по умолчанию:
источник