답변:
RAM에 Suspend 후이 archlinux 포럼 스레드 Xmodmap Reset을 확인하십시오 . 스레드에서 시작하는 몇 가지 예가 있으며 전원 관리 하위 시스템을 통해 트리거되는 후크 설정 방법을 보여줍니다 xmodmap
.
로 저장된 다음 스크립트와 같은 뭔가 /etc/pm/sleep.d/11suspend
(변화 me
의 /bin/su - me
실제 사용자 이름을) :
#!/bin/bash
case $1 in
hibernate)
echo "Hey guy, we are going to suspend to disk!"
;;
suspend)
echo "Oh, this time we're doing a suspend to RAM. Cool!"
;;
thaw|resume)
echo "oh, suspend is over, we are in $1 phase..."
# Set Display #
DISPLAY=:0.0 ; export DISPLAY
/bin/su - me -c "sleep 3; /usr/bin/xmodmap /home/me/.xmodmaprc" &
;;
*) echo "somebody is calling me totally wrong."
;;
esac
예비 참고 사항 : 더 이상 사용되지 않는 xmodmap
명령을 사용하지 말고 XKB ( xkbcomp
)를 사용해야합니다 .
그런 다음 ~/.xsession
스크립트 에서 설정을 변경할 수 있습니다 . 개인적으로 나는 :
setxkbmap -types local -print | \
sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
내에서 ~/.xsession
파일 및 내 XKB 설정에 배치됩니다 ~/.xkb/symbols/local
및 ~/.xkb/types/local
파일. 각 X 로그인 후에 설정이 변경됩니다.
불행히도 이러한 설정은 일시 중지 / 다시 시작 후에 손실됩니다 . 해결 방법이 있습니다. /etc/pm/sleep.d
디렉토리에 스크립트를 사용하여 pm-utils를 통해 파일을 저장하고 복원하십시오 . 너는 필요할지도 모른다
xhost +si:localuser:root
~/.xsession
root에는 xauth 정보가 없으므로 스크립트 에서 . 예를 들어 (XKB의 경우) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92
~/.xsession
여기서 다시 시작한 후 호출되지 않습니다. 왜 그런지 아십니까?
~/.xsession
는 X 세션이 시작될 때만 다시 시작한 후에 실행되지 않습니다. 당신은 할 필요가 xhost +si:localuser:root
이 번에.
xmodmap
사용자 정의 키맵을로드 하는 것보다 새로운 방법이 있는지 전혀 몰랐습니다 . 훨씬 잘 작동하는 것 같습니다. 필자의 경우 (XUbuntu 18.04) 일시 중단 / 다시 시작해도 살아남은 것 같습니다.