키보드 레이아웃/매핑을 변경할 수 있었습니다X 윈도우 시스템사용 중입니다 ~/.Xmodmap
(제 생각엔 당신도 합격할 수 있을 것 같아요)X-프로토콜직접 사용도서관X 프로토콜 호출에 대한 래퍼로).
콘솔/tty에서 .on을 사용할 수 있었습니다(예: X가 실행되지 않을 때) loadkeys
.
키보드 레이아웃을 비슷하게 사용자 정의할 수 있는 방법이 있습니까?단일 소스, 다음과 같은 방식으로 X와 콘솔에 영향을 미칩니다. "X 및 콘솔에 구애받지 않는" 방식으로요?
(내가 생각할 수 있는 유일한 방법은 커널의 입력 인터페이스와 대화 evdev
하고 원하는 입력을 ( uinput
?를 통해) 보내는 "키보드 드라이버"를 작성하는 것입니다. 그러나 그것이 의미가 있는지는 모르겠습니다. 더 쉬운 방법이 있나요?)
답변1
예, 방법이 있습니다. 이것이 실제로 데비안의 콘솔 설정 패키지가 하는 일입니다.
- 키보드 레이아웃은 관리자가 파일 이름으로 생성합니다
keyboard
./etc/default/keyboard
이는 단일 소스이며 텍스트 편집기를 사용하여 편집할 수 있습니다. - 프로그램
setxkbmap
에는 이와 동일한 XKB 설정이 제공되며 이에 따라 X11 서버를 구성합니다.- 키보드 구성 패키지의 설치 후 유지 관리 프로그램 스크립트에서 X11 모니터가 있음을 발견하면
setxkbmap
간단히 setup을 실행하고 설정합니다./etc/default/keyboard
따라서dpkg-reconfigure keyboard-configuration
X11 GUI 터미널 에뮬레이터에서 실행하면 X11 키보드 레이아웃에 영향을 미칩니다.
- 키보드 구성 패키지의 설치 후 유지 관리 프로그램 스크립트에서 X11 모니터가 있음을 발견하면
- 스크립트
setupcon
는 이러한 XKB 설정을 가져와 유틸리티에 전달하여 키맵을 생성하고ckbcomp
키맵을 커널 가상 터미널에 사용/로드합니다.loadkeys
kbdcontrol
- 이 스크립트는 시스템이 부팅될 때 서비스에 의해 실행됩니다.
- 다른 시간에는 수동으로 실행할 수도 있습니다.
다른 시스템 운영 체제는 다르게 작동하지만 단일 소스도 있습니다.
- XKB 레이아웃, 변형 및 옵션은
/etc/X11/xorg.conf.d/00-keyboard.conf
단일 소스에 저장됩니다.- 이 파일은 시작 시 X11 서버에서 직접 읽고 X11 키맵을 직접 설정합니다.
- 이 파일은 시작 시 구문 분석됩니다
systemd-localed
.systemd-localed
서비스가 자체 메모리 정보로 파일을 덮어쓰기 때문에 실행 중에는 텍스트 편집기로 파일을 유용하게 편집할 수 없습니다 . localectl
XKB 정보를 변경하려면 다른 서버와 통신하고 다시 다른 서버와 통신하는 실행이 필요합니다systemd-localed
.
systemd-localed
의 매핑을 사용하여 XKB 설정을 가상 터미널 키맵 이름으로 변환한/usr/share/systemd/kbd-model-map
후 작성합니다/etc/vconsole.conf
. Debian 시스템과 달리 XKB 정보를 기반으로 맵을 동적으로 생성하지 않고 맵 파일에 나열된 사전 제공 정적 맵만 선택합니다.systemd-vconsole-setup
부트로더에서 실행하고 를/etc/vconsole.conf
실행하여 키맵을 읽고 커널 가상 터미널에 로드합니다loadkeys
.
추가 읽기
keyboard
. 콘솔 설정 사용 설명서. 더반.ckbcomp
. 콘솔 설정 사용 설명서. 더반.- 앤드류 T. 영(2011).키보드 구성.
- Xkb는 어디서 구성을 얻나요?
- https://unix.stackexchange.com/a/326804/5132