Применить изменения к (Ukelele) .keylayout без повторного входа в систему на OS X

Применить изменения к (Ukelele) .keylayout без повторного входа в систему на OS X

Разработчик Ukelele (Джон Брауни) на сайте:

Во-вторых, если у вас активна раскладка клавиатуры, измените ее (в Ukelele или любым другим способом), сохраните, затем выйдите из системы и войдите снова, система не загрузит новую версию. Вам нужно изменить папку, содержащую раскладку клавиатуры, чтобы система распознала изменение. Самый простой способ — перетащить файл раскладки клавиатуры на рабочий стол, а затем обратно в папку Keyboard Layouts, затем выйдите из системы и войдите снова. Перезапуск всегда будет загружать последнюю версию раскладки клавиатуры.

Есть ли более разумный метод?


Так что, похоже, скорее всего, нет. Вот способ частично автоматизировать это с помощью Applescript:


do shell script "touch '/Library/Keyboard Layouts/'"
tell application "System Events"
    try
        tell process "Ukelele"
            click menu bar 1's menu bar item "File"'s menu 1's menu item "Save"
        end tell
    end try
    log out
end tell

решение1

Извините, но лучше некуда. Раскладки клавиатуры сканируются только при входе в систему, и если вы не перезагрузитесь, то система оптимизирует процесс, сканируя только папки, которые были изменены с момента последнего входа в систему, проверяя дату изменения папки.

Единственный другой способ, который я могу придумать для автоматизации этого, — это скрипт, который изменяет дату модификации соответствующей папки — скрипт оболочки, вызывающий 'touch', подойдет (см. ниже). Тогда у вас может быть более простой способ внесения изменений (вместо перетаскивания файлов из системы и обратно), но вам все равно придется выходить из системы и входить в нее. Я не знаю сочетания клавиш для выхода из системы, кроме нажатия option-shift-command-Q. Я не видел способа написать для этого скрипт.

Скрипт для изменения даты модификации папки «Раскладки клавиатуры» в папке «Библиотека»:

#!/bin/sh
touch /Library/Keyboard\ Layouts

Связанный контент