È possibile utilizzare lo strumento da riga di comando xev
per scoprire lo stato dei pulsanti del mouse all'interno dell'ambiente X.
Esempio
$ xev
...
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319064320, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
ButtonRelease event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319064439, (164,14), root:(166,101),
state 0x100, button 1, same_screen YES
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319065208, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
ButtonRelease event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319065337, (164,14), root:(166,101),
state 0x100, button 1, same_screen YES
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319066059, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
Ma queste informazioni ti portano solo parzialmente a una soluzione. Le informazioni chiave che si desidera estrarre dall'alto sono il numero associato a un determinato pulsante del mouse. Nel mio esempio sto premendo il pulsante sinistro, "buton 1".
xbindkeys
È possibile utilizzare questo strumento per impostare un'azione associata a un pulsante premuto. Puoi persino impostare una regola che richiede la pressione di un tasto o anche un tasto + pulsante premuti insieme.
Esempio
Devi prima assicurarti che i pacchetti xbindkeys siano installati.
Quindi dovrai eseguire il comando seguente, una sola volta, per creare un file di configurazione xbindkeys modello.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
Con il file creato puoi aprirlo in un editor di testo e aggiungere una regola come questa:
"xterm"
b:3
Questa regola afferma che vogliamo eseguire il programma xterm
quando viene premuto il pulsante 3. Il "pulsante 3" è il mio pulsante destro del mouse.
Con la modifica sopra apportata, dobbiamo eliminare xbindkeys se è già in esecuzione e quindi riavviarlo.
$ killall xbindkeys
$ xbindkeys
Ora, con questo in esecuzione ogni volta che faccio clic con il tasto destro del mouse, xterm
verrà eseguito.
Riferimenti
MouseButton1Down
e gliMouseButton1Up
eventi su cui agire.