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


10

Quero executar este comando toda vez que efetuar login (ou toda vez que inicializar, se isso não funcionar): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

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

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

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

Test1 e 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 funcionará bem. Mas não será executado no login. Alguma ideia?

Respostas:


11

~/.profileé executado no início da sequência de login. Se o ambiente da á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ê fizer login, você será solicitado a carregar ~/.Xmodmap. Carregue-o e marque "não me pergunte novamente". Em seguida, você .Xmodmapserá aplicado após as configurações padrão.


Obrigado, isso funcionou perfeitamente. Por curiosidade, como eu voltaria à caixa de diálogo que verifiquei "não me pergunte novamente", se eu quisesse algum tempo no futuro?
Mateus

1
@ Matthew: Não testado: inicie gconf-editor, navegue /desktop/gnome/peripherals/keyboard/generale edite a known_file_listentrada a ser removida .Xmodmap.
Gilles 'SO- stop be evil'

Isso funcionou para mim na versão beta do Ubuntu 10.10 quando você respondeu a essa pergunta pela primeira vez. Fiz uma nova instalação do Ubuntu 10.10 ontem e coloquei um arquivo .Xmodmap idêntico na minha pasta pessoal. Quando entrei novamente, recebi a caixa de diálogo, carreguei o .Xmodmap e marquei a caixa como antes. Mas não parece estar remapeando as chaves. Eu verifiquei o gconf e o .Xmodmap está definitivamente na lista de arquivos_conhecidos. Alguma ideia?
Matthew

Isso também não está funcionando para mim no Gnome 3.10.1 / Archlinux. Gostaria de saber se algo não foi ajustado na ordem em que o Gnome carrega os layouts de teclado.
Caleb

Para o Gnome 3.10 que não carrega mais o ~ / .xmodmap, encontrei uma solução que funcionava no bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968 : desative o plug-in de teclado do Gnome. $ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx 03/02

2

Descobri que no local do Gconf-Editor mencionado acima, o nome do seu layout de teclado revisado deve aparecer duas vezes, uma vez em "lista_ficheiro_conhecida" e uma vez em "manipuladores_de_ atualização". Por que o Ubuntu algumas vezes insere essa última entrada e outras não ... bem, mantém você alerta, não é?

Aliás, depois de muita pesquisa, usei o ajuste acima para atribuir novamente a tecla Esquerda do Windows. Coloquei a seguinte declaração no meu próprio layout de teclado para duplicar a tecla Seta para a esquerda: -

keycode 133 = 0xFF51

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

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


1
Alan escreveu: "Descobri que no local do Editor do Gconf mencionado acima, o nome do seu layout de teclado revisado deve aparecer duas vezes, uma vez em" lista_de_arquivos_conhecidos "e outra vez em" manipuladores de atualização "." Posso confirmar que Alan está correto. No Ubuntu 10.10, para que seu arquivo ~ / .Xmodmap tenha efeito, ".Xmodmap" deve aparecer na lista "lista_arquivo_do_arquivo" e na lista "manipuladores de atualização" em / desktop / gnome / periféricos / teclado / geral no gconf -editor. Obrigado Alan.

1

Alguns sistemas procuram um arquivo nomeado ~/.Xmodmape executam os comandos encontrados lá. Tente colocar estas linhas nesse arquivo:

keysym Delete = Menu
keysym Menu = Delete
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.