Existe-t-il un moyen d'obtenir l'état du bouton de la souris à partir de bash? Xdotool ne peut obtenir que l'emplacement de la souris.
Je voudrais mettre en place quelque chose où je peux définir une règle où lorsqu'un bouton de la souris est enfoncé, un script peut être exécuté.
MouseButton1Down
et lesMouseButton1Up
événements sur lesquels agir.Réponses:
Cela vous donne un état pour tous les boutons de la souris, qui ressemble à ceci:
Le mouse_id peut être obtenu à partir de:
Voici un petit script d'observateur de bouton de souris:
Vous devrez peut-être remplacer la chaîne de détection MOUSE_ID («souris») par autre chose.
la source
xinput --list
me donneX Input extension not available.
. Malheureusement, Google ne révèle rien qui soit utile dans mon cas:Xvnc4
dans une machine virtuelle Debian minimale. Je n'ai probablement pas de chanceVous pouvez utiliser l'outil de ligne de commande
xev
pour connaître l'état des boutons de votre souris dans l'environnement X.Exemple
Mais ces informations ne vous permettent que partiellement de trouver une solution. Les informations clés que vous souhaitez extraire ci-dessus sont le numéro associé à un bouton particulier de votre souris. Dans mon exemple, j'appuie sur le bouton gauche, "buton 1".
xbindkeys
Vous pouvez utiliser cet outil pour configurer une action associée à un bouton enfoncé. Vous pouvez même configurer une règle qui nécessite une pression sur une touche ou même une touche + touche enfoncée ensemble.
Exemple
Vous devrez d'abord vous assurer que les packages xbindkeys sont installés.
Ensuite, vous devrez exécuter la commande suivante, une seule fois, pour créer un fichier de configuration de modèle xbindkeys.
Une fois le fichier créé, vous pouvez l'ouvrir dans un éditeur de texte et ajouter une règle comme celle-ci:
Cette règle stipule que nous voulons exécuter le programme
xterm
lorsque le bouton 3 est enfoncé. Le "bouton 3" est le bouton droit de ma souris.Avec le changement ci-dessus, nous devons tuer xbindkeys s'il est déjà en cours d'exécution, puis le redémarrer.
Maintenant que cela fonctionne à chaque fois que je clique sur le bouton droit de la souris, un
xterm
sera exécuté.Les références
la source
si vous voulez simplement exécuter la commande bash dans xterm sur un clic de souris (ou un événement de roue), vous pouvez essayer cet exemple:
c'est pour l'événement de roue (pour le jeu de clics 12 à la place)
la source
Vous ne pouvez pas avoir votre événement de presse de bouton de
gâteauet le manger. Si vous voulez que votre script reçoive un événement de souris, alors l'événement de souris sera envoyé à votre script au lieu de toute autre application - cela signifie que votre script doit saisir l'événement de souris. Si votre script ne revendique pas l'événement, la fenêtre qui devrait l'obtenir l'obtient.Si vous le souhaitez, vous pouvez renvoyer l'événement de la souris à la fenêtre focalisée ou à la fenêtre aux coordonnées données (
xdotool click
).Vous pouvez utiliser XBindKeys pour exécuter un script sur certains événements de souris ou de clavier.
la source