O layout de teclado personalizado é redefinido para o padrão após o modo de espera ou reinicialização

10

Eu projetei um layout de teclado para mim, depois de executar xmodmap , tudo funciona bem, mas depois do modo de espera ou reinicialização, o layout volta para qwerty.

Como posso configurá-lo como padrão? Meu sistema operacional é o Debian Wheezy com XFCE4.

    
por Vincent Zhang 28.12.2012 / 01:22

2 respostas

5

Confira este tópico do fórum em archlinux Redefinição do Xmodmap após Suspender para a RAM . Há vários exemplos no encadeamento que o ajudarão a começar e mostrarão como configurar um gancho que será acionado por meio do subsistema de gerenciamento de energia que executará seu xmodmap setup toda vez que você sair da suspensão.

Algo como o script a seguir, salvo como /etc/pm/sleep.d/11suspend (altere o me em /bin/su - me para seu nome de usuário real):

#!/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
    
por 28.12.2012 / 02:06
2

Nota pré-discipular: você não deve usar o comando obsoleto xmodmap , mas XKB ( xkbcomp ).

Depois, você pode alterar as configurações do seu script ~/.xsession . Pessoalmente eu tenho:

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

no meu arquivo ~/.xsession , e minhas configurações do XKB são colocadas em ~/.xkb/symbols/local e ~/.xkb/types/local arquivos. Isso mudará as configurações após cada login X.

Infelizmente, essas configurações são perdidas após a suspensão / retomada . Há uma solução alternativa: salve-as e restaure-as via pm-utils com um script no diretório /etc/pm/sleep.d ; você pode precisar

xhost +si:localuser:root

no seu script ~/.xsession , pois a raiz não possui as informações do xauth. Eu dei um exemplo (para XKB): link

    
por 28.07.2014 / 13:32