Я пытался понять это в течение длительного времени. У меня довольно типичный скрипт для Mac OS:
https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1
Я хотел бы изменить ярлыки управления миссией на Ctrl+ Alt+ ...вместо Ctrl+ .... Например, по умолчанию: Ctrl+ Upдля активации управления полетом. Я хотел бы изменить это на Ctrl+ Alt+ Up, потому что текущий ярлык конфликтует с другими программами, которые я использую.
Обратите внимание, что я уже знаю, как это сделать System Preferences > Keyboard > Shortcuts
, я ищу решение для командной строки, которое можно использовать в сценариях.
РЕДАКТИРОВАТЬ: Благодаря @ user3439894 я прошел и сделал скрипт, чтобы изменить все списки ключей на то, что я хочу, чтобы они были. Единственная проблема, это не работает. :-(
Вот что у меня так далеко:
#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys
источник
type = standard;
должна на самом делеtype = 'standard';
отметить кавычки'standard'
. Тем не менее, иногда даже при правильно сформированной командной строке изменение просто не вступает в силу, даже с; killall -u $USER cfprefsd
добавлением в конецdefaults
команды . Кроме того, полный путь к.plist
файлу в этом случае использования не требуется, а просто, например,defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...
и остальная часть команды - это все, что необходимо.Ответы:
Это не прямой ответ, хотя я надеюсь, что приведенная здесь информация поможет вам получить прямой ответ.
Я могу рассказать, какие изменения в каком файле происходит при изменении сочетания клавиш по умолчанию для управления полетом с Control-Up Arrow на Control-Option-Up Arrow. Это «номер элемента 2» массива «параметров» в словаре «значения» словаря «32» и словаря «34» словаря «AppleSymbolicHotKeys» в
/Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist
файле.Вот
defaults read
представлениеcom.apple.symbolichotkeys.plist
структуры файла, поскольку оно относится к изменениям, сделанным при определенных выше обстоятельствах.Управление полетом со стандартной стрелкой Control-Up
Управление полетом изменено на Control-Option-Up Arrow
В разделе ошибок на
defaults
странице руководства написано:И это прекрасный пример, поскольку это будет очень сложная командная строка, используемая
defaults
для записи целевых значений в целевые элементы массива, если это даже выполнимо. Просто к сведению ... Если вы собираетесь попытаться выполнитьdefaults write com.apple.symbolichotkeys ...
команду, сначала убедитесь, что вы создали резервную копию целевого файла.Другой вариант - использовать AppleScript для изменения настроек с помощью навигации по системным настройкам, что также будет немного сложнее по сравнению с установкой объекта верхнего уровня, который здесь не является целью. Я даже не уверен, что это выполнимо, однако, если бы мне нужен был автоматизированный способ, я бы понял это, однако у меня нет времени, чтобы выяснить какой-либо метод, извините.
По крайней мере, теперь вы знаете, что изменится, где и откуда вы сможете выяснить это самостоятельно или получить дополнительную помощь, узнав об этом немного больше.
Вот подрезанное изображение в Xcode
com.apple.symbolichotkeys.plist
файла.Кстати, я отследил изменения, используя стороннюю утилиту, которая регистрировала изменения файловой системы, а затем преобразовала эту информацию в более читабельный вывод, чтобы предоставить эту информацию.
источник
filemon
это была часть Дополнений из книги «Внутренние компоненты Mac OS X - в ядро Apple» в форме исходного кода,filemon.c
который я скомпилировал в исполняемый файл моей системы. Затем я сравнил различия в текущем состоянии измененного файла с файлом из резервной копии Time Machine, сделанной непосредственно перед изменениями. Вы также можете использовать встроенную команду fs_usage .Это моя рекомендация: используйте такую утилиту, как Karabiner, чтобы выполнить такую настройку.
Как разработчик, я хочу сказать, что лично я нахожу это увлекательной и мучительной проблемой, и она действительно демонстрирует уродливую, темную сторону macOS, скрывающуюся за кулисами, которую по-настоящему могут оценить только разработчики программного обеспечения и хакеры ...
Проблема достаточно проста: я просто хочу переназначить комбинацию клавиш по умолчанию на мою собственную привязку.
С какой стати это так сложно / сложно? Я намерен выяснить и опубликовать решение ... Оставайтесь с нами.
источник