Legen Sie ein benutzerdefiniertes Tastaturlayout als Systemstandard fest - auch für den Anmeldebildschirm

37

Kann ich ein benutzerdefiniertes Tastaturlayout (das standardmäßig nicht in OS X enthalten ist) als Systemstandard festlegen - auch für den Anmeldebildschirm?

Mathias Bynens
quelle
(In der Zwischenzeit könnten Sie die Antwort nicht
akzeptieren, die
1
@Lohoris: Fertig!
Mathias Bynens
Bitte aktualisieren Sie die Frage b, indem Sie den Update-Hinweis entfernen. Die beste Antwort funktioniert jetzt auch auf den neuesten OSX-Versionen
Bert Goethals

Antworten:

13

Dies funktioniert unter OSX 10.9 Mavericks mit einem Tastaturlayout, das ich mit Ukulele erstellt habe. Angenommen, Sie haben das Layout bereits in Ihrem System installiert, melden Sie sich bei Ihrem Konto an und aktivieren Sie Ihr benutzerdefiniertes Tastaturlayout.

Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

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

Wenn Sie diese Änderung mit einem Texteditor (z. B. TextWrangler) anstelle von XCode (mit einem speziellen grafischen Plist-Editor) vornehmen möchten, führen Sie Folgendes aus :

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

Öffnen Sie nun /tmp/com.apple.HIToolbox.plistim Texteditor oder in XCode.

In der gesamten Datei finden Sie mehrere Erwähnungen eines KeyboardLayout IDSchlüssels, gefolgt von einer Ganzzahl und KeyboardLayout Nameeiner Zeichenfolge. Ändern Sie diese Zeichenfolgen in den Namen Ihres benutzerdefinierten Tastaturlayouts und die ID-Ganzzahlen in die ID Ihres Layouts (der einfachste Weg, die richtigen Werte zu finden, ist der Vergleich mit Ihren Benutzereinstellungen in der Datei ~/Library/Preferences/com.apple.HIToolbox.plist.

Auch der Wert des Schlüssels AppleCurrentKeyboardLayoutInputSourceIDmuss entsprechend geändert werden (wahrscheinlich in etwas Ähnliches org.unknown.keylayout.NameOfYourLayout). Sie finden diesen Wert wieder in Ihrer lokalen Einstellungsdatei.

Sobald diese Änderungen vorgenommen wurden, speichern Sie die Datei und kehren Sie zum Terminal zurück. Um auf Nummer sicher zu gehen, können Sie eine Kopie der Originaldatei com.apple.HIToolbox.plisterstellen, falls Sie einen Fehler gemacht haben und einen Rollback durchführen müssen. So speichern Sie beispielsweise eine Kopie in Ihrem Ordner " Dokumente ":

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

Dann installieren Sie Ihre Änderung wie folgt:

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

(Es ist nicht erforderlich, Ihre Datei mit wieder aus der Textform zu konvertieren, plutilwenn Sie dies zuvor getan haben.)

Verlassen Sie das Terminal und starten Sie den Computer neu (Abmelden ist nicht ausreichend: Die Datei wird nicht erneut gelesen). Nach dem Neustart sollte sich Ihr Tastaturlayout im Anmeldebildschirm befinden.

HINWEIS: Möglicherweise hätte es gereicht, die Datei com.apple.HIToolbox.plistvon ~/Library/Preferences/nach zu kopieren. /Library/Preferences/In meinem Fall sind jedoch mehr Einträge vorhanden. Daher habe ich beschlossen, auf Nummer sicher zu gehen und nur die vorhandene Datei zu ändern.

Eric J. Francois
quelle
Ich habe es gerade versucht, da die andere Antwort nicht funktioniert hat. FWIW, so com.apple.HIToolbox.plistsieht meine Datei nach den Änderungen aus: gist.github.com/anonymous/d18bae208b5cf12e48be
Mathias Bynens
Hat einwandfrei funktioniert, danke! Es tut mir leid, dass ich Ihnen kein Kopfgeld mehr geben kann. Ich werde nur ein neues einrichten, um Sie für diese Antwort zu belohnen.
Mathias Bynens
Ich bin froh, dass es geholfen hat. Danke für die Extrabonus! :-)
Eric J. Francois
Lief wie am Schnürchen. Toller Tipp!
ƘɌỈSƘɌỈ
Das ist fantastisch. Ich bin zu lange von meiner belgischen Tastatur festgefahren! Ich wünschte, ich könnte Ihnen mehrere Stimmen geben!
Bert Goethals
12

Ich habe diesen alten MacWorld-Tipp gefunden , der vorschlug, den Setup-Assistenten erneut auszuführen:

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

Zuerst dachte ich, dass dies in Lion nicht mehr unterstützt wird, da das Ausführen dieses Befehls keine Wirkung mehr zu haben schien. Erst nachdem ich diese Frage gestellt hatte, bemerkte ich, dass der Befehl einen Tippfehler enthält. Die Leerzeichen müssen ordnungsgemäß maskiert werden, oder die Position der Binärdatei muss in Anführungszeichen gesetzt werden. Aus diesem Grund funktioniert der Tipp, mit dem ich verlinkt habe, nicht.

Hier ist der richtige Befehl:

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

Alternativ würde dies auch funktionieren:

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

Ein weiteres Problem, das auf der Seite, auf die ich verlinkt habe, nicht erwähnt wurde: Das benutzerdefinierte Tastaturlayout muss in /Library/Keyboard Layouts/(dh cd /Library/Keyboard\ Layouts) installiert sein ~/Library/Keyboard Layouts, damit es im Bildschirm zur Auswahl des Tastaturlayouts des Setup-Assistenten angezeigt wird.


Update: Ab OS X 10.8 müssen Sie einen zusätzlichen Befehl ausführen (dh zuerst eine Datei entfernen):

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

Außerdem müssen Sie ein neues Benutzerkonto erstellen, um den Setup-Assistenten abzuschließen. Sie können das neue Konto jedoch nachträglich löschen.

Dieser Trick funktioniert in neueren OS X 10.8-Versionen nicht mehr.


Update: Hier ist alles, was ich über benutzerdefinierte Tastaturlayouts unter OS X weiß .

Mathias Bynens
quelle
Ich bin deinen Schritten für den Mountain Lion 10.8 gefolgt und habe den Setup-Assistenten ausgeführt. Beim Neustart wurde immer noch qwerty für den Anmeldebildschirm verwendet.
ams
Ja, seit OS X 10.8 scheint es nicht mehr zu funktionieren. :(
Mathias Bynens
3

Ich verwende ein benutzerdefiniertes Tastaturlayout, das mit Ukelele in OS X 10.8.5 erstellt wurde . Ich habe das Tastaturlayout des Anmeldebildschirms folgendermaßen geändert:

  1. Öffnen Sie Users & GroupsinSystem Preferences
  2. Wählen Sie Login Optionsunten im linken Bereich
  3. Prüfen Show Input menu in login window
  4. Gehen Sie zum Anmeldebildschirm
  5. Wählen Sie das bevorzugte Layout Other input sourcesim Eingabemenü oben rechts aus
  6. Gehen Sie zurück und deaktivieren Sie das Kontrollkästchen Show Input menu in login window, um weitere Änderungen am Anmeldelayout zu verhindern

Ich fand diese Methode viel einfacher, als einige zufällige .plistDateien zu bearbeiten und Befehle im Terminal auszuführen.

Diese Methode erfordert möglicherweise Administratorzugriff, da Sie möglicherweise den rechten Bereich in Schritt 3 oben entsperren müssen, indem Sie unten auf das Schlosssymbol klicken.

Update: Leider scheint dies unter OS X 10.9 nicht zu funktionieren.

Jawa
quelle
Ich habe Ihnen das Kopfgeld zuerkannt, da dies die beste Antwort zu sein schien, aber es scheint nicht zu funktionieren - es wird immer auf das Standardlayout der US-Tastatur zurückgegriffen. Um dies zu testen, habe ich ein Tastaturlayout verwendet, mit dem ich drei Symbole mit einem Tastendruck eingeben kann, sodass ich sehen kann, wie viele maskierte Zeichen im Passworteingabefeld angezeigt werden. Nachdem Sie die von Ihnen erwähnten Schritte ausgeführt haben, konnte ich immer nur ein Symbol eingeben (gemäß der US-Tastatur).
Mathias Bynens
Können Sie beschreiben, was mit OS X 10.9 nicht funktioniert? Ich kann diese Schritte (ich habe Schritt 6 nicht ausgeführt) erfolgreich ausführen, wenn ich das Workman-Layout verwende (hier zu finden: workman.deekayen.net ). Mein Problem ist jedoch, dass, wenn dieses Layout ausgewählt ist und ich den Computer sperre, das Eingabemenü nicht im Anmeldebildschirm angezeigt wird, wohingegen es in Ordnung ist, wenn ich Dvorak oder etwas anderes habe, das von OS X nativ unterstützt wird (dh ich sehe das Menü) und kann bei Bedarf wieder in die USA wechseln)
Timothée Boucher
@ TimothéeBoucher Mein vorheriger Kommentar beschreibt, was schief geht und wie ich das getestet habe.
Mathias Bynens
2

Nach der Installation von macOS Sierra wurde mein benutzerdefiniertes Layout nach jeder Anmeldung in meinem Konto auf die Standardeinstellungen zurückgesetzt.

Apple fügte neue Tastaturen hinzu und die ID widersprach der von mir verwendeten Tastatur.

So überprüfen Sie, ob dieses Problem auftritt:

sudo touch / Bibliothek / Tastatur \ Layouts /

Die Ausgabe:

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

Die Ausgabe behauptet, dass sie etwas repariert, aber tatsächlich nichts getan hat. Ich musste das Layout immer noch selbst bearbeiten und es begann wie zuvor zu funktionieren.

jrobichaud
quelle
Habe auch meine Sitte geändert. Das Beheben von IDs in den .plist-Dateien hat mir leider nicht geholfen.
Pavel Gurkov
@PavelGurkov Haben Sie den Befehl sudo touch für den Ordner ausgeführt? Das Betriebssystem musste dies berücksichtigen.
Jrobichaud
Ja, habe das getan, habe überhaupt keine Ausgabe bekommen. Überprüfte alles, was ich konnte, aber immer noch ... Funktionierte einwandfrei auf El Capitan, kein Glück auf Sierra.
Pavel Gurkov