Созданные Ukelele пользовательские раскладки клавиатуры не работают в Lion?

Я создал пользовательскую раскладку клавиатуры с помощью Ukelele ( http://scripts.sil.org/ukelele ) в Snow Leopard (идея состоит в том, чтобы генерировать скандинавские буквы с помощью клавиши Alt, в остальном у меня довольно стандартная раскладка для США). После обновления старая установленная (в ~/Library/Keyboard Layouts) раскладка не работала.

Ukelele, кажется, работает нормально в Lion, но помещу ли я сгенерированную раскладку клавиш в пакет или в один файл, или сохраню ли ее «/Library/Keyboard Layouts» или «~/Library/Keyboard Layouts», похоже, не имеет значения.

Помощь?

РЕДАКТИРОВАТЬ:

@Sergio, я не могу выбрать макет в источниках ввода. Я попробовал один файл с раскладкой: http://semeai.org/~sjl/us-scands.keylayout

Кстати, не по теме: я не знаю, ослеп ли я или что-то в этом роде, но я не могу найти каталог библиотеки в Finder. Мне нужно копировать данные туда и обратно из моего домашнего каталога.

ОБНОВИТЬ:

Я пытался выполнить эту работу на своей машине уже несколько часов, и я просто подумал попробовать со случайным макетом из сети; http://colemak.com/Mac первым попал в поле зрения радаров. Я сделал то же самое, что и со своим макетом, сохранил его в разделе «Библиотека», и он отображается в разделе «Источники ввода». Мой макет до сих пор не работает. Я попробую создать макет с нуля, посмотрим, поможет ли это. Кстати, очевидно, что «Новое из текущего источника ввода» в Ukelele не работает в Lion.

ОБНОВЛЕНИЕ 15.08.2011:

@Том:

Скопировал вашу раскладку (она, естественно, оказалась в моей папке нежелательной почты):

midgard (01:55) >ls -l ~/Library/Keyboard\ Layouts/MongolianQWERTY.keylayout
-rw-r--r--@ 1 sjl  staff  44536 Mar 13  2008 /Users/sjl/Library/Keyboard Layouts/MongolianQWERTY.keylayout

Вышел из системы, вошел в систему, не отображается в источниках ввода (я очень внимательно смотрю между «маори» и «Мьянма - QWERTY»).

Я также удалил кучу программного обеспечения и плагинов, выдающих подозрительные сообщения в system.log, но это не помогло.

ОБНОВЛЕНИЕ 16.08.2011:

Я создал тестовую учетную запись, и вот, макет отлично работает для нее. Также ошибка в настройках не отображается для этой учетной записи. При попытке сделать это в своей учетной записи в журналах консоли нет ошибок с предложенными ключевыми словами (хотя я не могу найти файл console.log).

ОБНОВЛЕНИЕ 2011/08/16 позже:

Обнуление библиотек/кэшей (и повторная регистрация) не помогли.

ОБНОВЛЕНИЕ 17.08.2011:

Я сделал

% find Library -name "*.plist" -exec mv {} {}.renamed \;

и перезапустил, но это не помогло. Я восстановил ситуацию с

% for file in `find Library -name "*.plist.renamed"`; \
  do mv "$file" "${file//.renamed/}"; done

дополнение: я также просмотрел все файлы .plist с помощью plutil -s, как описано в http://www.askdavetaylor.com/can_i_check_my_plist_files_in_mac_os_x_for_problems.html . Были некоторые поломки, но в совсем не связанных приложениях.

ОБНОВЛЕНИЕ 10.09.2011:

Я сделал все возможное и переместил всю свою библиотеку, используя другую учетную запись, войдя в свою учетную запись и наблюдая, как вещи все еще не работают. Я скопировал раскладку в /Library/Keyboard Layouts, откуда она работает для тестовой учетной записи, но не для моей. Кроме того, если я удалю все файлы пользовательских раскладок отовсюду, средство просмотра символов и средство просмотра клавиатуры появятся как доступные для выбора в меню «Источники ввода», а также отобразятся в меню «Международные» в строке меню. Как только я копирую раскладку клавиатуры в библиотеку (домашнюю или системную), средства просмотра исчезают как из меню, так и из источников ввода.

Любые идеи, как я мог бы получить больше информации от системы? Я попробовал Command-V при загрузке для подробной загрузки, но это не дало никакой дополнительной информации по этой проблеме.

РЕШЕНИЕ ДЛЯ ПОТОМКОВ:

Адаптировано с http://support.apple.com/kb/TS1896?viewlocale=en_US для Lion:

sudo rm /System/Library/Caches/com.apple.IntlDataCache*
sudo find /var/ -name "*IntlDataCache*" -exec rm {} \;

Начать сначала.

Я печатаю это, используя макет, сделанный Ukelele в Lion, но макет был сделан на Snow Leopard. Так что, вероятно, это не что-то конкретное для пользовательских макетов, а, возможно, ваши конкретные настройки.
Можете ли вы выбрать новый макет с помощью меню ввода, но клавиши не вводят правильные символы? Или макет просто отображается как установленный?
Если вы разместите ссылку на свой макет, я могу проверить его на своей машине.
Я думаю, что стандартная раскладка для США уже генерирует символы, необходимые для скандинавских языков, с помощью клавиши alt без изменений. Я также готов протестировать ваш макет, если вы его пришлете (Tom at bluesky dot org).
К вашему сведению: я отредактировал дело, включив ссылку на файл раскладки ключей, который я пробовал.
О проблеме с библиотекой см. tidbits.com/article/12306 .
@Tom: спасибо за ссылку! Используя команду из статьи, я снова могу получить доступ к библиотеке из Finder.
@Sami: Re Colmak, это один из новых макетов, которые Apple уже предоставляет Lion. Он уже был там до того, как вы что-то скачали. Если ваша загрузка работает, вы должны увидеть два из них на панели «Источники ввода». Вы выполняли выход из системы/вход в систему (а не только перезагрузку)?
вздох Нет, есть только один. Да, при этом я перелогинивался более 10 раз.
@Sami Интересно, будет ли иметь значение другой источник. Я мог бы отправить вам макет по электронной почте (tom at bluesky dot org).
Вы можете отправить мне макет по электронной почте sjl@iki.fi.
Исчезающее средство просмотра клавиатуры и символов было обычным явлением в более ранней версии ОС и имело особое исправление: support.apple.com/kb/TS1896?viewlocale=en_US .
Спасибо, Том! Это сделало это. Если вы можете просто указать это в ответе, я отмечу его как правильный.

Ответы (8)

Попробуйте это исправление, которое Apple опубликовала, когда в версии 10.5 исчезали средства просмотра клавиатуры и средства просмотра символов:

http://support.apple.com/kb/TS1896?viewlocale=en_US

Вместо sudo rm /var/folders/*/*/-Caches-/com.apple.IntlDataCache*я бы использовал sudo find /var/ -name "*IntlDataCache*" -exec rm {} \;, так как старый шаблон глобуса ничему не соответствовал. Я использовал гораздо более широкий шаблон, но он соответствовал только тому, что я связал здесь.
В любом случае, используя совет по ссылке, я решил эту проблему. Еще раз спасибо!

Макет, на который вы дали ссылку, отлично работает для меня. Вы уверены, что ваша копия файла заканчивается только на .keylayout, а не на .keylayout.xml или чем-то еще? Вы выполнили выход/вход после его установки, верно?

Я использую cpкоманду, чтобы скопировать его на место. Я вижу файл на месте с расширением ls. Я попробую только с этим файлом раскладки и перезагрузлю машину, после моих экспериментов в каталоге Layouts есть какая-то хрень. (Я перезаходил и перезагружал несколько раз, пытаясь решить эту проблему)
Удалены все остальные файлы раскладок из-под ~/Library и Library. lsвывод: midgard (16:59) >ls -l ~/Library/Keyboard\ Layouts total 96 -rw-r--r-- 1 sjl staff 48265 Aug 13 16:47 us-scands.keylayout . Перезагрузился, и макет по-прежнему не отображается в разделе «Источники ввода».
Я также поместил ваш макет в папку моей библиотеки (~/Library/Keyboard\Layouts), и он отображается в разделе «Источники ввода» как «US with scands//sjl», но я не могу печатать: я нажимаю клавиши и ничего не происходит. Это та же проблема, что и у вас?
Нет, я вообще не вижу его в источниках ввода.
Кстати, эта раскладка сделана для алюминиевой беспроводной клавиатуры.
У меня это работало без проблем после выхода из системы и повторного входа в систему, как сказал Том Гевеке.

Ваш макет работал для меня после:

  1. Скачал предоставленный вами файл. ( моя подсказка bash)

    ~/Downloads  
    ⌘  wget http://semeai.org/~sjl/us-scands.keylayout
    --2011-08-13 23:44:27--  http://semeai.org/~sjl/us-scands.keylayout
    Resolving semeai.org... 217.30.177.5
    Connecting to semeai.org|217.30.177.5|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 48265 (47K) [text/plain]
    Saving to: `us-scands.keylayout'
    
    100%[======================================>] 48,265      32.1K/s   in 1.5s    
    
    2011-08-13 23:44:29 (32.1 KB/s) - `us-scands.keylayout' saved [48265/48265]
    
    ~/Downloads  
    ⌘  ls
    us-scands.keylayout
    
    ~/Downloads  
    ⌘  md5 us-scands.keylayout 
    MD5 (us-scands.keylayout) = 9197c43c426151cd03f524a766107b49
    
  2. Кидаем в ~/Library/Keyboard Layoutsпапку

    ~/Downloads  
    ⌘  mv us-scands.keylayout ~/Library/Keyboard\ Layouts/
    

    На данный момент он уже был указан в источниках ввода:

  3. Выбор его в списке источников ввода на вкладке «Источники ввода» на панели «Язык и текст» в Системных настройках.

Перечисленные макеты

  1. Выйдите из системы и войдите снова.
  2. Выбор его в качестве текущего макета в меню ввода.

Вы уверены, что не пропустили ни один из этих шагов?

Мои характеристики:

  • 15-дюймовый MacBook Pro, начало 2011 г. (громовержец).
  • Mac OS X 10.7 обновлена ​​с Snow Leopard (чистая установка Snow Leopard перед обновлением до Lion).
  • Испанская международная встроенная клавиатура. Я никогда не использовал внешнюю клавиатуру на этом Mac.

Согласно системному профайлеру:

        Apple Internal Keyboard / Trackpad:

          Product ID: 0x0246
          Vendor ID: 0x05ac  (Apple Inc.)
          Version: 1.08
          Speed: Up to 12 Mb/sec
          Manufacturer: Apple Inc.
          Location ID: 0xfa120000 / 5
ls output: midgard (21:23) >ls -l ~/Library/Keyboard\ Layouts total 96 -rw-r--r-- 1 sjl staff 48265 Aug 13 13:33 us-scands.keylayout , перезагружен, не отображается в списке источников ввода. Я полагаю, вы видите это с другими вариантами клавиатуры для США?
Я даже wgetфайл с веб-страницы, чтобы убедиться, что это та же версия, которую вы, ребята, используете. Я проверил путь, вырезав и вставив ваши комментарии.
Я бы добавил +1 к вашему ответу, но у меня пока нет представителя :) В любом случае, я сделал именно так, как вы описываете, и это никогда не отображается в моих источниках ввода. Ни до повторного входа в систему или перезагрузки, ни после.
какой у тебя тип клавиатуры? Другие вещи, кажется, не работают, например, я не могу заставить настройку «Показать клавиатуру и средства просмотра символов в строке меню» (в Системных настройках -> Клавиатура).
Я также пробовал использовать обычную USB+клавиатуру с отключенной беспроводной клавиатурой, и это не помогло.
Обновленный ответ с моими спецификациями.
Я также обнаружил некоторые ошибки в меню ввода: «Показать имя источника ввода» выбирается каждый раз, когда я вхожу/выхожу из системы, независимо от того, сколько раз я отменяю его выбор; и моя активная раскладка клавиатуры иногда теряется после выхода из спящего режима.
@sami Проблемы с клавиатурой/средством просмотра символов часто возникают из-за плохих .plist и/или кешей.
@Tom: есть идеи, как я могу очистить кеш или найти оскорбительные .plists?
Если тестовая учетная запись работает, это обычно означает плохой .plist. Вы можете попробовать переместить все .plist в Home/Library на рабочий стол и перезапустить. Или все, кроме почты, которая содержит множество настроек, которые вы, возможно, не захотите переделывать.

