Existe alguma maneira de obter o estado do botão do mouse no bash? O Xdotool pode apenas obter a localização do mouse.
Eu gostaria de definir algo em que eu possa definir uma regra em que, quando um botão do mouse for pressionado, um script possa ser executado.
MouseButton1Down
e osMouseButton1Up
eventos para agir.Respostas:
Isso fornece um estado para todos os botões do mouse, assim:
O mouse_id pode ser obtido em:
Aqui está um pequeno script do observador de botão do mouse:
Pode ser necessário alterar a sequência de detecção do MOUSE_ID ('mouse') para outra coisa.
fonte
xinput --list
me dáX Input extension not available.
. Infelizmente, o Google para esse assunto não revela nada que seja útil no meu caso:Xvnc4
em uma VM Debian mínima. Provavelmente estou fora da sorteVocê pode usar a ferramenta de linha de comando
xev
para descobrir o estado dos botões do mouse no ambiente X.Exemplo
Mas essas informações levam você apenas parcialmente a uma solução. As principais informações que você deseja extrair de cima são qual número está associado a um botão específico do mouse. No meu exemplo, estou pressionando o botão esquerdo "buton 1".
xbindkeys
Você pode usar esta ferramenta para configurar uma ação associada a um botão que está sendo pressionado. Você pode até configurar uma regra que exija o pressionamento de tecla ou mesmo um botão + pressionado juntos.
Exemplo
Você precisará primeiro verificar se os pacotes xbindkeys estão instalados.
Em seguida, você precisará executar o comando a seguir, apenas uma vez, para criar um arquivo de configuração do modelo xbindkeys.
Com o arquivo criado, você pode abri-lo em um editor de texto e adicionar uma regra como esta:
Esta regra indica que queremos executar o programa
xterm
quando o botão 3 for pressionado. O "botão 3" é o botão direito do mouse.Com a alteração acima feita, precisamos matar o xbindkeys se ele já estiver em execução e depois reiniciá-lo.
Agora, com isso sendo executado sempre que eu clicar no botão direito do mouse, um
xterm
será executado.Referências
fonte
se você quiser executar o comando bash no xterm com um clique do mouse (ou evento de roda), tente este exemplo:
isto é para evento de roda (para o conjunto de cliques 12)
fonte
Você não pode pressionar o botão do
boloe comê-lo. Se você deseja que seu script receba um evento do mouse, o evento do mouse será enviado ao seu script em vez de qualquer outro aplicativo - isso significa que seu script precisa capturar o evento do mouse. Se o seu script não reivindicar o evento, a janela que deve obtê-lo será exibida.Se desejar, você pode reenviar o evento do mouse para a janela focada ou a janela nas coordenadas especificadas (
xdotool click
).Você pode usar XBindKeys para executar um script em determinados eventos de mouse ou teclado.
fonte