추가 읽기

추가 읽기

키보드 레이아웃/매핑을 변경할 수 있었습니다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-configurationX11 GUI 터미널 에뮬레이터에서 실행하면 X11 키보드 레이아웃에 영향을 미칩니다.
  • 스크립트 setupcon는 이러한 XKB 설정을 가져와 유틸리티에 전달하여 키맵을 생성하고 ckbcomp키맵을 커널 가상 터미널에 사용/로드합니다. loadkeyskbdcontrol
    • 이 스크립트는 시스템이 부팅될 때 서비스에 의해 실행됩니다.
    • 다른 시간에는 수동으로 실행할 수도 있습니다.

다른 시스템 운영 체제는 다르게 작동하지만 단일 소스도 있습니다.

  • XKB 레이아웃, 변형 및 옵션은 /etc/X11/xorg.conf.d/00-keyboard.conf단일 소스에 저장됩니다.
    • 이 파일은 시작 시 X11 서버에서 직접 읽고 X11 키맵을 직접 설정합니다.
    • 이 파일은 시작 시 구문 분석됩니다 systemd-localed. systemd-localed서비스가 자체 메모리 정보로 파일을 덮어쓰기 때문에 실행 중에는 텍스트 편집기로 파일을 유용하게 편집할 수 없습니다 .
    • localectlXKB 정보를 변경하려면 다른 서버와 통신하고 다시 다른 서버와 통신하는 실행이 필요합니다 systemd-localed.
  • systemd-localed의 매핑을 사용하여 XKB 설정을 가상 터미널 키맵 이름으로 변환한 /usr/share/systemd/kbd-model-map후 작성합니다 /etc/vconsole.conf. Debian 시스템과 달리 XKB 정보를 기반으로 맵을 동적으로 생성하지 않고 맵 파일에 나열된 사전 제공 정적 맵만 선택합니다.
  • systemd-vconsole-setup부트로더에서 실행하고 를 /etc/vconsole.conf실행하여 키맵을 읽고 커널 가상 터미널에 로드합니다 loadkeys.

추가 읽기

관련 정보