Betriebssystemübergreifende benutzerdefinierte Tastaturlayouts

Betriebssystemübergreifende benutzerdefinierte Tastaturlayouts

Gibt es Software, die gleichzeitig Tastaturlayouts für Macintosh, Windows und Linux (xkb) generiert?

Bearbeiten: Soweit ich weiß, unterstützt Microsoft Keyboard Layout Creator keine Änderung von Sondertasten (ich habe gelesen, dass Autohotkey dieses Problem vielleicht umgehen kann).

Antwort1

Leider gibt es kein Softwaretool oder -paket, das die nativen Tastaturlayoutdateien der wichtigsten Desktop-Betriebssysteme generieren oder transkodieren (portieren) kann (zumindest keins, das öffentlich verfügbar ist). Ein solches Tool wäre für alle sehr nützlich, die regelmäßig mehrere Betriebssysteme verwenden müssen, ob auf derselben Maschine und mit derselben Tastatur oder nicht; was immer häufiger vorkommt. Aber bisher wurde nichts dergleichen entwickelt – und veröffentlicht – und das nicht ohne Grund. Das „Portieren“ von Tastaturen zwischen Betriebssystemen oder der Versuch, präzise synchronisierte Tastaturlayouts über verschiedene Plattformen hinweg beizubehalten, ist mit verschiedenen Komplikationen verbunden. Eines der größten Hindernisse ist der Unterschied zwischen den „Modifikatoren“/Befehlstasten, die von den verschiedenen Betriebssystemen verwendet und/oder erkannt werden. Darüber hinaus haben Macs einzigartige physische Tastaturen mit einigen Tasten, die nicht direkt mit anderen Betriebssystemen übereinstimmen oder auf diese übertragen werden, was eine zweite „Schicht“ von Problemen und Inkonsistenzen schafft, die gelöst und überwunden werden müssen. Im Wesentlichen ist es technisch tatsächlich unmöglich, identisch funktionierende Tastaturlayouts auf den von Ihnen angegebenen Plattformen zu haben.

Jedoch,Keyman-Entwicklerist ein leistungsstarkes Drittanbieter-Softwaretool für die Entwicklung von Tastaturlayouts und Texteingaben, das Ihren Anforderungen so nahe kommt, wie Sie es sich nur wünschen können. Es ist das einzige Tool dieser Art, das meines Wissens öffentlich verfügbar ist. Obwohl Drittanbietersoftware nicht ideal ist, behaupte ich, dass Keyman angesichts all dessen, was es zu bieten hat, eine Überlegung wert ist – abhängig davon, was genau Ihre Ziele sind (und wie komplex/einzigartig Ihre Tastaturlayouts sind).

Das Entwicklerpaket von Keyman ist ein robustes Tool, das verschiedene Ausgabedateitypen generieren kann, darunter All-in-One-Installationsprogramme mit Schriftarten für Eingabemethoden/Tastaturlayouts, und zwar nicht nur für alle neueren Versionen von Microsoft- und Apple-Desktop-Betriebssystemen, sondern auch für deren jeweilige mobile Plattformen/Geräte sowie *nix-basierte Plattformen, darunter Android. Das bedeutet, dass es auch die Entwicklung virtueller Bildschirmtastaturen erleichtert – ALLES mithilfe eines integrierten Tools und Bearbeiten einer einzigen einheitlichen Projektdatei! PLUS: Es ist seit kurzem Open Source und kostenlos! Ich glaube nicht, dass das zu toppen ist ... Zur Unterstützung der flexiblen, erweiterten Funktionen und Features, die viele komplexe Skripte erfordern, verwendet Keyman eine eigene Engine anstelle der betriebssystemeigenen Dateien/Technologien (.klc/.dll oder .keylayout), die die erweiterten kontextsensitiven Features von Keyman nicht unterstützen, die für sogenannte „komplexe“ Sprachen/Schriftsysteme erforderlich sind (hierzu zählen hauptsächlich die Schriften Südasiens, beispielsweise Indiens und Tibets, in denen die Zeichen oft neu angeordnet oder dynamisch basierend auf dem umgebenden Text ausgewählt werden müssen und die nach Abschluss der Sequenz noch immer eine Bearbeitung ermöglichen, ohne die gesamte Sequenz erneut eingeben zu müssen). KMFLmuss auf *nix-basierten Systemen installiert und verwendet werden, um die Tastatur aus der Keyman-Quelldatei zu kompilieren. (KMFL ist eine Portierung/Neufassung der Keyman-Engine).
Die Keyman-Engine (oder ein gleichwertiges Programm) scheint recht effizient zu sein und benötigt nur wenige Ressourcen. Sie ist außerdem recht ausgereift und scheint sehr stabil zu sein. Sie läuft reibungslos und zuverlässig, ohne Probleme zu verursachen.

Obwohl die meisten der von Keyman unterstützten Plattformen und Formate gewisse inhärente oder technische Einschränkungen aufweisen (die ich bereits erwähnt habe, wie z. B. einzigartige Modifikatortasten) oder ihre Entwicklung noch im Gange ist, was die Funktion bzw. (vollständige) Implementierung bestimmter Funktionen einschränken kann, ermöglicht Keyman die Anpassung und Optimierung von Funktionen, die für jede Plattform einzigartig sind und integriert/codiert werden können, um diese Probleme/Unterschiede zu mildern.

Wie bereits erwähnt, wurden alle Keyman-Produkte vor kurzem von kommerziellen auf Open-Source umgestellt, als Folge vonSILÜbernahme des Keyman-Projekts von seinem ursprünglichen Eigentümer: Tavultesoft. SIL hat Zugriff auf die Ressourcen, um die weitere Entwicklung durch den ursprünglichen Entwickler durch die Hinzufügung einiger Supportmitarbeiter und eines Benutzerforums zu unterstützen.

Abhängig von der Komplexität der Sprache/des Schriftsystems, das die Tastatur unterstützen soll, kann das Projekt möglicherweise nur mit den Funktionen abgeschlossen werden, die von Keymans grafischer Benutzeroberfläche unterstützt werden. Die komplexeren Funktionen wie Tottasten, kontextbezogene Neuanordnung und Ersetzung erfordern jedoch die Verwendung von Keymans Tastaturbeschreibungssprache (einer Codier-/Skriptsprache), die für den typischen Endbenutzer eine ziemlich steile Lernkurve aufweist.

Diese Beschreibungssprache ist sehr flexibel und erweiterbar und ermöglicht komplexe Textbearbeitung und -verarbeitung, einschließlich Unicode-Normalisierung, kontextbasierter Glyphenneuanordnung und -ersetzung. Sie bietet auch Funktionen, die eher einer richtigen „Eingabemethode“ ähneln (was bedeutet, dass sie einige grundlegende grafische Überlagerungselemente/-fenster enthält), wie z. B. automatische oder durch Drücken und Halten angezeigte Popup-Listen möglicher Ausgaben. Sie bietet auch eine einzigartige und praktische Funktion, bei der wiederholte Tastenanschläge/das Tippen auf eine Taste verwendet werden, um durch eine sich wiederholende Liste von Ausgaben zu blättern. Diese Funktion gefällt mir besonders gut! Obwohl man eine lange Liste von Zeichen in einer Taste speichern könnte, finde ich es praktischer und nützlicher, höchstens 2-5 zu haben. Ich verwende sie auf den Klammertasten, um Zugriff auf einige ungewöhnliche Klammern zu erhalten, die von einer von mir verwendeten Skriptsprache verwendet werden, sowie auf anderen Symboltasten, um auf nicht oft verwendete Symbole zuzugreifen. Es ist großartig, weil ich mir keine bestimmte Modifikatorkombination merken muss, sondern einfach auf die Taste drücke, bis das gewünschte Zeichen gedruckt wird. Wenn ich es versehentlich übersehe, drücke ich einfach weiter, bis es wieder erscheint. Es kann auch so eingerichtet werden, dass automatische Ersetzungen vorgenommen werden, ähnlich wie die „Compose Key“ funktioniert; Ersetzen von +- durch ± und -+ durch ∓ und ähnliche Sequenzen für Zeichen wie ≤ ≰ ⪇ ≦ ≨ ≮ ≲ ≠ und so weiter.

