Ho avuto esattamente lo stesso problema: un layout di tastiera personalizzato che aveva funzionato bene su macOS 10.12 Sierra si è improvvisamente rifiutato di lavorare con applicazioni e applicazioni predefinite installate da App Store dopo l'aggiornamento a macOS 10.13 High Sierra. Il sistema operativo ripristina sempre il layout di tastiera predefinito della mia regione (in finlandese). Questo mi ha fatto riflettere e sono riuscito a sistemare il layout che utilizzo in modo che ora funzioni con tutte le app, non solo quelle installate da homebrew.
Il trucco è modificare il layout personalizzato in modo che sia impostato sulla regione corrente. Puoi farlo modificando il pacchetto manualmente o usando Ukelele.
1. Modifica del layout con Ukelele
Scarica e installa Ukelele da homebrew ad esempio. Quando apri l'app, apri il tuo layout personalizzato dal file o, se lo hai attualmente attivo, puoi creare un nuovo pacchetto basato su di esso scegliendo 'File' → 'Nuovo dalla sorgente di input corrente'. Dopo averlo aperto, devi impostare la lingua corretta (e possibilmente la regione) per la lingua da Impostazioni "Lingua ..." dalla scheda "Layout tastiera". La lingua non deve corrispondere alla lingua del sistema operativo e non so se la regione abbia qualcosa a che fare con questo problema (Ukelele dice che è facoltativo) ma impostarlo sulla tua regione non può ferire.
Dopo aver impostato la lingua dalla scheda 'Keyboard layouts' è necessario impostare la localizzazione dalla scheda 'Localisations'. Se esiste già una linea locale nell'elenco è possibile modificarla facendo doppio clic su di essa e impostando la lingua (non è ancora necessario abbinare la lingua del sistema operativo), in caso contrario è possibile aggiungerne una nuova con il pulsante con un '+' firmarci sopra. L'impostazione della regione è facoltativa anche qui, ma è meglio prevenire che curare. Dopodiché puoi salvare il pacchetto e passare all'installazione e all'abilitazione del layout.
2. Modifica manuale del layout
I pacchetti di layout di tastiera sono in realtà solo directory con una determinata struttura, quindi puoi anche modificarli manualmente dalla riga di comando. Quello che devi fare è inserire cd in Your.bundle/Contents
e modificare Info.plist
aggiungendo KLInfo_<your-layout-name>
dict. Ecco un esempio di Info.plist
dal layout che sto utilizzando:
<?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>
La cosa principale qui è includere le abbreviazioni della lingua e della regione come valore stringa per TISIntendedLanguage
. Immagino che TISInputSourceID
possa essere qualsiasi cosa purché sia prefissato da CFBundleIdentifier
.
Dopo aver impostato la lingua e l'area geografica puoi salvare e chiudere il file Info.plist
. Hai comunque bisogno di modificare lo struture della directory un po '. cd in Your.bundle/Contents/Resources
e rinominare <something>.lproj
in <language>_<REGION>.lproj
, nel mio caso fi_FI.lproj
. Dopo aver fatto ciò hai finito con le modifiche.
3. Installazione e attivazione del layout
Dopo aver corretto le impostazioni di lingua, regione e localizzazione e salvato il pacchetto, spostalo su /Library/Keyboard Layouts/
se non lo hai modificato direttamente da lì. Riavvia il computer, aggiungi nuovamente il layout da "Preferenze di Sistema" → "Tastiera" → "Origini di input" e ora dovrebbe funzionare con tutte le app.
L'ho fatto per me, fammi sapere se ha funzionato per te.
Dichiarazione di non responsabilità: non sono l'autore del pacchetto ArkkuDvorak, lo uso solo.