Imposta un layout di tastiera personalizzato come predefinito di sistema, anche per la schermata di accesso


37

Posso impostare un layout di tastiera personalizzato (uno che non era incluso con OS X per impostazione predefinita) come predefinito di sistema, anche per la schermata di accesso?


(nel frattempo, potresti non accettare la risposta, i lettori potrebbero essere confusi)
o0 '.

1
@Lohoris: Fatto!
Mathias Bynens,

Aggiorna la domanda b rimuovendo la nota di aggiornamento, la migliore risposta ora funziona anche sulle ultime versioni di osx
Bert Goethals

Risposte:


13

Funziona su OSX 10.9 Mavericks, con un layout di tastiera che ho creato con Ukulele. Supponendo che il layout sia già installato nel sistema, accedere al proprio account e rendere attivo il layout della tastiera personalizzato.

Apri un terminale ed esegui il seguente comando:

cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/

Se si intende utilizzare un editor di testo (ad esempio, TextWrangler) per apportare questa modifica invece di XCode (che ha un editor di grafici grafico specializzato), eseguire anche :

plutil -convert xml1 /tmp/com.apple.HIToolbox.plist

Ora, apri /tmp/com.apple.HIToolbox.plistnell'editor di testo o in XCode.

In tutto il file troverai diverse menzioni di una KeyboardLayout IDchiave seguite da un numero intero e KeyboardLayout Nameseguite da una stringa. Cambia queste stringhe con il nome del tuo layout di tastiera personalizzato e gli interi ID con l'ID del tuo layout (il modo più semplice per trovare i valori giusti è confrontare con le tue impostazioni utente trovate nel file ~/Library/Preferences/com.apple.HIToolbox.plist.

Inoltre, il valore della chiave AppleCurrentKeyboardLayoutInputSourceIDdeve essere modificato di conseguenza (probabilmente in qualcosa del genere org.unknown.keylayout.NameOfYourLayout). Ancora una volta puoi trovare questo valore nel tuo file delle preferenze locali.

Una volta apportate queste modifiche, salvare il file e tornare al terminale. Per riprodurlo in sicurezza, è possibile creare una copia del com.apple.HIToolbox.plistfile originale , nel caso in cui si sia commesso un errore e sia necessario eseguire il rollback. Ad esempio, per salvare una copia nella cartella Documenti :

sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents

Quindi installare la modifica con il seguente:

sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'

(Non è necessario riconvertire il file fuori dal modulo di testo con plutilse lo hai fatto in precedenza.)

Esci dal terminale e riavvia il computer (il logout non è sufficiente: il file non verrà riletto). Dopo il riavvio, dovresti avere il layout della tastiera nella schermata di accesso.

NOTA: è possibile che sarebbe stato sufficiente per copiare il file com.apple.HIToolbox.plistdal ~/Library/Preferences/al /Library/Preferences/, però nel mio caso ha più voci, così ho deciso di giocare sul sicuro e solo modificare il file esistente.


Provando questo adesso, poiché l'altra risposta non ha funzionato. FWIW, ecco com.apple.HIToolbox.plistcome appare il mio file dopo le modifiche: gist.github.com/anonymous/d18bae208b5cf12e48be
Mathias Bynens

Ha funzionato perfettamente, grazie! Mi dispiace di non poterti più dare la taglia, quindi ne creerò una nuova solo per premiarti per questa risposta.
Mathias Bynens,

Sono contento che abbia aiutato. Grazie per la generosità extra! :-)
Eric J. Francois,

Ha funzionato come un fascino. Ottimo consiglio!
ƘɌỈSƬƠƑ

È fantastico. Sono stato impantanato dal mio default della tastiera belga troppo a lungo! Vorrei poterti dare più voti!
Bert Goethals,

12

Ho trovato questo vecchio suggerimento per MacWorld , che mi ha suggerito di eseguire nuovamente il Setup Assistant:

sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant

Inizialmente pensavo che questo non fosse più supportato in Lion poiché l'esecuzione di questo comando non sembrava avere alcun effetto. Solo dopo aver postato questa domanda, ho notato che c'è un refuso nel comando. I caratteri dello spazio devono essere salvati correttamente, oppure la posizione del binario deve essere quotata. Per questo motivo, il suggerimento che ho collegato non funziona.

Ecco il comando corretto:

sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

In alternativa, funzionerebbe anche questo:

sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant

