Como eu configuro o Xmodmap no login?

37

Como meu layout de teclado não combina comigo, executo xmodmap no login. O script é denominado .profile e é executado OK, mas quebra a interface do Unity.

Eu quero saber onde colocar a linha xmodmap para que ela seja executada no meu login e não quebre nada.

Eu já tentei colocá-lo nos arquivos .bash_login e .bash_profile , sem sucesso ( xmodmap não define meu teclado).

Quais são minhas opções?

    
por Thiago Moraes 22.07.2011 / 19:55

5 respostas

25

O local correto para colocar xmodmap ~/.Xmodmap (para que suas alterações sejam lidas na inicialização) está em ~/.xinitrc (veja a explicação abaixo), embora você possa colocar alternadamente o comando xmodmap como um item de inicialização ( /usr/bin/xmodmap /home/user/.Xmodmap ). Eu posso dizer que para 12.04 (e presumivelmente 12.10) que estas duas alternativas definitivamente funcionam, de qualquer forma elas são lidas depois você loga com lightdm . (Eu mudei Return para Right Shift , e a mudança só entrou em vigor depois de digitar minha senha e fazer o login).

Por favor, note: se você está no Xfce, ele está anotado no FAQ oficial do Xfce que talvez seja necessário criar um item de inicialização em vez de usar ~/.xinitrc e talvez seja necessário atrasar a execução para que as alterações de xmodmap não sejam substituídas por setxkbmap . Você pode usar um atraso para conseguir isso na sua entrada de inicialização:

/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"

(Para a entrada de inicialização, é necessário especificar caminhos absolutos)

Sempre que setxkbmap for executado para alterar o layout do teclado, você terá que executar xmodmap ~/.Xmodmap novamente no terminal.

Criando ~/.xinitrc

Crie um arquivo na sua pasta pessoal chamado .xinitrc com

touch .xinitrc

e coloque nele:

xmodmap ~/.Xmodmap

Seu arquivo Xmodmap deve não ter entradas no estilo xmodmap -e " " , conforme usado no terminal para a configuração temporária dos valores. Deve ter entradas neste formato:

keycode 65 = Tab
keycode 23 = Space

Geralmente, é confuso qual dos vários arquivos X (como .xprofile , .xinitrc , etc) são lidos na inicialização, mas .xinitrc parece ainda ser lido sob 12.04, enquanto .Xmodmap ou .xinputrc não são lidos por si mesmos.

    
por user76204 03.11.2012 / 18:34
3

Estou usando o ElementaryOS (com seu gerenciador de janelas baseado no GNOME) e encontrei uma solução usando xdg autostart scripts. Muitos gerenciadores de janelas estão usando o xdg, então eu acredito que essa abordagem também funcionará em outros ambientes. Pelo menos, deve funcionar com o GNOME.

xdg executa scripts em ~/.config/autostart no login em uma sessão X. Para carregar a configuração do xmodmap no login, adicione o seguinte script a ~/.config/autostart/xmodmap.desktop :

[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.Xmodmap
Exec=/usr/bin/xmodmap .Xmodmap
Icon=application-default-icon
X-GNOME-Autostart-enabled=true
Type=Application

Em seguida, faça logout e login novamente, e sua configuração do Xmodmap deve ter sido carregada.

Se não estiver funcionando, tente executar o xmodmap no terminal para ver se é o xmodmap que reclama:

$ xmodmap ~/.Xmodmap

Se você não receber nenhum erro, execute o seguinte comando para depurar:

$ sudo cat /var/log/syslog | grep -B 5 -A 5 xmodmap
    
por kontrollanten 22.09.2017 / 23:18
2

Não tenho a interface de unidade na minha frente agora, mas tente clicar no botão Aplicativos no inicializador e digite inicialização. Deve haver um aplicativo chamado Startup Applications (ou algum outro). Clique nele e adicione seu comando xmodmap (por exemplo, xmodmap /home/thiago/.Xmodmap ).

    
por djeikyb 23.07.2011 / 02:28
2

Em Mint 17/18, posso conseguir que meus scripts sejam colocados no Aplicativo de Inicialização, com 1 segundo de atraso.

Como o Mint 18 é derivado do Ubuntu 1604, acho que você pode fazer o mesmo ou instalar o painel de gerenciamento do Startup Application primeiro se ele não estiver lá.

Espero que ajude.

    
por hxpax 18.10.2016 / 09:03
-1

Colocar alterações do xmodmap em ~/.bashrc ou /etc/bash.bashrc não quebra nada.

A única desvantagem é que é preciso abrir um terminal após cada inicialização para ativá-lo.

    
por Rasmus 23.07.2011 / 01:47