Wie kann ich mit setxkbmap die Rücktaste als Escape verwenden?

8

Es scheint mehrere Optionen zu geben, setxkbmapz. B. -option caps:backspacedie Großbuchstaben zu einer Rücktaste machen. Ich kann jedoch anscheinend keine Option finden, die die Rücktaste zu einem Escape-Schlüssel macht. Wie erstelle ich einen einzelnen Befehl setxkbmap, der die Rücktaste in eine Escape-Taste ändert?

Alice Ryhl
quelle

Antworten:

13

Sie müssen eine neue Option definieren.
Erstellen Sie zunächst eine neue Symboldatei, z. B. /usr/share/X11/xkb/symbols/bkspmit folgendem Inhalt:

partial alphanumeric_keys
xkb_symbols "bksp_escape" {
    key <BKSP> { [ Escape ] };
};

Erstellen Sie dann die neue Option wie folgt:

bksp:bksp_escape  =   +bksp(bksp_escape)

(Wo bkspist der Name der Symboldatei und bksp_escapeder Gruppenname, der in dieser Datei definiert wurde) und fügen Sie ihn der Optionsliste in dem Regelsatz hinzu, den Sie verwenden - vorausgesetzt evdev- platzieren Sie ihn /usr/share/X11/xkb/rules/evdevunter ! option = symbols:

! option    =   symbols
  bksp:bksp_escape  =   +bksp(bksp_escape)
  ...........
  grp:shift_toggle  =   +group(shifts_toggle)
  altwin:menu       =   +altwin(menu)

Fügen Sie es auch zu /usr/share/X11/xkb/rules/evdev.lst(mit einer kurzen Beschreibung) unter ! option(z. B. kurz zuvor ctrl) hinzu:

! option
  ........
  bksp                 Backspace key behavior
  bksp:bksp_escape     Backspace as Escape
  ctrl                 Ctrl key position
  ctrl:nocaps          Caps Lock as Ctrl

Sie können dann als regulärer Benutzer Folgendes ausführen:

setxkbmap -layout us -option bksp:bksp_escape

um die Option zu aktivieren und sich so zu BKSPverhalten ESC.
Sie können auch überprüfen, ob:

setxkbmap -query

Berichte:

rules:      evdev
model:      pc104
layout:     us
options:    bksp:bksp_escape

und wenn

setxkbmap -print

Ausgänge:

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+inet(evdev)+bksp(bksp_escape)" };
    xkb_geometry  { include "pc(pc104)" };
};

In Gnome 3 können Sie die Option über dconf(oder gsettingsim Terminal) permanent machen, z. B. 'bksp:bksp_escape'zum Schlüssel org> gnome> desktop> Eingabequellen> xkb-options hinzufügen (beachten Sie, dass in dconfWerten durch Komma + Leerzeichen getrennt sind).


Beachten Sie schließlich, dass beide evdevund evdev.lstbei zukünftigen Upgrades überschrieben werden (jedoch nicht Ihre benutzerdefinierte bkspSymboldatei), sodass Sie sie jedes Mal erneut bearbeiten müssen, wenn das Paket, dem sie gehören, aktualisiert wird (unter Archlinux xkeyboard-config). Es ist einfacher, ein Skript zu schreiben, das dies tut, z

sed '/! option[[:blank:]]*=[[:blank:]]*symbols/a\
  bksp:bksp_escape  =   +bksp(bksp_escape)
' /usr/share/X11/xkb/rules/evdev

sed '/! option/a\
  bksp                 Backspace key behavior\
  bksp:bksp_escape     Backspace as Escape
' /usr/share/X11/xkb/rules/evdev.lst

Wenn Sie mit dem Ergebnis zufrieden Verwendung sed -i(oder , -i.bakwenn Sie Sicherungskopien erstellen möchten) , um tatsächlich die Dateien zu bearbeiten in-place .

don_crissti
quelle