Niestandardowy układ klawiatury jest resetowany do domyślnych po stanie gotowości lub ponownym uruchomieniu

11

Zaprojektowałem układ klawiatury dla siebie, po uruchomieniu xmodmapdziała OK, ale po gotowości lub ponownym uruchomieniu układ wraca do qwerty.

Jak mogę ustawić to jako domyślne? Mój system operacyjny to Debian Wheezy z XFCE4.

Vincent Zhang
źródło
Mam ten sam problem, debian jessie z xfce4.
John Lawrence Aspden

Odpowiedzi:

6

Sprawdź wątek forum archlinux Xmodmap Zresetuj po zawieszeniu w pamięci RAM . W wątku jest kilka przykładów, które pomogą Ci rozpocząć i pokażą, jak skonfigurować hak, który zostanie uruchomiony przez podsystem zarządzania energią, który uruchomi xmodmapinstalację za każdym razem, gdy wyjdziesz z zawieszenia.

Coś jak następujący skrypt, zapisanego jako /etc/pm/sleep.d/11suspend(zmienić mew /bin/su - mecelu rzeczywistą nazwą użytkownika):

#!/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
slm
źródło
3

Uwaga wstępna: nie należy używać przestarzałego xmodmappolecenia, ale XKB ( xkbcomp).

Następnie możesz zmienić ustawienia ze ~/.xsessionskryptu. Osobiście mam:

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

w moim ~/.xsessionpliku, a moje ustawienia XKB są wstawiane ~/.xkb/symbols/locali ~/.xkb/types/localpliki. Spowoduje to zmianę ustawień po każdym logowaniu do X.

Niestety ustawienia te zostaną utracone po zawieszeniu / wznowieniu . Istnieje obejście: zapisz je i przywróć za pomocą pm-utils ze skryptem w /etc/pm/sleep.dkatalogu; możesz potrzebować

xhost +si:localuser:root

w twoim ~/.xsessionskrypcie, ponieważ root nie ma twoich informacji xauth. Podałem przykład (dla XKB): https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92

vinc17
źródło
~/.xsessionnie jest wywoływany po wznowieniu tutaj. wiesz dlaczego?
brauliobo
@ hydrauliczny ~/.xsessionnie jest nigdy uruchamiany po wznowieniu, tylko po rozpoczęciu sesji X. Musisz to zrobić xhost +si:localuser:roottylko w tej chwili.
vinc17
Dziękuję bardzo za tę informację. Nie miałem pojęcia, że ​​istnieje nowsza metoda niż xmodmapładowanie niestandardowych map klawiszy. Wydaje się również, że działa znacznie lepiej. W moim przypadku (XUbuntu 18.04) wydaje się, że przetrwa także zawieszenie / wznowienie.
Tobia,