데비안과console-setup

데비안과console-setup

참고: 한 달 전쯤 슈퍼유저에게 이런 질문을 올렸는데 그때까지 답변이 없고 리눅스 관련 질문이라 여기에 올립니다.

키보드의 esc 키와 caps_lock 키를 바꾸고 싶습니다. setxkbmap -option caps:swapescape작업을 완료하세요. 하지만 X에서만 가능합니다. 키 입력은 기본적으로 가상 콘솔에서 작동합니다. VC에서 내가 원하는 방식으로 실행되도록 하려면 어떻게 해야 합니까?

답변1

데비안과console-setup

Debian Linux 및 Debian FreeBSD에서는 X 서버와 커널 가상 터미널이 일련의 구성 정보를 공유하도록 설계되었습니다. 이 console-setup패키지는 X 서버의 키보드/글꼴 구성을 가져와 변환하고 이를 사용하여 커널 가상 터미널을 구성하는 도구와 시작 스크립트를 제공합니다.

특히 서비스는 udev 규칙에 따라 커널 가상 터미널 장치에 대해 실행되는 번역된 키보드 및 글꼴 설정 지침이 포함된 스크립트를 생성하는 명령을 console-setup호출합니다 . 키맵은 XKB에서 format 으로 변환 되고 udev 규칙에서 호출된 빌드 스크립트가 실행됩니다 .setupcon --save/etc/console-setuploadkeysckbcomploadkeys

따라서 Debian Linux 및 Debian FreeBSD에서는 ,,,변수가 있는지 확인해야 합니다 XKBMODEL. 특히 귀하의 경우에는 변수가 있는지 확인해야 합니다. 그런 다음 패키지가 올바르게 설치되었는지 확인해야 합니다. .XKBLAYOUTXKBVARIANTXKBOPTIONS/etc/default/keyboardXKBOPTIONScaps:swapescapeconsole-setup

리눅스 시스템

시스템 운영 체제에서는 통합이 데비안보다 약간 나쁩니다. 이름이 지정된 구성 파일 /etc/vconsole.conf과 시스템이 부팅될 때 systemd-vconsole-setup.service(커널의 가상 터미널 하위 시스템의 존재를 알리는 udev 규칙에 대한 응답으로) 파일을 처리하는 서비스가 있습니다 . 그러나 이것은 X 서버 구성과 전혀 통합되지 않습니다.

이 파일에는 에 전달된 키맵을 나타내는 설정이 vconsole.conf있으며 , 자체적으로 명시적으로 실행할 필요도 없습니다. 하지만KEYMAPloadkeys그것은 전적으로 당신에게 달려 있습니다(사용자 정의) 키맵을 만들어 교체 Caps Lock하고 찾을 수 있는 Escape위치에 배치하세요 .loadkeys

보다 연합된 설정을 얻으려면 두 개의 다른 서비스 systemd-localed와 데스크탑 버스가 관련되어야 합니다. 예를 들어 혼자 달리는 경우

localectl set-x11-keymap pl pc105 "" "caps:swapescape"
로케일 D-BUS 서비스는 /etc/vconsole.conf최선의 추측을 기반으로 다시 작성 됩니다.가장 가까운 동등물커널 가상 터미널 맵. 이 가장 가까운 동등물은 다음과 같을 수 없습니다.정확히그러나 옵션 등을 완전히 무시한다는 것을 알 수 있습니다.

물론 ckbcompDebian을 사용하여 직접 XKB 키맵을 수동으로 변환할 수도 있습니다. ☺

추가 읽기

답변2

사용loadkeys.

교체하려면 Esc콘솔 Caps Lock에서 다음을 실행하세요.

printf 'keycode 1 = Caps_Lock Caps_Lock\nkeycode 58 = Escape Escape\n' | sudo loadkeys -

관련 정보