Могу ли я сделать пользовательскую раскладку клавиатуры (та, которая не была включена в OS X по умолчанию) системой по умолчанию — даже для экрана входа в систему?
Это работает на OSX 10.9 Mavericks с раскладкой клавиатуры, которую я создал с помощью укулеле. Предполагая, что в вашей системе уже установлена раскладка, войдите в свою учетную запись и активируйте свою пользовательскую раскладку клавиатуры.
Откройте терминал и выполните следующую команду:
cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/
Если вы собираетесь использовать текстовый редактор (например, TextWrangler) для внесения этого изменения вместо XCode (у которого есть специализированный графический редактор plist), также запустите :
plutil -convert xml1 /tmp/com.apple.HIToolbox.plist
Теперь откройте /tmp/com.apple.HIToolbox.plist
в текстовом редакторе или в XCode.
В файле вы найдете несколько упоминаний KeyboardLayout ID
ключа, за которым следует целое число и KeyboardLayout Name
строка. Измените эти строки на имя вашей пользовательской раскладки клавиатуры, а целые числа id — на идентификатор вашей раскладки (самый простой способ найти правильные значения — сравнить с вашими пользовательскими настройками, найденными в файле ~/Library/Preferences/com.apple.HIToolbox.plist
.
Также значение ключа AppleCurrentKeyboardLayoutInputSourceID
должно быть соответствующим образом изменено (возможно, на что-то вроде org.unknown.keylayout.NameOfYourLayout
). Опять же, вы можете найти это значение в вашем локальном файле настроек.
После внесения этих изменений сохраните файл и вернитесь в терминал. Чтобы не рисковать, вы можете создать копию исходного com.apple.HIToolbox.plist
файла на тот случай, если вы допустили ошибку и вам нужно откатиться. Например, чтобы сохранить копию в папке « Документы »:
sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents
Затем установите ваше изменение со следующим:
sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'
(Нет необходимости преобразовывать ваш файл обратно из текстовой формы с помощью plutil
, если вы сделали это ранее.)
Выйдите из терминала и перезагрузите компьютер (выход из системы недостаточен: файл не будет перечитан). После перезапуска у вас должна появиться раскладка клавиатуры на экране входа в систему.
ПРИМЕЧАНИЕ: возможно, было бы достаточно скопировать файл com.apple.HIToolbox.plist
из ~/Library/Preferences/
в /Library/Preferences/
, однако в моем случае в нем больше записей, поэтому я решил перестраховаться и просто изменить существующий файл.
com.apple.HIToolbox.plist
выглядит мой файл после изменений: gist.github.com/anonymous/d18bae208b5cf12e48beЯ нашел этот старый совет MacWorld , в котором предлагалось снова запустить Ассистент настройки:
sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant
Сначала я подумал, что это больше не поддерживается в Lion, так как выполнение этой команды, похоже, не имело никакого эффекта. Только после публикации этого вопроса я заметил опечатку в команде. Пробелы должны быть правильно экранированы, или местоположение двоичного файла должно быть заключено в кавычки. По этой причине совет, на который я ссылался, не работает.
Вот правильная команда:
sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"
В качестве альтернативы это также сработает:
sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant
Еще одна ошибка, которая не была упомянута на странице, на которую я ссылался: пользовательскую раскладку клавиатуры необходимо установить в /Library/Keyboard Layouts/
(т.е. cd /Library/Keyboard\ Layouts
), а не ~/Library/Keyboard Layouts
в , чтобы она отображалась на экране выбора раскладки клавиатуры помощника по настройке.
Обновление: начиная с OS X 10.8 вам нужно будет запустить дополнительную команду (т.е. сначала удалить файл):
sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"
Кроме того, вам придется создать новую учетную запись пользователя, чтобы завершить работу с помощником по настройке, но не волнуйтесь, впоследствии вы сможете удалить новую учетную запись.
Этот трюк больше не работает в последних версиях OS X 10.8.
Обновление: вот все, что я знаю о пользовательских раскладках клавиатуры в OS X.
Я использую пользовательскую раскладку клавиатуры, созданную с помощью Ukelele в OS X 10.8.5 . Я изменил раскладку клавиатуры экрана входа в систему, выполнив следующие действия:
Users & Groups
вSystem Preferences
Login Options
в нижней части левой панелиShow Input menu in login window
Other input sources
в меню ввода, расположенном в правом верхнем углу.Show Input menu in login window
чтобы предотвратить дальнейшие изменения макета входа.Я нашел этот метод намного проще, чем редактирование некоторых случайных .plist
файлов и запуск команд в терминале.
Для этого метода может потребоваться административный доступ, так как вам, возможно, придется разблокировать правую панель на шаге 3 выше, щелкнув значок замка внизу.
Обновление: К сожалению, это не работает в OS X 10.9.
После установки macOS Sierra мой пользовательский макет снова инициализировался по умолчанию каждый раз после входа в мою учетную запись.
Apple добавила новые клавиатуры, и идентификатор конфликтовал с клавиатурой, которую я использовал.
Чтобы проверить, есть ли у вас эта проблема, запустите:
sudo touch/Библиотека/Клавиатура\Макеты/
Выход:
Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.
Вывод утверждает, что он что-то исправляет, но на самом деле ничего не сделал. Мне все равно пришлось самому редактировать макет, и он заработал, как раньше.
Матиас Байненс
Берт Геталс