나는 최근에 Debian 9를 설치하고 평소에 사용하던 ~/.Xmodmap
파일을 연결한 다음 이를 xmodmap ~/.Xmodmap
내 .xsession
.
참고로 DM i3
없이 달리고 있습니다 startx
.
명령이 성공적 으로 실행 되었는지 테스트하기 위해 내 명령을 .xsession
.touch ~/prior && xmodmap ~/.Xmodmap && touch ~/post
xmodmap
setxkbmap
해결책을 검색했지만 답변이 없는 질문, 나에게 도움이 되지 않는 오래된 답변이 있는 질문, 실제 해결책이 포함되지 않은 질문만 찾았습니다.
답변1
이 동작에 대한 이유는 다음에서 간접적으로 문서화되어 있습니다 man keyboard
.
설명하다
키보드 파일은 키보드의 속성을 설명합니다. 그 독자는세트콘(1)콘솔에서 키보드를 구성하려면. Debian 시스템에서 기본 키보드 레이아웃은 /etc/default/keyboard에 설명되어 있습니다.X와 콘솔 간에 공유됩니다.
/etc/default/keyboard
시스템이 설치되고 실제 문제가 발생했을 때의 내용이 생성되었습니다( ctrl:nocaps
나중에 옵션을 추가했습니다).
XKBMODEL="pc105"
XKBLAYOUT="se"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"
위의 내용은 X가 시작 중 특정 시점(아마도 이후 등)에 xkb 옵션을 설정하여 그 동안 설정된 모든 설정이 손실된다는 것을 나타 .xsession
냅니다 .xmodmap
.xsession
그러면 이유가 나오고 해결책은 다음과 같습니다 man setupcon
.
키보드 구성은 ~/.keyboard 또는 /etc/default/keyboard에 지정됩니다. 이것글꼴 구성 ~/.console-setup에 지정하거나/etc/default/콘솔 설정.
수확량 확인 man console-setup
:
console-setup 파일은 setupcon(1)이 콘솔을 설정하는 데 사용하는 인코딩과 글꼴을 지정합니다. 키보드 레이아웃을 지정하는 데에도 사용할 수 있습니다.이는 권장되지 않습니다. 대신 키보드(5)를 사용하십시오.
따라서 /etc/default/keyboard
TTY 및 X 설정을 위한 키보드 설정입니다. While은 /etc/default/console-setup
콘솔의 키보드(실제로 권장하지는 않지만 작동함)와 글꼴을 설정하는 데 사용할 수 있습니다.
그래서 이 모든 작업을 수행하기 위해 다음을 /etc/default/keyboard
추가했습니다 ./etc/default/console-setup
.xsession
#!/bin/bash
# The below assumes bash features, rewrite if you use other shells.
source /etc/default/console-setup
XKBPARMS=""
if [[ "$XKBLAYOUT" ]]; then
XKBPARMS="-layout $XKBLAYOUT"
fi
if [[ "$XKBMODEL" ]]; then
XKBPARMS+=" -model $XKBMODEL"
fi
if [[ "$XKBVARIANT" ]]; then
XKBPARMS+=" -variant $XKBVARIANT"
fi
if [[ "$XKBOPTIONS" ]]; then
XKBPARMS+=" -option $XKBOPTIONS"
fi
if [[ "$XKBPARMS" ]]; then
setxkbmap $XKBPARMS
fi
xmodmap ~/.Xmodmap
이제 잘 작동합니다 xmodmap
. TTY와 X 모두에 올바른 키맵과 옵션이 있습니다.
답변2
또한 -type 솔루션에도 문제가 있었기 xmodmap
때문에 조사한 후에 그냥 사용하기로 결정했습니다 xkb
. 나도 찾았어xmodmap
Archwiki는 "가장 쉬운" 작업을 권장하지 않습니다.:
일반적으로 가장 간단한 작업을 제외하고는 xmodmap을 사용하지 않는 것이 좋습니다. xmodmap과 동등한 XKB 호환은 xkbcomp입니다. 그러나 xkbcomp에는 -e 옵션이 없으므로 상황이 그렇게 간단하지 않습니다. 그럼에도 불구하고 가능할 때마다 xkbcomp를 선호해야 합니다.
다음 솔루션이 저에게 효과적이었습니다 (Ubuntu 16.04에서).
- TTY에서:Linux에서 콘솔 키맵을 변경하는 방법.
- 중간
X
: 관련 파일을/usr/share/X11/xkb/symbols/
.us
(Number Row 및 기타 몇 가지 사항) 및 (Caps Lock)을pc
변경했습니다 .
불행히도 이는 TTY와 TTY에 대한 두 가지 별도 솔루션을 추적하는 것을 의미 X
하지만 지금까지는 좋다고 생각합니다.
하지만 xmodmap
이미 효과적인 솔루션이 있다면 그게 전부입니다!