Wie erstelle ich ein benutzerdefiniertes Tastaturlayout in OS X?

Ich bin kürzlich zu OS X gewechselt und finde das Layout des Systems "Russian Phonetic" unbefriedigend (es ist nicht das, an das ich gewöhnt bin). Wie kann ich ein benutzerdefiniertes Layout erstellen?

, die ich gelesen habe über Ukelele, aber das layout, das ich erstellt und kopiert Library/Keyboard Layouts nicht zeigen, bis in den Tastatur-Einstellungen.

Ich verwende OS X 10.9 Mavericks. Ich suchte nach Lösungen im Internet, aber die meisten von ihnen waren veraltet.

Author: mik01aj, 2013-10-25

4 answers

  1. Öffnen Sie Ukelele und wählen Sie Datei > Neu aus der aktuellen Eingangsquelle. In neuen Versionen von Ukelele weist es dem Tastaturlayout automatisch eine neue ID zu.
  2. Bearbeiten Sie das Tastaturlayout.
  3. Speichern Sie das Tastaturlayout an einem temporären Speicherort wie dem Desktop. (Das direkte Speichern in /Library/Keyboard Layouts/ schlägt lautlos fehl.) Sie können eines der beiden Formate verwenden. Die beim Halten von Tasten angezeigten Popover im iOS-Stil funktionieren nur mit dem Bundle-Format. Das einzelne XML-Dateiformat (Standardformat) ist einfacher obwohl. Stellen Sie bei der Verwendung von XML sicher, dass die Datei mit der Erweiterung .keylayout gespeichert ist.
  4. Verschieben Sie das Tastaturlayout auf /Library/Keyboard Layouts/. Tastaturlayouts in ~/Library/Keyboard Layouts/ können nicht in Passwortdialogen oder im Anmeldefenster ausgewählt werden.
  5. Starten Sie den computer neu. Abmelden und zurück ist nicht genug.
  6. Aktivieren Sie das neue Tastaturlayout in den Systemeinstellungen.

Um Änderungen an einem Tastaturlayout vorzunehmen, führen Sie sudo touch /Library/Keyboard\ Layouts/ aus und starten Sie neu.

Sehen https://web.archive.org/web/20151030180252/http://osxnotes.net/keylayout-files-and-ukelele.html für weitere Informationen.


Update (Oktober 2015): Es gibt eine neue Version von Ukelele (3.0.0), die die Option enthält, das Layout in der App zu installieren. Ich musste immer noch zu den Systemeinstellungen gehen, um es zu aktivieren, musste aber die Befehlszeile überhaupt nicht durchlaufen.

 78
Author: Lri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-15 19:04:43

Erstellen der Tastaturlayoutdatei

Auch ich habe Ukelele benutzt, um ein Tastaturlayout zu erzeugen. Sie können dann die Datei .bundle oder .keylayout exportieren und in /Library/Keyboard Layouts kopieren.

sudo cp KeyboardLayout.keylayout /Library/Keyboard\ Layouts/

Wenn Sie das Symbol für die Tastatur in einer Datei bündeln möchten, bietet Ukelele eine Option zum Exportieren nach Bundle. Kopieren Sie in diesem Fall stattdessen die Datei .bundle. Alternativ können Sie die Symbole getrennt halten und sie mit demselben Namen in denselben Ordner kopieren.

sudo cp KeyboardLayout.icns /Library/Keyboard\ Layouts/

Nach einem Neustart können Sie fügen Sie die Eingabequelle im Menü Systemeinstellungen->Tastatur->Eingabequellen hinzu. Wahrscheinlich unter Anderen oder der Sprache verfügbar, wenn Sie eine Sprache an die Tastatur in Ukelele angehängt haben.

Menü Eingabequelle

So erstellen Sie eine .icns-Datei

mkdir layout.iconset

Fügen Sie dann die folgenden PNGs zum Ordner hinzu:

# All sizes necessary
icon_16x16.png
[email protected]
icon_32x32.png
[email protected]
icon_128x128.png
[email protected]
icon_256x256.png
[email protected]
icon_512x512.png
[email protected]

Sie brauchen nicht alle diese, aber dies ist die offizielle Liste. Einige sind in der Pixelzahl redundant, zeigen aber die Dichte an.

iconutil --convert icns --output layout.icns layout.iconset/

Beispielprojekt auf GitHub

Meine Das ukrainisch-russische Projekt auf GitHub ist eine Demo, die derzeit an Mavericks 10.9.5 arbeitet.

 14
Author: Cameron Lowell Palmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-12-14 13:40:03

Ukelele könnte für Sie arbeiten, seien Sie nur gewarnt, dass es Schlüssel auf Softwareebene (und nicht auf Hardwareebene) neu zu binden scheint, so dass Sie wahrscheinlich auf Probleme stoßen werden, wie einige Apps, die Modifikatoren oder spezielle Schlüssel nicht erkennen Rebindings, nicht in der Lage, es in Kennwortdialogen zu verwenden, usw.

Wenn Sie nach einer robusteren Lösung suchen, schauen Sie sich Karabiner an.

 8
Author: Senseful,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-10-26 17:48:29

Verwenden Sie ältere stabile Ukelele Version 1.8.4... Kein Neustart notwendig

Habe ich OS X 10.10.5 (Yosemite). Die aktuelle Version von Ukelele funktionierte nicht, auch nachdem ich mehrere andere Vorschläge ausprobiert hatte. Schließlich habe ich die aktuelle Version deinstalliert und die ältere stabile Version (1.8.4) installiert. Danach hat es gut funktioniert. Ein Neustart war nicht notwendig. Speichern Sie einfach das neue Layout in Bibliothek/Tastaturlayouts. Öffnen Sie dann Tastatureinstellungen, Eingabequellen. Fügen Sie durch Klicken auf + hinzu, und Sie sollten sehen das neue Layout in "Andere".

 -1
Author: Nilotpal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-08-26 20:56:31