Por que meu comando xmodmap não será executado na inicialização / login?

10

Eu quero executar este comando toda vez que eu fizer login (ou toda vez que eu iniciar, se isso não funcionar): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

Eu tentei muitas coisas. Eu coloquei o comando em System > Preferences > Startup Applications . Coloquei em um arquivo .sh , marquei chmod +x e coloquei esse arquivo em System > Preferences > Startup Applications . Eu coloquei o script em /etc/init.d . Eu coloquei os comandos em ~/.profile . Nada parece funcionar.

Por fim, coloco isso no meu ~/.profile :

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

Tanto test1 quanto test2 são criados, mas as chaves ainda não são remapeadas. Se eu apenas copiar / colar o comando e executá-lo manualmente, ele funciona bem. Mas não será executado no login. Alguma idéia?

    
por Matthew 06.09.2010 / 20:20

3 respostas

11

~/.profile é executado no início da sequência de login. Se seu ambiente de área de trabalho configurar um layout de teclado, ele poderá substituir as configurações que você acabou de carregar.

Coloque suas configurações em um arquivo chamado ~/.Xmodmap :

keysym Delete = Menu
keysym Menu = Delete

No ambiente padrão do Gnome no Ubuntu 10.04, na próxima vez que você efetuar login, você será perguntado se deseja carregar ~/.Xmodmap . Carregue e marque "não me pergunte novamente". Então seu .Xmodmap será aplicado após as configurações padrão.

    
por 06.09.2010 / 21:37
2

Eu descobri que no lugar no Gconf-Editor mencionado acima o nome do seu layout de teclado revisado deveria aparecer duas vezes, uma vez em "arquivo_conhecido_list" e uma vez em "update_handlers". Por que o Ubuntu às vezes coloca a última entrada, e às vezes não ... bem, ela mantém você na ponta dos pés, não é?

Por acaso, depois de muita pesquisa, usei o ajuste acima para reatribuir a tecla esquerda do Windows. Coloquei a seguinte declaração no meu próprio layout de teclado para duplicar a tecla de seta para a esquerda: -

keycode 133 = 0xFF51

(Verifique se esses são os códigos certos para você indo para o xev e pressionando primeiro uma tecla e depois a outra.)

É apenas um pequeno ponto, mas enquanto estou na Internet, ele me dá uma conveniente tecla "Voltar" - Alt + Win com a mão esquerda. Eu posso fazer isso sem olhar.

    
por 19.02.2011 / 12:13
1

Alguns sistemas procuram por um arquivo chamado ~/.Xmodmap e executam os comandos encontrados lá. Tente colocar essas linhas nesse arquivo:

keysym Delete = Menu
keysym Menu = Delete
    
por 06.09.2010 / 20:55