교환 Esc및 CapsLock콘솔 (X가 아니라 사용 xev
) 에서 교환 하고 싶습니다 . 어떻게 할 수 있습니까?
내 OS는 우분투입니다.
답변
도구는에 키보드 레이아웃 조작하는 가상 콘솔 있습니다를 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
다음을 포함하지만 이에 국한되지 않는 다양한 페이지에서 수집 된 정보 :
답변
두 개의 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