5

Я пытаюсь написать скрипт, который будет копировать мои настройки OS X. В частности, я хочу переназначить клавиши со стрелками на CMD + H, J, K, L.

Техника, похоже, похожа на это решение Linux, за исключением того, что файл ключа для изменения находится в /usr/X11/share/X11/xkb/symbols/us . Это не совсем работает, как ожидалось, и, кажется, отображает ключ опции.

Как я могу переназначить ключи через командную строку в OS X?

2 ответа2

3

Сочетания клавиш для конкретного приложения, такие как системные настройки, хранятся в файлах настроек соответствующего приложения в /Users/username/Library/Preferences/ , в ключе NSUserKeyEquivalents верхнего уровня.

Эти файлы могут быть прочитаны и записаны с использованием /usr/libexec/PlistBuddy и программ по defaults в командной строке.

$ defaults read com.apple.Automator NSUserKeyEquivalents
{
    "Hide Library" = "@$l";
    "Show Library" = "@$l";
}
$ defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "About Terminal" '^@$a'

Символы и их значения:

  • @ является Командой
  • $ это сдвиг
  • ^ Управление
  • ~ Является вариант

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

0

Используя KeyRemap4MacBook, вы можете сохранить это как private.xml:

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>private.test</identifier>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

Уходя | ModifierFlag::NONE также изменится, например, ⌥⌘H на ←.

См. Источник для констант кода ключа и предопределенных настроек.

Если вы хотите полностью автоматизировать настройку, вы можете включить параметр с помощью /Library/org.pqrs/KeyRemap4MacBook/app/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli enable private.test .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .