Wie kann ich xkb-Anpassungen in GNOME automatisch laden?


11

Nach meiner Frage zum Anpassen von Schlüsselzuordnungen in Wayland habe ich herausgefunden, dass dies xmodmapanscheinend veraltet ist, aber xkb sollte in Wayland "funktionieren". Leider ist xkb viel komplizierter und entsprechend schlechter dokumentiert. Ich habe an der Arbeit aus den Strophen kann ich aus , basierend auf Informationen benötigen eine Frage zu tauschen CmdundCtrl , weiter Caps Lock Frage , einige der Links in den Antworten zu lesen und von meinen System - Dateien, aber ich weiß nicht , wie sie anzuwenden auf eine Weise, die automatisiert werden kann und nicht mit GNOME in Konflikt steht.

Dies sind die Strophen, die ich ausgearbeitet und erfolgreich getestet habe xkbcomp.

partial alphanumeric_keys
xkb_symbols "pound" {
    // Put sterling on RAlt-3 and numbersign on Shift-3.
    key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};

// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
    key <RWIN> { [ Control_R ] };
    modifier_map Control { <LCTL>, <RWIN> };
    modifier_map Mod4 { <LWIN> };
};

partial modifier_keys
xkb_symbols "shiftcaps" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ VoidSymbol, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Ich habe die ersten beiden /usr/share/X11/xkb/symbols/macbookund die dritte im shiftcapsselben Verzeichnis abgelegt , und mit xkbcompetc funktionieren sie, wenn sie über das Standardlayout geladen werden gb(mac).

Ich bearbeite dies, um ein Update vorzunehmen und meine Antwort zu klären. Meine Pfund-Anpassung hat kürzlich aufgehört zu funktionieren, also habe ich überprüft, was sich in GB (Mac) geändert hat, und festgestellt, dass ich , threesuperiorder key <AE03>Zeile etwas hinzufügen muss .

Ich denke, evdev.xmlwird von Gnome-Tweak-Tool verwendet, um diese Optionen in der GUI verfügbar zu machen. Folgendes habe ich hinzugefügt:

<group allowMultipleSelection="true">
  <configItem>
    <name>macbook</name>
    <description>Macbook customisations</description>
  </configItem>
  <option>
    <configItem>
      <name>macbook:pound</name>
      <description>Hash on Shift-3, Sterling on AltGr-3</description>
    </configItem>
  </option>
  <option>
    <configItem>
      <name>macbook:rcmdctrl</name>
      <description>Right Cmd key acts as Ctrl</description>
    </configItem>
  </option>
</group>
<group allowMultipleSelection="false">
  <configItem>
    <name>shiftcaps</name>
    <description>Caps Lock with Shift</description>
  </configItem>
  <option>
    <configItem>
      <name>shiftcaps:shiftcaps</name>
      <description>Caps Lock requires Shift to toggle</description>
    </configItem>
  </option>
</group>

1
gnome sollte Ihre Optionen sehen (und die dconfSchlüsselwerte unter beachten org.gnome.desktop.input-sources), solange Sie sie zu den xkb-Regeln hinzufügen, die Ihr System verwendet, dh zu den richtigen Dateien, siehe meinen Beitrag hier
don_crissti

Vielen Dank. Das Definieren von Optionen in den evdev-Dateien war das fehlende Puzzleteil, und ich muss es jetzt mit dem dconf-Editor tun, was ich will.
Realh

Auf meinem System (Debian) habe ich auch gefunden /usr/share/X11/xkb/rules/evdev.xml. Ich bin mir nicht sicher, wofür es ist. Die GNOME-Einstellungs-App stürzte beim Öffnen der Tastaturoptionen ab, wenn ich einen Syntaxfehler darin machte, aber ich kann die Optionen in der GUI nicht finden. Ich habe nach der Zeile mit den entsprechenden Zeilen hinzugefügt <optionList>. Ich kann sie hier nicht posten, da die Kommentare eingeschränkt sind.
Realh

Gestatten Sie mir hinzuzufügen, dass xmodmap um 1996, als XKB auf den Markt kam, veraltet war. Dh Jahre vor der Erfindung von Wayland.
Robert Siemer

Antworten:


1

Die Antwort von don_crissti auf die andere Frage lieferte das fehlende Puzzleteil. Ich habe Optionen in den evdev-Dateien wie beschrieben definiert und sie dem org.gnome.desktop.input-sources.xkb-optionsgsetting hinzugefügt. Es funktioniert perfekt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.