Estou configurando o openbox no meu laptop executando o Linux Mint 13. Quero que minha tecla Caps Lock atue como uma chave de controle adicional. Coloquei as configurações necessárias no meu arquivo ~/.Xmodmap
e verifiquei executando
xmodmap ~/.Xmodmap
Funciona corretamente.
No entanto, quando relogino para minha sessão de caixa aberta, essas alterações de chave não estão presentes. Executar o comando xmodmap
acima faz com que ele funcione novamente, mas quero que isso aconteça automaticamente na inicialização.
O que é interessante é que eu adicionei um comando zenity
do teste como segue ao meu arquivo ~/.config/openbox/autostart
zenity --info --text=Hello
Isso produz uma pequena janela de diálogo e sai somente após o fechamento da caixa de diálogo.
Agora, quando eu relogino para a minha sessão de caixa aberta, o Caps Lock age como uma tecla Ctrl, até que a caixa de diálogo zenity seja fechada. Quando esse diálogo é fechado, o Caps Lock retorna ao seu comportamento padrão.
Eu não encontrei nada sobre isso com o Google, então estou pedindo ajuda aqui. Vocês têm alguma ideia sobre o que pode estar errado?
Atualização:
Eu tenho tentado descobrir isso e, em meus experimentos, copiei meu arquivo /usr/bin/xmodmap
para /usr/bin/xmodmap_
e substituí o arquivo /usr/bin/xmodmap
pelo 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 executa xmodmap
, eu fico sabendo.
Com isso, eu relogio e localizo apenas uma entrada no meu arquivo ~/xmodmap-calls
, que é o que executa meu ~/.Xmodmap
, o que é esperado. Então, percebi que não é um xmodmap
que está sobrescrevendo minhas alterações.
Em seguida, um pouco de googling me apresentou o comando setxkbmap
, que aparentemente também pode fazer a mesma coisa. Eu substituí esse executável também, semelhante ao xmodmap acima. E eu tenho o comando culpado!
setxkbmap -option terminate:ctrl_alt_bksp
Eu não tenho absolutamente nenhuma idéia do que isso faz, mas depois de executar xmodmap ~/.Xmodmap
(que aplicava minhas configurações corretamente), se eu executar o comando acima, minhas alterações serão redefinidas! Editar : Isso está ficando muito engraçado. Apenas um comando setxkbmap
sem nenhum argumento, felizmente substitui minhas alterações pelo comando xmodmap ~/.Xmodmap
.
Agora eu tenho duas coisas para descobrir, onde está esse setxkbmap
sendo executado em & por que e como consertar isso? Eu ainda sou investigação, mas poderia usar seriamente alguma ajuda:)
Atualização 2
Para o inferno com xmodmap
. Não consigo descobrir de onde o setxkbmap
está sendo chamado, mas imaginei uma maneira de usar o comando setxkbmap
para fazer meu Caps Lock se comportar como Ctrl.
setxkbmap -option ctrl:nocaps
Pouco antes de iniciar o openbox. Funciona brilhante. A tecla caps lock permanece atuando como uma tecla ctrl. xmodmap
nunca é executado.
Vou manter esta questão aberta para que alguém que conheça essas coisas possa fornecer algumas dicas. Além disso, para as pessoas que enfrentam isso depois de mim:)
Atualização 3
Aqui está o conteúdo do meu .config/openbox/autostart
, conforme solicitado pelo 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, tanto quanto eu posso dizer. Além disso, aqui está o script que inicia minha sessão: (Run by lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session