Eu tenho um pouco de problema. Eu queria remapear algumas teclas de atalho que estou acostumado no meu sistema anterior, mas não consigo fazê-lo funcionar corretamente xbindkeys
.
xbindkeys
reconhece a combinação, mas de alguma forma o comando não dispara.
Se eu usar o comando
xdotool key braceleft
Isso gera o {
sinal correto no console. No entanto, se eu usar o mesmo comando no xbindkeys, nada acontece. Se eu substituir o comando, firefox
ele funcionará corretamente e abrirá o Firefox, então acho que xbindkeys
funciona.
Eu quero alcançar o seguinte:
Quero digitar o caractere {
na janela ativa com
Alt_R+ 7ou Alt_Left+ Ctrl+ 7para que eu possa usar os dois. Eu sei que Alt_R(AltGr) é a maneira correta, mas em teclados alemães é difícil digitar o braceleft com a AltGrtecla (Alt_R), então eu tenho que usar Alt_L+ Control+ 7(como eu estava acostumado no meu sistema anterior). De alguma forma, consegui que funcionasse corretamente no 12.04, mas não consigo fazê-lo no 14.04.
Alguma sugestão? Eu tentei vários comandos. Todos eles funcionaram no console, mas nenhum deles funcionou quando executado por xbindkeys
xdotool type '{'
xdotool key braceleft
xdotool key ISO_Level3_Shift+7
xvkbd -xsendevent -text '{'
xvkbd -xsendevent -text '\[Alt_R]+7'
Esta é a minha configuração, que não funcionará
"xdotool key braceleft"
Control+Alt + 7
No entanto, isso funciona:
"firefox"
Control+Alt + 7
Solução Editar
Enquanto eu tentava outras coisas, notei que o xdotool parece disparar muito cedo. Eu alterei a configuração assim:
"sleep 1 && xdotool type --delay 15 '{'"
Control+Alt + 7
AGORA ele envia o sinal {correto para a janela ativa. Agora, a única coisa que resta é reduzir o sono e o atraso para um valor viável, porque 1 segundo parece um pouco longo :)
** Informações de adição ** Bem, agora consegui encontrar valores adequados. No entanto, isso só funciona se você soltar as teclas até que a duração do sono termine. Se você é muito lento, se não funcionar.
Esta é a minha configuração atual para todos os caracteres AltGr alemães não convenientes
"sleep 0.2 && xdotool type --delay 15 '{'"
Control+Alt + 7
"sleep 0.2 && xdotool key --delay 15 at"
Control+Alt + q
"sleep 0.2 && xdotool type --delay 15 '€'"
Control+Alt + e
"sleep 0.2 && xdotool type --delay 15 '['"
Control+Alt + 8
"sleep 0.2 && xdotool type --delay 15 ']'"
Control+Alt + 9
"sleep 0.2 && xdotool type --delay 15 '}'"
Control+Alt + 0
"sleep 0.2 && xdotool type --delay 15 '~'"
Control+Alt + plus
No entanto, se você quiser digitar vários sinais @ (por exemplo), pressione Ctrl + Alt + Q conforme pretendido, mas solte todas as teclas e pressione-o novamente. Isso, no entanto, é muito, muito melhor do que não ter a opção Control + Alt em vez de AltGr, mas não é tão eficaz quanto eu também fui usado. Talvez eu encontre uma solução para isso também.
xdotool
repetir a tecla enquanto pressionado?
xdotool getactivewindow key Home