로그인시 ~ / .Xmodmap 파일이로드되지 않는 이유는 무엇입니까?


16

이 답변에 따라 다음 ~/.Xmodmap파일을 만들었습니다 .

keysym Delete = Menu
keysym Menu = Delete

clear Lock
keycode 0x42 = Escape

즉, 스왑에서 DeleteMenu, 그리고 수 있도록 Caps Lock추가를 Escape.

다음에 로그인 할 때 Ubuntu에서 ~/.Xmodmap예상대로 로드 할 것인지 물었습니다 . 나는 그것을로드했지만 아무 일도 없었습니다 (그 때 또는 후속 로그인시). 수동으로 실행 xmodmap ~/.Xmodmap하면 예상대로 작동합니다.

나는 이것이 10.10 베타 초기에 작동했지만 새로운 10.10 설치에서 실패하고 있음을 알고 있습니다. 10.10 이전에는 시도하지 않았습니다. 어떤 아이디어?

편집 : 로드 /etc/gdm/Xsession가 확실하게하기 위해 디버깅 명령문을 넣었 ~/.Xmodmap으며 모든 것이 마술처럼 작동하기 시작했습니다. 에코를 추가하는 것 외에는 아무것도 변경하지 않았으며 변경 사항을 되돌리고 다시 시작한 후에도 여전히 작동합니다. 내가 본 가장 이상한 것.

내가 깨달은 한 가지는 Xmodmap의 "Caps Lock to Escape"부분이 항상 작동한다는 것입니다. 실패한 것은 삭제 / 메뉴 스왑이었습니다. 문제가 왜 멈추었는지 실제로 알지 못하므로 다른 사람이 같은 문제를 겪을 경우이 질문을 열어 두겠습니다.


나는이 같은 문제를 직접 경험하고 있고, 나를 미치게했다. 원인을 알아 내면 반드시 답변을 게시 할 것입니다.
Jorge Israel Peña

답변:


11

나는 그것이 어리석은 것을 알고 있지만 해결 방법으로 자동 시작 할 수 있습니다 xmodmap ~/.Xmodmap.

또한 당신은 확인할 수 있습니다 /etc/gdm/Xsession라인을 위해 usermodmap="$HOME/.Xmodmap"그리고이없는 경우 바로 파일의 마지막에 추가합니다. 시스템의 유일한 사용자 인 경우 변경 사항을에 입력하십시오 /etc/X11/Xmodmap.


2
명령을 어떻게 "자동 시작"합니까?
miguel.martin

자동 시작을 참조하십시오 . 가장 쉬운 방법은에 항목 Settings->Session and Startup또는 해당 행을 따라 항목을 추가하는 것입니다.
Mateen Ulhaq 2016 년

또는 예를 들어, 쉘에 추가하므로 쉘을 자주 열면 실행됩니다. 내가 Gnome에 들어갈 때 가장 먼저하는 일은 대부분의 경우 쉘을 여는 것이므로 이것이 작동하는 한 가지 방법입니다.
trusktr

3

늦게 파티에 갔지만, 이것도 저를 견인했습니다. 그리고 내가 고집스럽게 포기하는 것은 선택 사항이 아니 었습니다.

기본적으로 이것은 내가 시도한 것입니다 (필요한 경우 사용자 또는 루트).

  • ~ / .Xmodmap 만
  • ~ / .xsession, ~ / .xsessionrc
  • ~ / .gnomerc
  • ~ / .xprofile
  • ~ / .xinitrc
  • /etc/X11/Xsession.d/myscript
  • /usr/share/X11/xorg.conf.d/ ( 설정 파일을 만지지 않았습니다 )

(실제로 xmodmap명령을 추가하면 ~/.bashrc작동하지만 로그인 후 매번 터미널을 시작해야합니다)

몇 년 전 (?) xkb은 키 매핑 및 구성 (X와의 인터페이스)을 처리하도록 선택되었지만 X 세션 초기화 중에 작업을 수행 xmodmap한 후 X에 대한 키 관련 변경을 요청할 수도 있습니다 xkb.