Wie ich oben bereits erwähnt habe, scheint mir die Sprache, die zur Erstellung der erweiterten Funktionen verwendet wird, nicht gerade ideal und intuitiv zu sein. Ich fand auch einige derDokumentationdass die Syntax und das „Vokabular“ dieser Tastaturbeschreibungssprache etwas vage, mehrdeutig oder verwirrend sind und einer Erweiterung, Erweiterung oder Verbesserung bedürfen. Dies scheint sich jedoch zu verbessern und wird noch weiterentwickelt. Das Benutzerforum scheint nicht sehr aktiv zu sein (es gibt dort nicht viel!), obwohl Antworten auf Fragen anscheinend schnell gepostet werden.
Noch wichtiger ist meiner Meinung nach, dass die Sprache selbst schwerfällig, übermäßig/unnötig komplex und ein wenig kontraintuitiv erscheint, was die Art und Weise betrifft, wie bestimmte Verwendungen/Funktionen im Code notiert/beschrieben werden müssen –AberIch bin kein Entwickler/Programmierer, daher sollte meine Einschätzung in diesem Kontext betrachtet werden und„mit Vorsicht zu genießen“. Ich habe festgestellt, dass die Entwickler recht offen dafür zu sein scheinen, Funktionswünsche, Vorschläge und Feedback zur Software, zur Skriptsprache und auch zur Dokumentation zu berücksichtigen und auszuwerten.

Glücklicherweise unterstützt Keyman bereits über 1.000 Sprachen und die Quelldateien/der Quellcode dieser Sprachen können beobachtet, untersucht, geändert und sogar kopiert werden, um sie in Ihre eigenen Projekte einzufügen und wiederzuverwenden.

Es können verschiedene Datei- und Pakettypen generiert werden, von verschiedenen Quelldateitypen bis hin zu vollautomatischen Installationspaketen, die die Keyman-Engine, Symbole und sogar Schriftarten und natürlich die Dateien für Tastaturlayout und Textverarbeitung enthalten. Sie können sogar benutzerdefinierte, vom Benutzer umschaltbare Einstellungen erstellen, die verschiedene Verhaltensweisen Ihrer Tastatur aktivieren.

Es ist bedauerlich, dass Keyman nicht die Möglichkeit hat, zumindest die nativen Tastaturlayoutformate des Betriebssystems zu importieren. Das wäre wirklich außerordentlich hilfreich und unglaublich fantastisch! Es ist jedoch Open Source, sodass jemand mit den Fähigkeiten, der Motivation und der Zeit damit beginnen könnte, daran zu arbeiten. Es könnte auch möglich sein, mit genügend Anfragen und Kommentaren in ihrem Forum ihre Entwickler davon zu überzeugen, daran zu arbeiten.
Ein solches Projekt könnte auch ein guter Kandidat sein, um es an einen preiswerten freiberuflichen Programmierer auszulagern, der im Ausland nach Arbeit sucht. Leider werden viele der Funktionen von Keyman von den Tastaturlayout-/Eingabe-APIs von Windows und MacOS einfach nicht unterstützt, sodass es einfach nicht möglich ist, zu versuchen, Keyman die nativen Tastaturlayoutdateien generieren zu lassen.

