Comment puis-je faire en sorte que le retour arrière agisse comme un d'échappement à l'aide de setxkbmap?


8

Il semble y avoir plusieurs options pour setxkbmap, par exemple, faire -option caps:backspacedes majuscules un retour arrière. Cependant, je n'arrive pas à trouver une option qui fasse du retour arrière une touche d'échappement. Comment créer une seule commande setxkbmap qui change la clé de retour arrière en une touche d'échappement?

Réponses:


13

Vous devrez définir une nouvelle option.
Créez d'abord un nouveau fichier de symboles /usr/share/X11/xkb/symbols/bkspavec par exemple le contenu suivant:

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

Créez ensuite la nouvelle option comme ceci:

bksp:bksp_escape  =   +bksp(bksp_escape)

(où bkspest le nom du fichier de symboles et bksp_escapele nom du groupe qui a été défini dans ce fichier) et ajoutez-le à la liste d'options dans l'ensemble de règles que vous utilisez - en supposant evdev- alors placez-le /usr/share/X11/xkb/rules/evdevsous ! option = symbols:

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

Ajoutez-le également /usr/share/X11/xkb/rules/evdev.lst(avec une brève description) sous ! option(par exemple juste avant ctrl):

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

Vous pouvez ensuite exécuter, en tant qu'utilisateur régulier:

setxkbmap -layout us -option bksp:bksp_escape

pour activer l'option et faire BKSPse comporter comme ESC.
Vous pouvez également vérifier si:

setxkbmap -query

rapports:

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

et si

setxkbmap -print

les sorties:

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)" };
};

Dans Gnome 3, vous pouvez rendre l'option permanente via dconf(ou gsettingsdans le terminal), par exemple, ajoutez 'bksp:bksp_escape'à l' organisation> gnome> bureau> sources d'entrée> clé xkb-options (notez que dansdconf valeurs sont séparées par une virgule + espace).


Enfin, notez que les deux evdevet evdev.lstseront remplacés lors des futures mises à niveau (mais pas votre bkspfichier de symboles personnalisé ), vous devrez donc les modifier à nouveau à chaque fois que le package qui les possède est mis à niveau (sur archlinux, c'est xkeyboard-config). Il est plus facile d'écrire un script qui fait cela, par exemple

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

Si vous êtes satisfait du résultat, utilisez sed -i(ou -i.baksi vous voulez faire des copies de sauvegarde) pour réellement éditer ces fichiers sur place .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.