물리적 키 손상으로 인해 세션 관리자(또는 최소한 SLiM)에 대해 xmodmap 파일을 설정하는 방법

물리적 키 손상으로 인해 세션 관리자(또는 최소한 SLiM)에 대해 xmodmap 파일을 설정하는 방법

저는 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

저도 아치는 없는데 온라인에서 포장을 봤어요.xorgxinit다음 파일이 있어야 합니다.

/etc/X11/xinit/xinitrc

여기에 xmodmap 명령을 추가하면 작동합니다. 스크립트는 서버가 시작될 때 서버에 의해 실행됩니다.

더 나은 것, 아래의 모든 파일을 실행하는 것 같으 /etc/X11/xinit/xinitrc.d/므로 거기에 xmodmap을 실행하는 실행 파일을 추가하기만 하면 됩니다.

답변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가 실행되도록 설정할 수 있습니다.

관련 정보