Wie erstelle ich eine komplizierte benutzerdefinierte XKB-Datei für Sway?

Wie erstelle ich eine komplizierte benutzerdefinierte XKB-Datei für Sway?

Sway verwendet Wayland, daher werden alle XKB-Dateien von Sway und nicht von X analysiert.

  • Ich möchte eine Ebene auf der Tastatur hinzufügen (wahrscheinlich mit Hyper)
  • Ich möchte einige Modifikatortasten umstellen

Ich habe mir viele Websites angesehen, weiß aber immer noch nicht, wie ich das erreichen soll. XKB besteht aus so vielen Teilen und ich bin mir nicht sicher, was wohin gehört. Ich möchte eine Beispieldatei (oder -dateien) und eine Erklärung.

Antwort1

Angenommen, Ihre XKB-Konfigurationsdatei heißt „custom-xkb“ und ist in gespeichert ~/.config. Dann fügen Sie Folgendes in Ihre Sway-Konfigurationsdatei ein:

input "type:keyboard" {           # or input <identifier> 
  xkb_file ~/.config/xkb/custom-xkb
}

Das wissen Sie wahrscheinlich schon – der schwierige Teil ist das Erstellen der custom-xkbDatei. Ich bin kein Spezialist, aber ich würde Folgendes tun:

  1. Ich würde im Internet nach „xkb-Spezifikation“ suchen und Ihnen alle möglichen Informationen liefern, von Wikipedia bis zur x.orgvollständigen Spezifikation. Sie verfügen wahrscheinlich bereits über eine Sammlung solcher Ressourcen.
  2. Dann würde ich in meinem System die Standardkonfigurationsdateien für die Tastatur finden, vielleicht in \etc\X11\xdg\oder so (möglicherweise müssen Sie ein wenig suchen: in meiner seltsamen Distribution ist der Pfad /nix/store/n1mlvwrkdlm77b4ai9s26kwji89jjb65-xkeyboard-config-2.27/share/X11/xkb/).
  3. In diesem Pfad würde ich nach zwei Unterverzeichnissen suchen: symbolsund types. Im ersten befinden sich die Tastaturbelegungen für alle verschiedenen Sprachen und in jeder Datei die Tastaturbelegungsvarianten für diese Sprache. Im zweiten Unterverzeichnis werden die virtuellen Tasten definiert (wie Mod1, Control usw.).
  4. Dann würde ich den Inhalt dieser Dateien auf mein Gerät kopieren ~/.config/xkb/custom-xkbund mit verschiedenen Bearbeitungen experimentieren, um zu sehen, was passiert. Und ich würde versuchen, meine Zweifel mithilfe der Internetressourcen auszuräumen, die ich gesammelt habe. Wenn etwas Katastrophales passiert, würde ich Strg+Alt+F1 drücken, dann einen Nox-Login durchführen, die Zeile kommentieren xkb_file ~/.config/xkb/custom-xkbund den X-Server neu starten ...
  5. Ich würde den Inhalt der Unterverzeichnisse rules, geometryund nicht verändern keycodes. Aber Sie müssen auch dort einen Blick hineinwerfen.

Ich habe nichts davon wirklich gemacht, aber vielleicht funktioniert es. Ich denke, dass ein Blick auf die tatsächlichen Konfigurationsdateien hilft, herauszufinden, was die Tutorials und Anleitungen eigentlich sagen ...

Viel Glück

Antwort2

XKB ist in der Tat ein wirklich kompliziertes Biest. (Zumindest meiner Erfahrung nach. Es scheint einige seltsame Designentscheidungen zu geben, die ich darauf zurückführe, dass die Erstveröffentlichung schon 1996 war, und es ist meiner Meinung nach auch nicht die beste Dokumentation.)

Durch das Experimentieren mit vielen unterschiedlichen Konfigurationen habe ich es geschafft, ein gewisses Verständnis zu erlangen und habe mich auf eine Teilmenge der Funktionalität festgelegt, deren Verhalten ich zuverlässig erraten und mit der ich bequem Layouts erstellen kann, während ich gleichzeitig noch genügend Flexibilität habe, um auszudrücken, was ich erreichen möchte.

Das Schreiben eines umfassenden Tutorials über das, was ich gelernt habe, würde ziemlich viel Zeit in Anspruch nehmen, aber Sie können einen Blick auf meine Konfigurationsdateien werfen, die hoffentlich leichter verständlich sind, als das Lesen der Standardlayouts.

https://github.com/Isti115/dotfiles/tree/master/.config/xkb

(Sie sind in meiner Sway-Konfiguration enthaltenHier.)

Ich empfehle insbesondere die Lenovo-L13.xkbDatei, die ich für meinen Laptop erstellt habe, da sie mehrere Ebenen hat. (Ich habe sogar meine Leertaste in einen Modifikator verwandelt, während ich sie gedrückt hielt mitAbonnieren.) Das Vortex Core-Layout ist ebenfalls gut, aber das ist nicht das ganze Bild, da die Tastatur selbst auch programmierbar ist.

Wenn Sie etwas benötigen, das hier nicht zu finden ist, sollten Sie sich, wie bereits in der vorherigen Antwort erwähnt, zunächst die integrierten Dateien ansehen. Sie können sich einen Überblick darüber verschaffen, welche davon für Ihre Tastatur verwendet werden, indem Sie verwenden setxkbmap -print. Von da an können Sie die importierten Definitionen dort nachschlagen, wo sich Ihre xkbDateien befinden. (Sofern Sie nicht NixOS verwenden, befinden sie sich wahrscheinlich an einem sinnvollen Ort, beispielsweise /usr/share/X11/xkbunter Arch.)

verwandte Informationen