대기 또는 재부팅 후 사용자 정의 키보드 레이아웃이 기본값으로 재설정됩니다 한 후에는 정상적으로 xmodmap작동하지만 대기 또는

키보드 레이아웃을 스스로 설계했습니다. 실행 한 후에는 정상적으로 xmodmap작동하지만 대기 또는 재부팅 후에 레이아웃이 다시 쿼티로 돌아갑니다.

기본값으로 어떻게 설정합니까? 내 OS는 XFCE4의 데비안 Wheezy입니다.



답변

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

~/.xsessionroot에는 xauth 정보가 없으므로 스크립트 에서 . 예를 들어 (XKB의 경우) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92


답변