Un altro gotcha che non è stato menzionato nella pagina a cui mi sono collegato: il layout di tastiera personalizzato deve essere installato in /Library/Keyboard Layouts/(cioè cd /Library/Keyboard\ Layouts), non ~/Library/Keyboard Layouts, affinché appaia nella schermata di selezione del layout di tastiera dell'Assistente configurazione.


Aggiornamento: a partire da OS X 10.8, dovrai eseguire un comando aggiuntivo (ovvero rimuovere prima un file):

sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

Inoltre, dovrai creare un nuovo account utente per completare l'Assistente installazione, ma non preoccuparti, puoi eliminare il nuovo account in seguito.

Questo trucco non funziona più nelle recenti versioni di OS X 10.8.


Aggiornamento: Qui è tutto quello che so sui layout di tastiera personalizzate su OS X .


Ho seguito i tuoi passi per Mountain Lion 10.8 e ho eseguito il guadagno dell'assistente di configurazione impostando il layout di tastiera predefinito su Dvorak e ho provato ad accedere ma non ha funzionato. al riavvio stava ancora usando qwerty per la schermata di accesso.
AMS

Sì, non sembra più funzionare da OS X 10.8. :(
Mathias Bynens,

3

Sto usando un layout di tastiera personalizzato creato con Ukelele in OS X 10.8.5 . Ho modificato il layout della tastiera della schermata di accesso con i seguenti passaggi:

  1. Apri Users & GroupsinSystem Preferences
  2. Seleziona Login Optionsdalla parte inferiore del pannello di sinistra
  3. Dai un'occhiata Show Input menu in login window
  4. Vai alla schermata di accesso
  5. Seleziona il layout preferito Other input sourcesdal menu di input, situato in alto a destra
  6. Torna indietro e deseleziona Show Input menu in login windowper impedire ulteriori modifiche al layout di accesso

Ho trovato questo metodo molto più semplice rispetto alla modifica di alcuni .plistfile casuali e l'esecuzione di comandi sul terminale.

Questo metodo potrebbe richiedere l'accesso amministrativo, poiché è possibile sbloccare il riquadro destro al passaggio 3. facendo clic sull'icona del lucchetto in basso.

Aggiornamento: purtroppo, questo non sembra funzionare su OS X 10.9.


Ti ho assegnato la generosità in quanto questa sembrava la risposta migliore, ma in realtà non sembra funzionare: torna sempre al layout di tastiera statunitense predefinito. Per provare questo, ho usato un layout di tastiera che mi consente di digitare tre simboli con un solo tasto, in modo da poter vedere quanti caratteri mascherati compaiono nella casella di input della password. Dopo aver applicato i passaggi che hai citato, ho potuto inserire solo un simbolo alla volta (come per la tastiera americana).
Mathias Bynens,

Puoi descrivere cosa non funziona con OS X 10.9? Sono in grado di seguire questi passaggi (non ho fatto il passaggio 6) correttamente quando si utilizza il layout di Workman (disponibile qui: workman.deekayen.net ). Il mio problema però è che se quel layout è selezionato e blocco il computer, il menu di input non verrà visualizzato nella schermata di accesso, mentre va bene se ho Dvorak o qualcos'altro supportato nativamente da OS X. (cioè vedo il menu e può tornare negli Stati Uniti se necessario)
Timothée Boucher,

@ TimothéeBoucher Il mio commento precedente descrive cosa non va e come l'ho provato.
Mathias Bynens,

2

Dopo aver installato macOS Sierra, il mio layout personalizzato è stato ripristinato ai valori predefiniti ogni volta dopo l'accesso al mio account.

Apple ha aggiunto nuove tastiere e l'ID era in conflitto con la tastiera che stavo usando.

Per convalidare se si presenta questo problema:

sudo touch / Libreria / Tastiera \ Layout /

L'output:

Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.

L'output afferma che risolve qualcosa ma in realtà non ha fatto nulla. Ho ancora dovuto modificare il layout da solo e ha iniziato a funzionare come prima.


Ho anche cambiato quello personalizzato. Purtroppo, correggere gli ID nei file .plist non mi ha aiutato.
Pavel Gurkov,

@PavelGurkov dopo hai eseguito il comando sudo touch nella cartella? Era necessario che il sistema operativo lo considerasse.
jrobichaud,

Sì, l'ho fatto, non ho ottenuto alcun risultato. Ho controllato tutto quello che potevo, ma comunque ... Ha funzionato perfettamente su El Capitan, senza fortuna su Sierra.
Pavel Gurkov,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.