참고: 한 달 전쯤 슈퍼유저에게 이런 질문을 올렸는데 그때까지 답변이 없고 리눅스 관련 질문이라 여기에 올립니다.
키보드의 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-setup
loadkeys
ckbcomp
loadkeys
따라서 Debian Linux 및 Debian FreeBSD에서는 ,,,변수가 있는지 확인해야 합니다 XKBMODEL
. 특히 귀하의 경우에는 변수가 있는지 확인해야 합니다. 그런 다음 패키지가 올바르게 설치되었는지 확인해야 합니다. .XKBLAYOUT
XKBVARIANT
XKBOPTIONS
/etc/default/keyboard
XKBOPTIONS
caps:swapescape
console-setup
리눅스 시스템
시스템 운영 체제에서는 통합이 데비안보다 약간 나쁩니다. 이름이 지정된 구성 파일 /etc/vconsole.conf
과 시스템이 부팅될 때 systemd-vconsole-setup.service
(커널의 가상 터미널 하위 시스템의 존재를 알리는 udev 규칙에 대한 응답으로) 파일을 처리하는 서비스가 있습니다 . 그러나 이것은 X 서버 구성과 전혀 통합되지 않습니다.
이 파일에는 에 전달된 키맵을 나타내는 설정이 vconsole.conf
있으며 , 자체적으로 명시적으로 실행할 필요도 없습니다. 하지만KEYMAP
loadkeys
그것은 전적으로 당신에게 달려 있습니다(사용자 정의) 키맵을 만들어 교체 Caps Lock하고 찾을 수 있는 Escape위치에 배치하세요 .loadkeys
보다 연합된 설정을 얻으려면 두 개의 다른 서비스 systemd-localed
와 데스크탑 버스가 관련되어야 합니다. 예를 들어 혼자 달리는 경우
localectl set-x11-keymap pl pc105 "" "caps:swapescape"로케일 D-BUS 서비스는
/etc/vconsole.conf
최선의 추측을 기반으로 다시 작성 됩니다.가장 가까운 동등물커널 가상 터미널 맵. 이 가장 가까운 동등물은 다음과 같을 수 없습니다.정확히그러나 옵션 등을 완전히 무시한다는 것을 알 수 있습니다.
물론 ckbcomp
Debian을 사용하여 직접 XKB 키맵을 수동으로 변환할 수도 있습니다. ☺
추가 읽기
- https://superuser.com/questions/709616/
- https://wiki.debian.org/Keyboard
systemd-vconsole-setup-service
. 시스템 매뉴얼 페이지. freedesktop.org.vconsole.conf
. 시스템 매뉴얼 페이지. freedesktop.org.- 카르스텐 힐베르트(2014-08-29). systemd의 콘솔 설정에서 글꼴 설정을 잊어버렸습니다.. #759657. 데비안 버그 추적기.
localectl
. 시스템 매뉴얼 페이지. freedesktop.org.- https://unix.stackexchange.com/a/479720/5132
답변2
사용loadkeys
.
교체하려면 Esc콘솔 Caps Lock에서 다음을 실행하세요.
printf 'keycode 1 = Caps_Lock Caps_Lock\nkeycode 58 = Escape Escape\n' | sudo loadkeys -