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

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

バックスペースキーを大文字にするなど、setxkbmapいくつかのオプションがあるようです。-option caps:backspaceしかし、バックスペースキーをEscキーにするオプションが見つからないようです。バックスペースキーをEscキーに変更する単一のsetxkbmapコマンドをどのように生成できますか?

ベストアンサー1

新しいオプションを定義する必要があります。まず、次の内容などを含む
新しいシンボルファイルを作成します。/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(例:before 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)" };
};

dconfGnome 3では、(またはターミナルで)以下を追加してオプションを永久に作成できますgsettings'bksp:bksp_escape'org> gnome>デスクトップ>入力ソース> 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バックアップコピーを作成したい場合)。所定の位置に

おすすめ記事