Я пытаюсь автоматизировать первоначальную настройку моего macbook, которая включает в себя установку программного обеспечения и изменение конфигурации OS X в соответствии с моими потребностями.
Я попытался обновить ключи-модификаторы по умолчанию, код выглядит следующим образом:
# The apple keyboard id (1452-567-0) should probably be modified in case you use other different model
COMPUTER_UUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -E '(UUID)' | awk '{print $3}' | tr -d \"`
defaults write ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID com.apple.keyboard.modifiermapping.1452-567-0 '( { HIDKeyboardModifierMappingDst = 2; HIDKeyboardModifierMappingSrc = 0; } )'
Кажется, проблема в том, что даже если шаблон был изменен, Системные настройки не ловят обновление, даже не перезагружая компьютер.
Есть ли способ выполнить эту операцию в Snow Leopard?
Благодарю.
macos
command-line
automator
bash
Робот
источник
источник
defaults -currentHost write -g key 'value'
вместо этого. Все еще не работает, хотяОтветы:
Для команды важно
defaults
использовать правильный «идентификатор клавиатуры» в ключе, это выглядит так:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0
Например, внутренняя клавиатура для моего MacBook Air использует:,
com.apple.keyboard.modifiermapping.1452-579-0
а внешняя клавиатура на моем iMac использует:com.apple.keyboard.modifiermapping.1118-219-0
Как получить правильный «идентификатор клавиатуры»? В командной строке вы можете использовать:
чтобы получить список ваших USB-устройств с соответствующими параметрами:
Я предполагаю, что третий параметр (часть "-0") является "счетчиком", если у вас более одной клавиатуры одного типа.
Итак, чтобы отключить клавишу CapsLock на моей внешней клавиатуре, я теперь могу использовать:
И, ради полноты, вот список возможных кодов клавиш для использования ( из Mac OS X Hints ):
Обновление: благодаря Lauri Ranta вот команда, которая работает для клавиатур Bluetooth и USB:
что дает вам немного другой результат:
источник
'{ HIDKeyboardModifierMappingDst = -1; HIDKeyboardModifierMappingSrc = 0; }'
которые вы можете найти на некоторых веб - сайтах, по крайней мере для меня «-1» и «0» в ценностях Dict в затем интерпретируются как строки, а не целых чисел. Это приводит к странному состоянию, когда Preferences отображает измененные клавиши-модификаторы, но на самом деле клавиатура ведет себя не так.ioreg -n IOHIDKeyboard -r
будет также включать Bluetooth-клавиатуры.У меня проблема в том, что каждый раз, когда я подключаю свою клавиатуру, в ioreg она получает другой идентификатор. Все, что мне нужно сделать, это поменять местами команду и ключи от яблока.
Я решил решить эту проблему в моем случае «неправильным путем», используя AppleScript и графический интерфейс системных настроек. Это безобразный хак, но это работает! Ваш пробег может варьироваться.
источник
Мне также не удалось заставить
defaults write
(или обновить файлы .plist) повлиять на мои настройки HIDKeyboardModifierMappingSrc и HIDKeyboardModifierMappingDst в Snow Leopard .Я пытаюсь «предварительно заполнить» мою учетную запись «Гость» для поддержки клавиатуры PS2-USB (на которой, по-видимому, поменялись местами «Option» и «Command»). Другие предложения страниц «выйти из системы и снова войти в нее» не помогают; «Выход» из учетной записи гостя удаляет все мои изменения.
(Я уже успешно обновил свой «com.apple.dock» и файлы Plist «com.apple.menuextra.clock» , чтобы настроить док - станцию и 24-часовой, соответственно, что делает его еще более расстраивает , что клавиатура Модификаторы выиграл» т работа ...)
Я попытался использовать «dtruss -asf», чтобы сравнить, что делает «System Preferences.app» (что, по-видимому, работает) с тем, что делает «по умолчанию». Ближайшее, что я могу понять, я вижу сообщения следующего содержания:
Если бы кто-нибудь нашел решение, которое работает под Snow Leopard, я был бы рад услышать это ...
источник
diff
чтобы убедиться, что вы создаете этот файл именно так, как это сделал бы пользовательский интерфейс?fs_usage
или,lsof
чтобы узнать, что еще делается при использовании пользовательского интерфейса.источник
fs_usage
ничего интересного AFAICT не показывает, и я проверил (с моей измененной командой в комментарии к вопросу), что результат отображается так, как и следовало ожидать.