saída xdotool é interceptada por xbindkeys

0

Eu tenho uma chave quebrada no meu teclado, o ponto "." para ser específico. Ele se comporta de forma muito estranha, cerca de 7/10 vezes o teclado digita um ponto duplo ".." quando clicado uma vez. Eu uso xbindkeys para interceptar quando a tecla de ponto é pressionada e acionar meu script bash para iniciar. O script bash que escrevi verifica quantas instâncias estão sendo executadas e apenas digita "." uma vez.

  #!/bin/bash
  let "target=2"
  curr=$(ps -A | grep 'dot-writer.sh' | wc -l)
  if [ "$curr" -eq "$target" ]
  then
    numlockx on
    xdotool key KP_Delete
    sleep 0.1
  fi

Como você pode ver no script, não estou digitando o "." chave com xdotool, mas em vez disso, estou habilitando Numlock e digitando o outro "." no meu teclado localizado no teclado no mesmo botão como excluir.

Como você provavelmente pode imaginar, essa não é uma solução perfeita, porque essas duas chaves não agem exatamente da mesma maneira 100% do tempo.

Eu tentei dizer ao xdotool para digitar o "." como um caractere Unicode

xdotool key U002E

Eu tentei dizer ao xdotool para digitar o "." como uma string gerada pelo Bash

xdotool type $'.'

Eu tentei dizer ao xdotool para digitar o "." como uma string gerada pelo Bash contendo o caractere Unicode "."

xdotool type $'\u002E'

Nada disso parece funcionar quando é interceptado como se a tecla de ponto tivesse sido pressionada por xbindkeys e acionasse o mesmo script várias vezes.

Existe algo que eu possa fazer? Posso usar alguma outra ferramenta para imitar uma tecla?

    
por Egene 08.04.2017 / 13:57

0 respostas