![물리적 키 손상으로 인해 세션 관리자(또는 최소한 SLiM)에 대해 xmodmap 파일을 설정하는 방법](https://linux55.com/image/2576/%EB%AC%BC%EB%A6%AC%EC%A0%81%20%ED%82%A4%20%EC%86%90%EC%83%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20%EC%84%B8%EC%85%98%20%EA%B4%80%EB%A6%AC%EC%9E%90(%EB%98%90%EB%8A%94%20%EC%B5%9C%EC%86%8C%ED%95%9C%20SLiM)%EC%97%90%20%EB%8C%80%ED%95%B4%20xmodmap%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
저는 X 세션 관리자로서 SLiM으로 직접 부팅되도록 노트북을 설정했습니다.
그런데 내 노트북의 "M" 키가 깨졌습니다. 나는 xmodmap을 사용하여 로그인 시 관련 없는 메뉴 키를 다시 매핑함으로써 이 문제를 해결했습니다.
keycode 135 = m
.xinitrc 파일에서 xmodmap을 다음과 같이 호출했습니다.
xmodmap ~/.xmodmaprc
로그인 후 잘 작동됩니다. 하지만 내 사용자 이름에 "m"이 포함되어 있어 노트북 키보드를 사용하여 직접 입력할 수 없습니다. default_user
내 작품에 한 줄만 추가하면 /etc/slim.conf
최소한 로그인은 가능하지만, 잘못된 비밀번호를 입력하면 USB 키보드를 연결하거나 시스템을 완전히 재부팅해야 두 번째 기회를 얻을 수 있습니다.
내가 찾은이 문제Stack Exchange에서 .xmodmaprc 파일을 지정된 경로(`/etc/X11/Xmodmap)에 복사했습니다. 그러나 이것은 작동하지 않았습니다.
시스템 전체에서 작동하도록 하려면 어떻게 해야 합니까? 도움이 된다면 내 배포판은 Arch입니다.
답변1
답변2
저는 물리적 키 손상에 대한 일반적인 솔루션을 작성하기 위해 XKB를 사용하려고 시도한 적이 있습니다.https://gitorious.org/xkb-replace-broken. 나는 그것을 청소하지 않았습니다. (그렇기는 하지만 아쉽게도 원래 변경되지 않은 상태를 커밋하지 않았기 때문에 도입한 변경 사항을 확인하기가 쉽지 않습니다. 완료되면 정리하고 결과 개정 내역을 게시하려고 할 수도 있습니다.) 제 기억이 맞다면 , 작동했습니다.
내 생각은 (완전히 작동하는 키보드를 갖기 위해) 가장 낮은 수준의 키(키 코드)를 다시 매핑하여 모든 조합과 레이아웃이 깨진 키를 대체해야 하는 새로운 물리적 키(제 경우에는 "T")를 사용하도록 하는 것입니다. .
다음에서 새로운 키코드 매핑을 볼 수 있습니다."nohack" 브랜치의 마지막 커밋. 나는 줄을 바꾸기 /usr/share/X11/xkb/keycodes/evdev
위해 분기했습니다./usr/share/X11/xkb/keycodes/evdev-with-broken-t
alias <AD05> = <PAUS>;
(첫 번째 버전에서는 그것이 해킹이라고 생각하고 방금 pristine 을 편집했습니다 /usr/share/X11/xkb/keycodes/evdev
. 연결된 커밋에서 해킹이 취소되었습니다. "hack" 버전이 작동한다고 확신하지만 "nohack" 브랜치에 대해서는 잘 모르겠습니다. )
그런 다음 새 XKB 옵션("broken:t" - 위의 커밋 참조)을 정의하고 추가했습니다.XKB 구성 파일xorg.conf
(물론, 다른 구문을 사용하여 유사한 옵션을 ALTLinux에 넣을 수도 있고, 부팅 시 귀하 xinit
또는 유사한 사람이 이러한 옵션을 실행하도록 요구할 수도 있습니다.)setxkbmap
답변3
로그인 화면에 X 서버가 완전히 로드되지 않았습니다. 로그인하면 XSession.d의 모든 내용이 로드됩니다. 로그인 화면에서 실행되는 유일한 것은 gdm(gnome을 실행하는 경우)과 기본 X 서버입니다. 로그인하기 전에 X 서버에 연결하려면 /etc/gdm/PreSession/Default 스크립트를 수정해야 합니다.
로그인하기 전에 X가 키를 다시 매핑할 수 있도록 gdm의 PreSession 스크립트에서 xbindkeys가 실행되도록 설정할 수 있습니다.