Come posso fare in modo che il backspace funga da escape usando setxkbmap?


8

Sembra che ci siano diverse opzioni setxkbmapcome quella -option caps:backspaceche rende caps un backspace. Tuttavia, non riesco a trovare un'opzione che renda backspace una chiave di escape. Come posso creare un singolo comando setxkbmap che modifica la chiave backspace in una chiave di escape?

Risposte:


13

Dovrai definire una nuova opzione.
Innanzitutto, crea un nuovo file di simboli, ad esempio /usr/share/X11/xkb/symbols/bkspcon il seguente contenuto:

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

Quindi crea la nuova opzione in questo modo:

bksp:bksp_escape  =   +bksp(bksp_escape)

(dove bkspè il nome del file simbolo e bksp_escapeè il nome del gruppo che è stato definito in questo file) e aggiungerlo alla lista delle opzioni nelle regole SET si sta usando - assumendo evdev- in modo da metterlo in /usr/share/X11/xkb/rules/evdevsotto ! option = symbols:

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

Aggiungilo anche a /usr/share/X11/xkb/rules/evdev.lst(con una breve descrizione) sotto ! option(ad es. Prima ctrl):

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

È quindi possibile eseguire, come utente normale:

setxkbmap -layout us -option bksp:bksp_escape

per abilitare l'opzione e far BKSPcomportare come ESC.
Puoi anche verificare se:

setxkbmap -query

rapporti:

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

e se

setxkbmap -print

uscite:

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 puoi rendere permanente l'opzione tramite dconf(o gsettingsnel terminale) ad es. Aggiungi 'bksp:bksp_escape'alla chiave org> gnome> desktop> input-sources> xkb-options (nota che in dconfvalori sono separati da virgola + spazio).


Infine, nota che entrambi evdeve evdev.lstverranno sovrascritti su futuri aggiornamenti (ma non sul tuo bkspfile di simboli personalizzati ), quindi dovrai modificarli di nuovo ogni volta che il pacchetto che li possiede viene aggiornato (su archlinux è xkeyboard-config). È più facile scrivere una sceneggiatura che lo faccia, ad es

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

Se sei soddisfatto del risultato, usa sed -i(o -i.bakse vuoi fare copie di backup) per modificare effettivamente quei file sul posto .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.