Согласно Техническому примечанию Apple TN2056 :

После установки XML-клавиатура станет доступной на панели «Меню ввода» в «Международных настройках», если при ее компиляции не возникло ошибок. Если в файле есть ошибка, в console.log будет записано сообщение об ошибке с префиксом «компилятор XML uchr». Если ошибка является ошибкой синтаксиса XML, указывается строка в файле, в которой произошла ошибка. Обычно диагностируется только первая обнаруженная ошибка, и синтаксический анализ прерывается.

Вы пытались открыть Консоль (в Приложениях/Утилитах) и посмотреть, есть ли сообщение, содержащее «компилятор uchr XML» после установки раскладки клавиатуры или после входа в систему?

Я использовал консоль, но не искал эту конкретную ошибку. сегодня посмотрю.

Моя проблема заключалась в том, что моя новая пользовательская раскладка клавиатуры работала во многих приложениях — Spotlight, Sublime Text, Terminal и т. д. — но не во многих встроенных приложениях, таких как TextEdit или Mail. Последняя точка в исходном вопросе, наконец, решила эту проблему для меня:

sudo rm /System/Library/Caches/com.apple.IntlDataCache*
sudo find /var/ -name "*IntlDataCache*" -exec rm {} \;

Если вы не можете переключиться на пользовательскую раскладку клавиатуры, которая отлично работает на другом компьютере, это может быть связано с атрибутами карантина, примененными к файлам, скопированным в новую систему.

Чтобы проверить, так ли это:

$ find ~/Library/Keyboard\ Layoutse -type f -exec xattr -l {} \;
com.apple.quarantine: 0082;61e7e8e7;Screen\x20Sharing;
com.apple.quarantine: 0082;61e7e8e7;Screen\x20Sharing;
com.apple.quarantine: 0082;61e7e8e7;Screen\x20Sharing;
com.apple.quarantine: 0082;61e7e8e7;Screen\x20Sharing;
com.apple.quarantine: 0082;61e7e8e7;Screen\x20Sharing;

Чтобы удалить их:

$ find . -type f -exec xattr -d com.apple.quarantine {} \;
В macOS 12.2 (Montery) у меня это сработало. Как только я удалил атрибут карантина, я смог выбрать макет, и он продолжал работать.

Я люблю укулеле. в lion last macbook pro не работал как обычно. расширение .keylayout похоже не работает. Наконец-то он заработал с пакетом, который вы получаете в укулеле, сохраняя пакет. затем его нужно скопировать в раскладку библиотеки/клавиатуры с ключом опции, иначе это будет псевдоним. надеюсь это поможет

Используйте старую стабильную версию Ukelele 1.8.4. Даже перезагрузка не требуется.

У меня Mac 10.10.5 (Йосемити). Текущая версия Ukelele не работала даже после того, как я перепробовал все возможные предложения с различных форумов. Наконец, я удалил текущую версию Ukelele и установил более старую стабильную версию 1.8.4. Все работало как по волшебству. Перезапуск не требуется. Вы просто сохраняете новую раскладку в раскладках библиотеки/клавиатуры. Затем откройте источники ввода настроек клавиатуры. Добавьте, нажав +. Вы должны увидеть новый макет в разделе «Другие».

Привет - спасибо за ваш ответ. Было бы полезно, если бы вы отредактировали его так, чтобы не все было написано заглавными буквами — некоторые думают, что это аналогично крику. Это также упростит чтение вашего поста.