![PC에서 X.org에 대한 키코드 할당 결정](https://linux55.com/image/16574/PC%EC%97%90%EC%84%9C%20X.org%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%82%A4%EC%BD%94%EB%93%9C%20%ED%95%A0%EB%8B%B9%20%EA%B2%B0%EC%A0%95.png)
2008년 말부터 2009년 초 어느 시점에 Linux에서 X.org를 실행할 때 표준 PC 키보드의 일부 키코드 값(분명히 XT 키보드에는 없었던 키)이 변경되었습니다. 이것이 커널 변경으로 인한 것인지 X 변경으로 인한 것인지는 알 수 없습니다. Debian lenny와 Ubuntu 8.04는 이전 배포판을 사용하고 Debian squeeze와 Ubuntu 10.04는 새 배포판을 사용합니다.
그래서 두 개의 파일이 있습니다 xmodmaprc
. 하나는 이전 키 코드를 포함하고 다른 하나는 새 키 코드를 포함합니다. my 및 에서 .xinitrc
로드할 항목을 결정하는 방법은 무엇입니까 .xsession
?
나는 시작 파일을 쉽게 이식할 수 있기를 원하므로 현재 컴퓨터 이름(!)에 대한 의존성을 없애고 싶습니다. 저는 Linux 배포판에 대한 종속성을 도입하고 싶지 않습니다(이것은 어쨌든 클라이언트에 관한 것이지만 필요한 서버에 관한 것입니다). 이 시점에서 나는 이미 내 스크립트에 서버에 대한 정보를 가지고 있습니다(모든 기호는xrdb(1)
환경 변수로 사용 가능) 내 질문은 "어떤 인수와 비교하고 싶은가?"로 단순화될 수 있기를 바랍니다.
내가 관리하지 않는 컴퓨터에서 시작 파일을 실행하기를 원하기 때문에 키 기호를 다시 할당하는 것만으로는 도움이 되지 않습니다. 예를 들어, 내가 가장 좋아하는 수정자를 키에 할당하고 싶지만 Win로그인할 때 어떤 키 기호가 할당될지 예측할 수 없습니다. 그러나 키코드 대신 사용할 수 있는 XKB 개념이 있다면(그리고 sysadmin 사용자 정의와 무관하므로 keyyms는 이를 수행하지 않음) 기꺼이 XKB로 전환할 것입니다.
답변1
예를 들어 XKB를 통해 특정 키의 키코드를 찾을 수 있습니다.
xkbcomp -a -dflts -xkb $DISPLAY - | sed -ne 's/^ *<LWIN> *= *\([0-9][0-9]*\).*/\1/p'