답변:
도구는에 키보드 레이아웃 조작하는 가상 콘솔 있습니다를 loadkeys
, dumpkeys
하고 showkey
. 그들의 맨 페이지를 읽고 그들의 복잡성에 대해 스스로에게 알리십시오.
이 도구는 그놈과 같은 그래픽 환경의 터미널 에뮬레이터가 아닌 가상 콘솔에서만 작동합니다. 차이점에 대해 배우면이 질문과 답변을 읽으십시오 : https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
다음은 원하는 것을 수행하기위한 간단한 안내서입니다.
현재 키보드 레이아웃을 저장하십시오.
$ dumpkeys > backup.kmap
문제가 발생하면 다음 명령을 사용하여 키맵을 복원 할 수 있습니다.
$ sudo loadkeys backup.kmap
키보드가 너무 엉망이 되어서도 그렇게 할 수 없다면 고대 커널 마법과 관련이없는 유일한 옵션은 재부팅하는 것입니다.
키에 할당 된 키 코드를 확인하십시오.
$ showkey
이제 ESC 키와 CAPSLOCK 키를 누릅니다. 키 코드가 화면에 나타납니다. 키 코드에 유의하십시오. 내 시스템에서 ESC에는 키 코드 1이 있고 CAPSLOCK에는 키 코드 58 showkey
이 있습니다. 10 초 동안 사용하지 않으면 종료됩니다 (적어도 내 우분투 10.04에서는 종료됩니다).
덤프 키에서 ESC 및 CAPSLOCK 키의 이름을 확인하십시오.
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
dumpkeys의 키맵 행을 참고하십시오.
$ dumpkeys | head -1
keymaps 0-127
ESC 및 CAPSLOCK을 전환하는 키맵 파일을 작성하십시오.
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
키맵을로드하십시오.
$ sudo loadkeys swap_esc_capslock.kmap
테스트 : CAPSLOCK 키 테스트는 명백합니다. CAPSLOCK 키를 누르고 다른 키가 대문자인지 확인하십시오. ESC 키를 테스트하려면 CTRL + V와 ESC를 차례로 사용할 수 있습니다. 인쇄해야합니다 ^[
. Ctrl + V를 사용하면 쉘이 해석하지 않고 다음 키를 그대로 인쇄합니다.
재부팅 할 때마다이 수정 내용을로드하려면 /etc/rc.local
파일에 다음 줄을 입력하십시오 .
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
다음을 포함하지만 이에 국한되지 않는 다양한 페이지에서 수집 된 정보 :
/usr/bin/loadkeys
에 /etc/rc.local
경로 환경 변수가이 단계에서 설정이 보장되지 않기 때문에. 그리고 sudo
에 필요하지 않습니다 rc.local
.
rc.local
은 시스템이 부팅 할 때마다 실행됩니다. @ bukzor의가 sudo setupcon
있다 없다 에 rc.local
그 어떤 런타임 시작 코드를 추가하지 않고, 시스템 기본 키 맵을 대체 한 시간 설정 명령입니다. 추가 loadkeys
하기 위해 rc.local
, 추가 코드 이미 시스템 기본 loadkeys를 수행 한 것을 중복을 시작 추가합니다. 이 rc.local
방법은 키맵에 대한 비표준 경로에 의존하기 때문에 실제로 안전하지 않을 수 있습니다.
setupcon
방법을 자세히 설명하십시오 . 원하는 경우 자신의 답변을 추가하거나 광산을 편집하십시오.
setupcon
. 8 월이 (가)는 가정하게 나타납니다 sudo setupcon --save
로 갈 것이라고 rc.local
나는 사실 생각하지 않는,하지만 그것을 않는 경우, 당신은 필요가 없습니다 sudo
에 rc.local
. 답변을 업데이트하기 전에 추가 정보가 필요하다고 생각합니다. 주요 질문은 "부팅 프로세스 중에 자동으로로드되도록 수정 된 키맵을 설치하는 방법"입니다. 어느 것이 더 나은 방법인지, 키 rc.local
맵을 설치하는지, 또는 키 맵을 설치해도 효과 가 있는지 모르겠습니다 . 나는 이것을 최근에 연구하고 있으며 여기서 다시 확인할 것입니다.
두 개의 capslocks 키를 원한다면 'ctrl : swapcaps'대신 'ctrl : nocaps'를 사용하십시오 (다른 이름의 capslock은 여전히 쓸모가 없습니다).
X11은 (참조 : /usr/share/X11/xkb/rules/base.lst
)
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
sudo restart lightdm
텍스트 콘솔 : (setupcon에서 도난)
#!/bin/sh
. /etc/default/console-setup
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
"$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
| gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
sudo setupcon --save
rc.local을 편집하지 않고 영구적으로 변경 사항을 작성하는 데 사용할 수도 있습니다 . 그것은 본질적으로 동일합니다dumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz