저는 콘솔 설정을 사용하여 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
팩.
만들다
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 ] }; };
편집
rules/xorg
: 이 섹션을 찾아! option = symbols
추가하세요.custom:rotatectrlcapsescape = +custom(rotatectrlcapsescape)
(선택 사항) 업데이트
rules/xorg.lst
및rules/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