setxkbmapを使用して、バックスペースをエスケープとして機能させるにはどうすればよいですか?


8

キャップをバックスペースにするsetxkbmapなど、いくつかのオプションがあるようです-option caps:backspace。しかし、バックスペースをエスケープキーにするオプションを見つけることができないようです。バックスペースキーをエスケープキーに変更する単一のsetxkbmapコマンドを作成するにはどうすればよいですか?

回答:


13

新しいオプションを定義する必要があります。
まず、たとえば/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値はコンマ+スペースで区切られていることに注意してください)。


最後に、evdevevdev.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バックアップコピーを作成する場合)、実際にそれらのファイルを編集するインプレース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.