답변:
원시 키보드 작성 / 중단 이벤트는 키보드 장치에서 발생합니다. 이들은 단말기 에뮬레이터에 의해 처리된다 - 중 하나는 오퍼레이팅 시스템 커널 또는 1과 같은 GUI에 내장 xterm
, gnome-terminal
, lxterminal
등. 터미널 에뮬레이터는 키보드 이벤트를 문자 시퀀스로 변환하고 가상 터미널의 의사 터미널의 "마스터"쪽 또는 일반적으로 숨겨진 "마스터"쪽으로 푸시합니다. 이것들은 터미널 라인 규율을 통과 한 다음 Z 터미널 만이 의사 터미널 / 가상 콘솔의 "슬레이브"쪽에서 읽은 입력으로 결과를 확인합니다.
라인 제어에서는 "잠금"및 "수정 자"키가 처리되지 않습니다. 이것을 이해하기 위해 직렬 회선을 통해 연결된 실제 터미널 ( "의사"및 "가상"터미널이 아닌) 의 시대를 생각하십시오 . 터미널에서 시스템으로 직렬 회선을 통과하는 문자에는 이미 수정자가 적용되어 있습니다. caps lockplus a는 터미널에 의해 이미 "A"로 번역되었으며, 이것이 터미널에 의해 전송되는 것이며 라인 규칙에 도달하는 것입니다. (비슷하게, control및 c이미 ASCII의 단말기에 의해 변환 된 ETX
문자).
따라서 caps lock실제로 다른 수정 자 (modifier)의 기능을 조정하려면 터미널 을 조정해야합니다 . 귀하의 경우, 사용중인 터미널 에뮬레이터 를 조정해야합니다 .
localectl
을 통해 dpkg-reconfigure console-setup
에 invoke-rc.d console-screen.sh
).그러나 이것은 터미널 의 동작을 변경하기 때문에 해당 터미널에서 입력을받는 모든 프로그램에 영향을 미칩니다. GUI 터미널 에뮬레이터의 경우 해당 의사 터미널에서 입력 을받는 모든 프로그램에 영향을 미칩니다 . 가상 콘솔을 처리하는 커널의 터미널 에뮬레이터의 경우 해당 가상 콘솔에서 입력 을받는 모든 프로그램에 영향을 미칩니다 .
전체 시스템에는 영향을 미치지 않지만 Z 쉘에만 영향을 미치는 원하는 것보다 많은 영향을 미칩니다.
XKBOPTIONS="caps:swapescape"
줄 을 추가하여 / etc / default / keyboard 파일을 편집하여 문제를 해결했습니다 .