Usa i tasti per i pulsanti del mouse su Linux. Alternativa ad AHK?


7

Su Windows ho uno script autohotkey che:

  • Funziona solo quando il blocco maiuscole è attivo
  • Genera eventi del pulsante sinistro, medio e destro del mouse quando si premono i tasti sinistro, menu e alt
  • Consente di tenere premuti i tasti (per trascinare gli oggetti)

Esiste un modo semplice per duplicare questa funzionalità in Linux?

Risposte:


3

X ha un meccanismo incorporato per controllare il cursore del mouse con la tastiera. Premere il Pointer_EnableKeystasto per attivare questa modalità (modalità tasti del mouse); di solito è associato a Shift+ NumLock.

In modalità tasti del mouse, le frecce tastiera spostare il puntatore, e gli altri tasti della tastiera emulano pulsanti ( /*-sono sinistra, centro, destra, rispettivamente; +resta doppio clic, ed 0e .sono lasciati pressione e rilascio).

Vedi i tasti del mouse per maggiori informazioni. A proposito, questa modalità può essere abilitata anche su Windows .


Grazie, ma temo che i mouse non funzionino perché uso ancora il mouse con la mano destra per spostare il cursore. E anche se potessi riassegnare i tasti usati dal programma mousekeys, dovrei cambiare esplicitamente tra sinistra, centro o destra. Con il mio script ahk posso appoggiare le dita sui tre tasti e premerne uno o una di loro all'istante.
dattilografo

1

Keymapping - clic del mouse - clic centrale Come mappare i pulsanti del mouse sui tasti della tastiera

Innanzitutto, disabilita la tastiera che controlla il mouse in modo che xev possa acquisire il codice chiave Quindi digita il comando:

$ xev

Quindi sposta il mouse nella piccola nuova finestra che si apre. Premi un pulsante del mouse per scoprire il nome di quel pulsante: vedi sotto, ho scoperto che uno dei miei pulsanti del mouse si chiama "pulsante 1"

ButtonPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x6200002, time 2427401, (31,41), root:(652,407),
    state 0x0, button 1, same_screen YES

Quindi scopri a quale tasto della tastiera vuoi mappare quel pulsante del mouse: Premi un tasto della tastiera e trova il codice chiave.

Quando premo il tasto spazio sulla mia tastiera, il terminale mostra:

KeyPress event, serial 37, synthetic NO, window 0x6200001,
    root 0x29d, subw 0x0, time 2152399, (398,60), root:(1019,426),
    state 0x0, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

dall'alto, abbiamo scoperto che il codice tasto per il tasto Spazio è 65 Quindi è necessario trovare i codici tasto dei tasti che si desidera mappare i pulsanti del mouse su ...

Quindi il passaggio successivo:

$ sudo apt-get install xkbset

Quindi copia lo script seguente e salvalo in un file chiamato keymap_mouse2kb.sh

ovviamente cambia i codici chiave della tastiera con quelli che desideri

#!/bin/bash
# set XKB layout
setxkbmap -layout us
# turn on mousekeys
xkbset m
# stop mousekeys expiring after a timeout
xkbset exp =m
# map keysym to other keysym
#xmodmap -e "keysym Menu = Pointer_Button2"
# this also works
 xmodmap -e "keycode 66 = Pointer_Button2"
 xmodmap -e "keycode 133 = Pointer_Button1"
 xmodmap -e "keycode 88 = Pointer_Button3"

Quindi rendere questo file eseguibile da

$ sudo chmod u+x keymap_mouse2kb.sh

Quindi eseguilo quando ne hai bisogno ... ad es. All'avvio

$ ./keymap_mouse2kb.sh

"setxkbmap -layout us - questo implica che potrebbe funzionare solo con 1 layout?
Sarge Borsch,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.