문제는 언제 xmodmap 설정이 발생해야 하는가입니다. 보인다 그 위의 파일이 너무 일찍 과정에서 처리하고 있으며, 중 X는 변화를 xmodmap을 받아 들일 준비가되어 있지 않았다, 또는 XKB 그들을 덮어 쓸 것입니다. 참고 :이 파일에 "추적"을 추가하여 실제로 한 번에 실제로 실행되도록했습니다!


작동하는 것처럼 보이는 솔루션

.desktop처음에는 파일 을 추가하는 데 열중하지 않았지만 (한 줄짜리 스크립트로 충분해야 함) 작동하지만 여기에 있습니다.
해결책은 Linux에서 특수 키보드 키를 다시 매핑하거나 바꾸는 방법에서 비롯됩니다 . "솔루션 1"

기본적으로 ~/.config/autostart/my-xmodmap.desktop파일을 작성 하고 넣습니다.

[Desktop Entry]
Name=MyXmodmap
Exec=/usr/bin/xmodmap /home/me/.Xmodmap
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

me귀하의 사용자 이름으로 바꾸 십시오 (내가 귀찮게하지 않았 ~/거나 $HOME대신 똑같이 잘 작동 할 수 /home/me있으며 xmodmap의 전체 경로는 필요하지 않을 것입니다 ...), exec 비트를 추가하십시오

chmod +x ~/.config/autostart/my-xmodmap.desktop

이 경우 xmodmap 명령은 ~/.Xmodmap파일에 있어야합니다 (또는 -e옵션을 사용 하거나 다른 파일 이름을 선택하십시오!). 로그 아웃했다가 다시 로그인하십시오.

"시작 응용 프로그램"에서 시작 프로그램을 작성할 수 있습니다.

또 다른 해결책은 xmodmap을 잊고 구성하는 방법을 배우는 것입니다 xkb!

편집 (다시)

때때로, 로그온의 25 %가 xmodmap여전히 작동하지 않는 것 같습니다-명령이 실제로 실행되는 동안 (트래커가이를 증명합니다). 이 시점에서 내가 올 수있는 유일한 결론은 xkb프로세스가 로그온 프로세스에서 늦게 실행되고 실행 후 종료 될 수 있다는 것 xmodmap입니다. 경쟁 조건처럼 보입니다 ... 마지막으로 자동 시작 데스크톱 파일 exec줄을

Exec=$HOME/bin/mystart &

(참고 &) mystartbin내가 만든 새 디렉토리의 스크립트입니다.

#!/bin/bash    
sleep 5
/usr/bin/xmodmap /home/me/.Xmodmap &
date >> /tmp/xmodmap-has-run

chmod u+x ~/bin/mystart

이 스크립트는 xmodmap을 실행하기 전에 5 초 동안 휴면 상태가되고 스크립트가 언제 실행되었는지 추적합니다 (파일에서 /tmp/xmodmap-has-run).

잘만되면 그것이 전부일 것이다!


xkb confituration 편집은 나를 위해 일했습니다 : askubuntu.com/a/1090892/1021380
postrational


2

~/.Xmodmap파일에 구문 오류가 있습니까?

달리기를 시도하십시오.

$ xmodmap ~/.Xmodmap

있으면 오류가 발생합니다.


0

세션에 로그인하는 동안 Xmodmap을 시작하려고 시도하면서 동일한 이상한 문제가 발생했습니다 (ubuntu 13.04). 마침내 홈 폴더의 .xinitrc 파일을 사용하여 명령을 넣었지만 절대 경로는 다음과 같습니다.

/ usr / bin / xmodmap /home/MYNAME/.Xmodmap

그런 다음 다시 로그인해야 할뿐만 아니라 재부팅해야했습니다.


2
이것은 우분투 14.04에서 작동하지 않습니다.
miguel.martin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.