Почему это проблема?
Зачем вообще может понадобиться удалять раскладку клавиатуры? Потому что мы поставили другую, свою.
Например Типографскую раскладку Ильи Бирмана. В неё входит английская версия, но стандартную английскую удалить всё равно не получается.
Ранее предлагалось решение через глюк операционки, согласно которому можно было добавить японскую раскладку и удалить английскую штатным образом. Но этот способ не работает в macOS Monterey и Ventura.
Решение
Отредактировать файл конфигурации раскладок для текущего пользователя, находящийся по адресу ~/Library/Preferences/com.apple.HIToolbox.plist
Проблема усугубляется двумя факторами: файл бинарный (просто так отредактировать его не получится) и файл периодически перезаписывается системой (поэтому всё может сработать не с первого раза).
1. Преобразование файла в текстовый (раскодирование)
Для начала необходимо подготовиться и перейти к файлу. Делается это в открыв Finder, нажав ⇧Shift+⌘CMD+G и вставив путь до файла:
~/Library/Preferences/com.apple.HIToolbox.plist
ZshЗатем открыть Терминал и ввести команду:
plutil -convert xml1 ~/Library/Preferences/com.apple.HIToolbox.plist
ZshПосле чего необходимо сразу открыть файл в любом текстовом редакторе. Это важно, т.к. файл может автоматически “закодироваться” системой обратно через какое-то время вследствие автоматического сохранения настроек системы.
Если вы не успели это сделать и вместо текста «кракозябры» (файл начинается с символов bplist), то повторите действия по-новой.
2. Редактирование файла
Удалить необходимую раскладку после AppleEnabledInputSources
В моём случае я удалял раздел с раскладкой English – US, т.е. такой текст:
<dict>
<key>InputSourceKind</key>
<string>Keyboard Layout</string>
<key>KeyboardLayout ID</key>
<integer>15000</integer>
<key>KeyboardLayout Name</key>
<string>USInternational-PC</string>
</dict>
XMLЕсли есть секция
AppleDefaultAsciiInputSource
– её так же необходимо удалить.
После чего файл необходимо сохранить.
В этот момент система может перезаписать ваши настройки, поэтому следующие действия делаем максимально быстро.
В моем случае итоговый файл получился вот такой:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppleCurrentKeyboardLayoutInputSourceID</key>
<string>org.sil.ukelele.keyboardlayout.t.russian-ilyabirmantypography</string>
<key>AppleEnabledInputSources</key>
<array>
<dict>
<key>Bundle ID</key>
<string>com.apple.CharacterPaletteIM</string>
<key>InputSourceKind</key>
<string>Non Keyboard Input Method</string>
</dict>
<dict>
<key>Bundle ID</key>
<string>com.apple.PressAndHold</string>
<key>InputSourceKind</key>
<string>Non Keyboard Input Method</string>
</dict>
</array>
<key>AppleFnUsageType</key>
<integer>0</integer>
<key>AppleGlobalTextInputProperties</key>
<dict>
<key>TextInputGlobalPropertyPerContextInput</key>
<true/>
</dict>
<key>AppleInputSourceHistory</key>
<array>
<dict>
<key>InputSourceKind</key>
<string>Keyboard Layout</string>
<key>KeyboardLayout ID</key>
<integer>-31553</integer>
<key>KeyboardLayout Name</key>
<string>Russian - Ilya Birman Typography</string>
</dict>
<dict>
<key>InputSourceKind</key>
<string>Keyboard Layout</string>
<key>KeyboardLayout ID</key>
<integer>151</integer>
<key>KeyboardLayout Name</key>
<string>English - Ilya Birman Typography</string>
</dict>
</array>
<key>AppleSelectedInputSources</key>
<array>
<dict>
<key>Bundle ID</key>
<string>com.apple.PressAndHold</string>
<key>InputSourceKind</key>
<string>Non Keyboard Input Method</string>
</dict>
<dict>
<key>InputSourceKind</key>
<string>Keyboard Layout</string>
<key>KeyboardLayout ID</key>
<integer>-31553</integer>
<key>KeyboardLayout Name</key>
<string>Russian - Ilya Birman Typography</string>
</dict>
</array>
</dict>
</plist>
XML3. Преобразование файла обратно (кодирование)
Ввести в Терминал команду обратного преобразования в бинарный формат:
plutil -convert binary1 ~/Library/Preferences/com.apple.HIToolbox.plist
ZshПерезагрузить компьютер (перезаход в учётную запись не поможет).
Результат
Обратно добавить раскладку можно штатным образом зайдя в Настройки – Клавиатура – Источники ввода.
Источник информации: https://apple.stackexchange.com/questions/44921/how-to-remove-or-disable-a-default-keyboard-layout
На Сономе ваш метод не работает, только что пробовал. С добавлением и удалением японской раскладки у меня работало 5 лет назад, а сейчас не получилось.
Но когда прочитал здесь, что нужно поиграться с галочками, поставил внутри японской Romaji (а может что другое, не запомнил последовательность 🙂 — и всё заработало! Японская после этого удалилась. Маша Лукоморцева, гран мерси!
Очень даже работает на Ventura удаление английской раскладки через добавление японской. Там просто надо с галочками «поиграться» — уже в самой японской раскладке.
Сколько не игрался у меня не получилось. Главное, что есть альтернативный вариант, который точно работает.