~~~~~~ Das Ändern der Ausgabe/Funktion von Tasten, die keinen Text erzeugen (also: Zusatz-/Befehlstasten, Funktionstasten, Medientasten, Bearbeitungstasten (Auf, Ab, Rücktaste usw.) usw.) wird von den meisten Betriebssystemen nicht als Teil eines Tastaturlayouts angesehen und von Windows überhaupt nicht nativ unterstützt. MacOS bietet eine Möglichkeit, Zusatztasten in der Tastatur-Systemsteuerung neu zuzuweisen, und es gibt verschiedene Tools für die verschiedenen *nix-Varianten, die ähnliche, oft umfangreichere Anpassungen ermöglichen.
Es gibt ein Drittanbietertool für Windows namensKbd [ Bearbeiten ]das eigentlich Standard-KLC-Dateien und DLL-Installationspakete für Windows generiert. KbdEdit ist so ziemlich so, wie ich mir MSKLC vorstelle... Ziemlich leistungsstark und flexibel genug, um so ziemlich alles zu können – einschließlich der Erstellung sehr komplexer Tastaturlayouts mit verketteten Deadkeys... Es hat auch die Fähigkeit, jede Taste zahlreichen obskuren v_keys neu zuzuweisen, darunter den Modifikatortasten auf japanischen/asiatischen Tastaturen. Eine kreative, zweckentfremdete Verwendung dieser obskuren Modifikatortasten könnte möglicherweise die Lücke zwischen den Diskrepanzen zwischen den Betriebssystemen schließen, die ich zuvor erwähnt habe; aber es gibt keine direkte oder offensichtliche Möglichkeit, dies umzusetzen. Ich glaube, dass eine Windows-Tastatur technisch gesehen tatsächlich bis zu 15 separate Umschalt-/Modifikatortastenzustände/-ebenen/-schichten haben kann! Eine davon (Kana-Taste) kann gesperrt/umgeschaltet werden – wie die Feststelltaste. Die Tastaturen funktionieren ohne zusätzliche oder Drittanbieter-Software. Aber es gibt natürlich kein Tool, um sie auf Mac oder Linux zu portieren.

Karabinerist das MacOS-Analogon, obwohl es eine völlig andere Prämisse hat und eigentlich nichts direkt mit Tastaturlayouts an sich zu tun hat; obwohl es eine XML-basierte native Sprache hat, die es ermöglicht, benutzerdefinierte Modifikatortasten und Tastenverhalten zu erstellen (z. B. dass eine Modifikatortaste ein Zeichen ausgibt, wenn sie allein angetippt und nicht als Modifikator verwendet wird, und so weiter). Damit ein benutzerdefinierter Modifikator nützlich ist, müssen alle möglichen gewünschten Ausgaben manuell mit einer Sprache programmiert werden, die nicht speziell für diesen Zweck entwickelt wurde. Aber es ist extrem vielseitig und leistungsstark und kann einige ziemlich coole Tricks und Funktionen auf niedriger Ebene ausführen. Es ist außerdem kostenlos!

Ukuleleist ein kostenloses Tool für MacOS, das native Tastaturlayoutdateien und -pakete generiert. Es hat eine viel leistungsfähigere und intuitivere Benutzeroberfläche als MSKLC und ein sehr hilfreiches Forum, das vom Entwickler häufig besucht wird. Es ist ebenfalls Eigentum von SIL, obwohl es nicht Open Source ist. Es wäre schön, wenn die GUI von Ukelele in das Keyman Developer-Paket integriert würde, beispielsweise zum Erstellen von Tottasten. Und natürlich kann es keine Layouts von anderen Plattformen importieren oder exportieren.

Antwort2

Ja, und es ist ziemlich unkompliziert.

Mac OS Unter Mac OS ist alles an Bord, einfache und schrittweise Anleitungen finden SieHier

Windows Microsoft bietet hier eine eigene Anleitungsliste an: http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx

Linux Erstellen eines benutzerdefinierten Linux-Tastaturlayouts mit Hilfe vonxkb.

Eine ähnliche Frage wurde einmal auf StackOverflow gestellt: https://stackoverflow.com/questions/826986/how-to-make-a-custom-keyboard-layout

verwandte Informationen