回答:
新しいオプションを定義する必要があります。
まず、たとえば/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
バックアップコピーを作成する場合)、実際にそれらのファイルを編集するインプレース。