xmodmap 파일이 있는데 ~/.Xmodmap
잘 작동합니다. 이렇게 우분투 19.10의 부팅 애플리케이션에 넣으면 xmodmap /home/yasser/.Xmodmap
첫 번째 부팅에서 작동합니다. 그러나 일시 중지 후에는 파일이 작동하지 않습니다. /usr/lib/pm-utils/sleep.d/999zxmodmap
다음 내용으로 스크립트를 작성 하려고 합니다 .
#!/bin/bash
case $1 in
pre)
exit 0
;;
post)
export DISPLAY=:0
sleep 10
xmodmap /home/yasser/.Xmodmap
;;
esac
나는 이것이 다른 곳에서 제안되는 것을 보았지만 이것은 작동하지 않습니다. ~/.Xmodmap
도움이 된다면 내 파일은 다음과 같습니다 .
keycode 66 = Mode_switch
keysym j = j J Left
keysym l = l L Right
keysym i = i I Up
keysym k = k K Down
keysym h = h H Home
keysym semicolon = semicolon colon End
귀하의 도움에 미리 감사드립니다.
답변1
다음 export DISPLAY=:0
줄을 뒤에 추가해 보세요.
export XAUTHORITY=/home/yasser/.Xauthority
X11 GUI 세션이 시작되면 ~/.Xmodmap
사용자가 로그인할 때 자동으로 읽혀집니다.
단 /usr/lib/pm-utils/sleep.d/999zxmodmap
, 일시정지 상태에서 재개한 후 실행하면 루트로 실행된다.
다른 X11 응용 프로그램과 마찬가지로 이 xmodmap
명령에도 GUI 세션에 액세스하려면 DISPLAY
환경 변수와 두 가지가 필요합니다.X11 세션 쿠키(= 일종의 열쇠). 기본적으로 세션 쿠키는 ~/.Xauthority
각 X11 로그인마다 저장되고 다시 생성됩니다. 스크립트가 xmodmap
루트로 명령을 실행하면 /root/.Xauthority
현재 로그인된 사용자가 있는지 확인할 수 있는 올바른 위치가 아닌...에서 세션 쿠키를 찾습니다 yasser
.
다행스럽게도 XAUTHORITY
환경 변수를 사용하여 X11 응용 프로그램에 비표준 위치에서 세션 쿠키를 찾도록 지시할 수 있습니다. 루트는 모든 것에 액세스할 수 있으므로 루트로 실행되는 명령은 쿠키 파일을 xmodmap
읽을 수 있습니다 .yasser