Estou configurando o openbox no meu laptop executando o Linux Mint 13. Quero que minha tecla Caps Lock atue como uma tecla de controle adicional. Coloquei as configurações necessárias no meu ~/.Xmodmaparquivo e verifiquei executando
xmodmap ~/.Xmodmap
Funciona corretamente.
No entanto, quando eu me conecto à minha sessão do openbox, essas alterações importantes não estão presentes. A execução do xmodmapcomando acima o faz funcionar novamente, mas quero que isso aconteça automaticamente na inicialização.
O interessante é que eu adicionei um zenitycomando de teste como segue ao meu ~/.config/openbox/autostartarquivo
zenity --info --text=Hello
Isso produz uma pequena janela de diálogo e sai somente depois que a caixa de diálogo é fechada.
Agora, quando eu me conecto à minha sessão de caixa aberta, o Caps Lock atua como uma tecla Ctrl, até que a caixa de diálogo zenity seja fechada. Depois que essa caixa de diálogo é fechada, o Caps Lock retorna ao seu comportamento padrão.
Eu não encontrei nada sobre isso no google, então estou pedindo ajuda aqui. Vocês têm alguma idéia do que pode estar errado?
Atualizar:
Eu tenho tentado descobrir isso e, em meus experimentos, copiei meu /usr/bin/xmodmaparquivo /usr/bin/xmodmap_e o substitui /usr/bin/xmodmappelo seguinte script bash
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Então, toda vez que qualquer script maldito no sistema é executado xmodmap, eu o conheço.
Com isso, faço logon novamente e só encontro uma entrada no meu ~/xmodmap-callsarquivo, que é a que está executando o meu ~/.Xmodmap, o que é esperado. Então, achei que não xmodmapé isso que está substituindo minhas alterações.
Em seguida, um pouco de pesquisa me apresentou o setxkbmapcomando, que aparentemente também pode fazer a mesma coisa. Também substituí o executável, semelhante ao xmodmap acima. E eu recebi o comando culpado!
setxkbmap -option terminate:ctrl_alt_bksp
Não tenho absolutamente nenhuma idéia do que isso faz, mas depois de executar xmodmap ~/.Xmodmap(que aplicou minhas configurações corretamente), se eu executar o comando acima, minhas alterações serão redefinidas! Edit : Isso está ficando muito engraçado. Apenas um setxkbmapcomando sem argumentos, sobrescreve alegremente minhas alterações pelo xmodmap ~/.Xmodmapcomando.
Agora eu tenho duas coisas para descobrir, de onde isso está setxkbmapsendo executado e por que e como consertar isso. Ainda estou investigando, mas poderia usar seriamente alguma ajuda :)
Atualização 2
Para o inferno com xmodmap. Não consigo descobrir de onde setxkbmapestá sendo chamado, mas imaginei uma maneira de usar o setxkbmapcomando para fazer meu Caps Lock se comportar como Ctrl.
setxkbmap -option ctrl:nocaps
Antes de iniciar o openbox. Funciona brilhante. A tecla caps lock permanece atuando como uma tecla ctrl. xmodmapnunca é executado.
Manterei essa pergunta aberta, para que alguém que saiba essas coisas possa fornecer algumas dicas. Além disso, para pessoas que enfrentam isso depois de mim :)
Atualização 3
Aqui está o conteúdo do meu .config/openbox/autostart, conforme solicitado por pedrosaurio.
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
Isso não tem nada a ver com o teclado, pelo que sei. Além disso, aqui está o script que inicia minha sessão: (Executar por lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
autostartarquivo?