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백업 복사본을 만들고 싶다면).제자리에.

관련 정보