왜 이것이 예상대로 작동하지 않는지 조금 혼란 스럽습니다. 내 목표는 Caps Lock 키를 제어에 매핑하는 것입니다. 저는 데비안을 사용하고 있습니다. 이를 위해 다음 명령을 사용합니다.
/usr/bin/setxkbmap -layout "$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')" -option ctrl:nocaps
터미널을 통해 실행하면 완벽하게 작동합니다. 그러나 나는 이 작업이 시작 시나 로그인 시에 수행되기를 원하며 항상 수동으로 수행하기를 원합니다. 이 명령을 XFCE의 자동 시작 세션 응용 프로그램에 추가하고 해당 명령을 내 ~/.profile
. 여전히 수동으로 수행해야 합니다(올바르게 매핑한 후). 내가 뭘 잘못했나요?
답변1
setxkbmap
명령이 추가된 후에 실행되지 않는 이유 ~/.profile
는 쉘(아마도 bash)이 다음과 같은 경우에만 파일을 읽기 때문입니다.로그인쉘이 시작되었습니다. X
터미널 에뮬레이터 에서 로그인 셸을 시작하지 마세요. 를 사용하고 있지만 setxkbmap
시스템에 더 나은 방법을 사용할 수 있는 경우 추가하세요 . 다음과 같이 섹션을 수정하세요.~/.bashrc
Bash
debian
XKBOPTIONS
/etc/default/keyboard
root@debian:/home/ja# cat /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"
BACKSPACE="guess"
이제 아래 설명된 대로 이 명령을 실행합니다 man 7 keyboard
.
udevadm trigger --subsystem-match=input --action=change
재부팅할 필요도 없습니다 lightdm
. 다음 시작 시 설정이 자동으로 적용됩니다 lightdm
. /etc/default/keyboard
나는 단지 내 안에 있었다 Debian 9.4
.
답변2
내 생각에 더 좋은 방법은 홈 디렉터리에 .xsessionrc 파일을 만드는 것입니다.
cat .xsessionrc
setxkbmap -option ctrl:nocaps
이 파일은 각 세션이 시작될 때 읽혀집니다.
이렇게 하면 사용자의 세션만 영향을 받습니다.
다른 사용자들은 이해하지 못합니다.
Debian과 NetBSD에서는 문제가 없습니다.