Eu tinha exatamente o mesmo problema: um layout de teclado personalizado que funcionou bem no macOS 10.12 Sierra subitamente se recusou a trabalhar com aplicativos e aplicativos padrão instalados na App Store após a atualização para o macOS 10.13 High Sierra. O sistema operacional sempre retornaria ao layout de teclado padrão da minha região (finlandês). Isso me fez pensar e consegui consertar o layout que uso para que agora funcione com todos os aplicativos, não apenas com os instalados no homebrew.
O truque é modificar seu layout personalizado para que ele seja definido na sua região atual. Você pode fazer isso modificando o pacote manualmente ou usando o Ukelele.
1. Editando o layout com o Ukelele
Faça o download e instale o Ukelele de, por exemplo, homebrew. Quando você abrir o aplicativo, abra seu layout personalizado a partir do arquivo ou, se você o tiver atualmente ativo, poderá criar um novo pacote baseado nele, escolhendo 'Arquivo' → 'Novo da fonte de entrada atual'. Depois de abrir, você deve definir o idioma correto (e possivelmente a região) para ele nas configurações de 'Idioma ...' encontradas na guia 'Layouts de teclado'. O idioma não precisa corresponder ao idioma do sistema operacional e não sei se a região tem algo a ver com esse problema (Ukelele diz que é opcional), mas configurá-lo para sua região não pode prejudicar.
Depois de definir o idioma na guia 'Layouts de teclado', você precisa definir a localização na guia 'Localizações'. Se já existe uma linha local na lista, você pode editá-la clicando duas vezes nela e definindo o idioma (ainda não precisa corresponder ao idioma do sistema operacional); caso contrário, você pode adicionar uma nova com o botão com um botão '+' assine nele. A configuração da região também é opcional aqui, mas é melhor prevenir do que remediar. Depois disso, você pode salvar o pacote configurável e pular para instalar e ativar seu layout.
2. Editando o layout manualmente
Os pacotes de layout de teclado são na verdade apenas diretórios com certa estrutura, para que você também possa editá-los manualmente na linha de comando. O que você precisa fazer é entrar no CD Your.bundle/Contents
e editar Info.plist
adicionando KLInfo_<your-layout-name>
dict. Aqui está um exemplo do Info.plist
layout que estou usando:
<?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>CFBundleIdentifier</key>
<string>com.apple.keyboardlayout.arkkudvorak</string>
<key>CFBundleName</key>
<string>ArkkuDvorak</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>KLInfo_ArkkuDvorak</key>
<dict>
<key>TISInputSourceID</key>
<string>com.apple.keyboardlayout.arkkudvorak.arkkudvorak</string>
<key>TISIntendedLanguage</key>
<string>fi-FI</string>
</dict>
</dict>
</plist>
O principal aqui é incluir as abreviações de idioma e região como valor de string para TISIntendedLanguage
. Eu acho que TISInputSourceID
pode ser qualquer coisa, desde que seja prefixado por CFBundleIdentifier
.
Depois de definir o idioma e a região, você pode salvar e fechar o Info.plist
arquivo. Você ainda precisa editar um pouco a estrutura do diretório. cd Your.bundle/Contents/Resources
e renomeie o <something>.lproj
into <language>_<REGION>.lproj
, no meu caso fi_FI.lproj
. Depois de fazer isso, você termina as alterações.
3. Instalando e Ativando seu Layout
Após corrigir as configurações de idioma, região e localização e salvar o pacote, mova-o para /Library/Keyboard Layouts/
se você não o editar diretamente a partir daí. Reinicie o seu computador, adicione novamente o layout de 'Preferências do sistema' → 'Teclado' → 'Fontes de entrada' e agora deve funcionar com todos os aplicativos.
Isso fez isso por mim, deixe-me saber se funcionou para você.
Isenção de responsabilidade: eu não sou o autor do pacote ArkkuDvorak, apenas o uso.