사용자 정의 XKBOption 추가

사용자 정의 XKBOption 추가

저는 콘솔 설정을 사용하여 X와 콘솔 모두에서 작동하는 방법을 찾고 있습니다(예: xkboptions, X 관련 방법과 같은 것은 없습니다 xmodmap). XKBoptions를 사용하면 조합이 원하는 효과를 얻지 ctrl:swapcaps못합니다 caps:swapescape. 즉, Caps Lock(양호)에 제어권을 부여하고 Control 키와 Esc 키에 Caps Lock을 적용합니다.

궁금하거나 혼란스러운 분들을 위해, 더 일반적으로 사용되는 기능을 쉽게 접근할 수 있는 키에 배치하여 키보드 레이아웃을 최적화하는 것이 합리적입니다.

저는 Caps Lock을 전혀 사용하지 않기 때문에 Control을 CapsLock에 놓고 Escape를 Control에 두고 Escape 키는 그대로 두는 솔루션을 선택하겠습니다(CapsLock 기능이 없음).

답변1

사용자 정의 XKBOption 추가

데비안은 Xorg와 콘솔 모두에 XKB 시스템을 사용하므로 한 가지 접근 방식은 사용자 정의 XKBOption을 추가하는 것입니다. 데비안의 관련 파일은 /usr/share/X11/xkb파일 아래에 있습니다 .만약에의지하다xkb-data.

  1. 만들다symbols/custom

    // rotate the caps lock, left control, and escape keys so left control is on
    // the caps lock key
    partial modifier_keys
    xkb_symbols "rotatectrlcapsescape" {
        replace key <CAPS>      {  [ Control_L ] };
        replace key <LCTL>      {  [ Escape    ] };
        replace key <ESC>       {  [ Caps_Lock ] };
    };
    
  2. 편집 rules/xorg: 이 섹션을 찾아 ! option = symbols추가하세요.

    custom:rotatectrlcapsescape = +custom(rotatectrlcapsescape)
    
  3. (선택 사항) 업데이트 rules/xorg.lstrules/xorg.xml(독자의 연습용으로 남겨두었습니다).

이제 custom:rotatectrlcapsescape사용자 정의 XKBOption을 사용할 수 있습니다 . Debian 지침에 따르면 /etc/default/keyboard기본적 으로 XKBOPTIONS="custom:rotatectrlcapsescape".

rules/evdev*Ubuntu/ Gnome 은 rules/xorg*.

결점

  • 아래 저장소 패키지 파일을 수정하는 것은 /usr/좋지 않습니다 . 수정된 파일은 xkb-data다음에 포함된 패키지( )가 업데이트될 때 손상될 수 있습니다.

답변2

콘솔 키보드 입력과 XWindow의 공통점은 두 경우 모두 커널의 USB 키보드 드라이버가 USB 키보드와 통신하여 스캔 코드를 생성한다는 것입니다. 시스템의 이 구성 요소를 변경하면 모든 키보드 입력에 영향을 미칩니다.

커널 트리의 소스 파일에서 정적 테이블 usb_kbd_keycode과 관련 코드를 참조하세요.drivers/hid/usbhid/usbkbd.c

관련 정보