Вы должны будете определить новую опцию.
Сначала создайте новый файл символов, например, /usr/share/X11/xkb/symbols/bksp
со следующим содержимым:
partial alphanumeric_keys
xkb_symbols "bksp_escape" {
key <BKSP> { [ Escape ] };
};
Затем создайте новую опцию, как это:
bksp:bksp_escape = +bksp(bksp_escape)
(где bksp
это имя файла символ и bksp_escape
это имя группы , которая была определена в этом файле) и добавьте его в список опций в правилах вы используете - если evdev
- так поместить его в /usr/share/X11/xkb/rules/evdev
соответствии с ! option = symbols
:
! option = symbols
bksp:bksp_escape = +bksp(bksp_escape)
...........
grp:shift_toggle = +group(shifts_toggle)
altwin:menu = +altwin(menu)
Добавьте его также /usr/share/X11/xkb/rules/evdev.lst
(с кратким описанием) в ! option
(например, прямо перед ctrl
):
! option
........
bksp Backspace key behavior
bksp:bksp_escape Backspace as Escape
ctrl Ctrl key position
ctrl:nocaps Caps Lock as Ctrl
Затем вы можете запустить как обычный пользователь:
setxkbmap -layout us -option bksp:bksp_escape
включить опцию и заставить BKSPсебя вести себя как ESC.
Вы также можете проверить, если:
setxkbmap -query
доклады:
rules: evdev
model: pc104
layout: us
options: bksp:bksp_escape
и если
setxkbmap -print
выходы:
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)" };
};
В Gnome 3 вы можете сделать опцию постоянной через dconf
(или gsettings
в терминале), например, добавить 'bksp:bksp_escape'
к ключу org> gnome> desktop> input-sources> xkb-options (обратите внимание, что в dconf
значениях они разделяются запятой + пробелом).
Наконец, обратите внимание, что оба evdev
и evdev.lst
будут перезаписаны при будущих обновлениях (но не в вашем bksp
файле пользовательских символов), поэтому вам придется редактировать их снова каждый раз, когда обновляется пакет, которому они принадлежат (в archlinux это xkeyboard-config
). Проще написать скрипт, который делает это, например
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
Если вы довольны результатом, используйте sed -i
(или -i.bak
если вы хотите сделать резервные копии) фактическое редактирование этих файлов на месте .