Linux Gamers e possessori di questo mouse? (la guida dovrebbe funzionare per qualunque mouse a più tasti)
A4Tech X7 Gamer Mouse
si? anche io
Caratteristiche
- model: X-718
- ottico
- 5 tasti
- fino a 2000 dpi e possibilità di cambiare al volo i dpi con un tasto addizionale ciclando fra: 600 dpi, 800dpi, 1200dpi, 1600dpi, 2000dpi
Edit: pare che la Trust abbia preso il mouse dell’A4Tech e lo abbia ribrandizzato chiamandolo Trust GM 4600 🙂 così anche i possessori di questo mouse potranno seguire la qui presente guida… in realtà la guida è riadattabile con un po’ di impegno a qualunque tipo di mouse
**********************
Aggiornamento 23 Maggio 2008
- La guida ha un difetto non da poco per chi utilizza altre periferiche usb oltre il mouse (es. tastiere USB) questo è stato corretto spiegando una modifica della procedura
**********************
Veniamo alla guida
Di default non tutti i tasti del mouse funzionano su Linux, oppure se premete quelli laterali è come se premeste il tasto sinistro e il tasto destro? 🙂
in questa guida spiegherò come configurare questo mouse, o qualunque altro mouse per cui i tasti non funzionano
NOTA: io sono molto prolisso, ma alla fine i passi per configurare il vostro mouse non sono moltissimi e non è una cosa difficile 🙂
Il metodo gestirà l’input del mouse tramite il modulo evdev, modulo generico di gestione degli input fornito in genere con Xorg, quindi dovreste già averlo..
se così non fosse basterò installare il pacchetto xserver-xorg-input-evdev ( apt-get install xserver-xorg-input-evdev )se siete su un sistema Debian (come Ubuntu) se siete su altri sistemi cercate “evdev” tra i pacchetti ed installate il pacchetto necessario. Se non lo trovate è molto probabile (leggi: sicuro) che sia già installato con xorg (so ad esempio che nei sistemi SUSE è già installato)
Io ce l’avevo già installato nel sistema e non ho dovuto far nulla..
ora scopriamo qual’è l’handler del nostro mouse, cioè ci serve sapere come l’interfaccia evdev chiama il nostro mouse, aprite un terminale e scrivete
cat /proc/bus/input/devices
potreste ottenere una lunga lista di device, trovate il vostro, che nel caso dell’A4tech X7 è questo:
I: Bus=0003 Vendor=09da Product=000e Version=0001
N: Name=”A4Tech PS/2+USB Mouse”
P: Phys=usb-0000:00:02.1-1/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse1 event3 ts1
B: EV=7
B: KEY=ff0000 0 0 0 0 0 0 0 0
B: REL=303
l’handler può cambiare da computer a computer.. la riga che identifica il nostro dispositivo è quella che comincia con “N:“, come vedete il mouse viene identificato come un “A4Tech PS/2+USB Mouse”, ora però ci serve sapere qual’è l’handler di quel mouse.. lo vedete in grassetto, nella riga che comincia con “H:” si chiama eventX dove X è un numero che può variare da computer a computer, nel mio si chiama event3 e io proseguirò la guida usando event3, voi sostituitelo con il numero corretto
Adesso dobbiamo modificare le impostazioni di X perché utilizzi evdev per gestire il nostro mouse, ma prima facciamo un backup, non si sa mai!
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
abbiamo fatto un backup della configurazione di xorg, se qualcosa andasse storto ripristinate il vecchio file di configurazione con:
sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf
e quindi ricominciate..
NOTA: io ho usato il comando “sudo” in alternativa potete aprire un terminale di root e scrivere le stesse cose senza usare “sudo”, alcuni sistemi non hanno sudo abilitato 🙂 (se non sapete come fare aprite un terminale, scrivete “su” date invio e quindi inserite la password di root..)
ora.. aprite il file che dobbiamo modificare come utenti root
sudo gedit /etc/X11/xorg.conf
se non avete gedit o preferite usare altri editor di testo semplicemente sostituite “gedit” con il vostro editor preferito (kedit, nano, vim, ecc..)
quindi localizzate la sezione che riguarda la configurazione del mouse
sarà qualcosa di simile:
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" # Option "Emulate3Buttons" "false" EndSection
e sostituitela con
Section "InputDevice" Identifier "Configured Mouse" Driver "evdev" Option "Device" "/dev/input/event3" Option "Name" "A4Tech X7" EndSection
NON cambiate l’Identifier
cambiate event3 con l’eventX del vostro mouse
se non volete eliminare le righe semplicemente mettete un cancelletto ( # ) davanti ad ogni riga che volete rimuovere, quelle righe verranno ignorate
così:
Section "InputDevice" Identifier "Configured Mouse" # Driver "mouse" # Option "CorePointer" # Option "Device" "/dev/input/mice" # Option "Protocol" "ImPS/2" # Option "Emulate3Buttons" "false" Driver "evdev" Option "Device" "/dev/input/event3" Option "Name" "A4Tech X7" EndSection
tutto chiaro?
***********************
Aggiornamento 23 Maggio 2008
La procedura qui sopra dà dei problemi: ogni volta che scollegate e ricollegate il mouse il sistema gli assegna un handler diverso (event3, event4, event5, ecc…):
C’è un modo semplice per risolvere la cosa. udev quando collegate il mouse crea i device associati (come /dev/input/event3) ma crea anche dei collegamenti simbolici.. ed è proprio sfruttando questi che si risolve il problema..
Prendo ad esempio il mio nuovo mouse (Logitech MX 518):
In questo momento il mio mouse è associato all’event2; se però lo stacco e lo riattacco potrebbe essere associato ad un altro event. Io ho anche una tastiera USB che ha 2 device di tipo “event” associati.. uno per il normale funzionamento da tastiera ed uno per i tasti multimediali…
Con il precedente metodo può succedere un po’ di tutto: non funziona la tastiera o i tasti speciali e neppure il mouse…
però si può notare questo:
$ ls /dev/input/by-id/
usb-BTC_USB_Multimedia_Keyboard-event-kbd
usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse
usb-Logitech_USB-PS.2_Optical_Mouse-mouse
Come vedete c’è la tastiera ma c’è anche il Mouse…
e a noi interessa la seconda voce: “usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse”
se infatti osservate a cosa punta questo link simbolico:
$ls -l /dev/input/by-id/
….
usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse -> ../event2
….
Il “bello” è che quel link avrà sempre lo stesso nome e punterò sempre all’event device corretto.
Quindi.. una volta scoperto il nome esatto di quel link sostituite in xorg.conf
Option "Device" "/dev/input/by-id/usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse"
Talvolta aiuta anche impostare l’opzione “name”
Option "Name" "Logitech USB-PS/2 Optical Mouse"
Il nome preso da:
$ cat /proc/bus/input/devices
***********************
salvate e riavviate Xorg (CTRL+ATL+BACKSPACE) oppure semplicemente fate il Log-Out dal vostro utente e rientrate
il mouse dovrebbe funzionare..
se non dovesse partirvi l’interfaccia grafica NIENTE PANICO, e fate questo qui sotto
segnatevi qual’è il problema (anche se non capite il significato dell’errore)
salvatevi il file “sbagliato” così potrete poi studiarlo per capire qual’era l’errore
cp /etc/X11/xorg.conf ~/xorg.conf.sbagliato
per quest’ultimo comando non occorre essere root, il file xorg.conf.sbagliato verrà salvato nella vostra cartella “home”
fate il log in da quella testuale e ripristinate il backup con il comando che vi ho detto sopra, quindi provate a far ripartire l’interfaccia grafica con il comando:
sudo /etc/init.d/gdm restart
se non usate gdm sostituitelo con kdm (predefinito di kubuntu e altri sistemi KDE), o talvolta xdm
in alternativa potete riavviare il computer con il comando
sudo shutdown -r now
per quest’ultimo comando occorre essere root ovviamente ( vedete “sudo” ? )
a questo punto sarà tutto come all’inizio della guida, potete cercare l’errore su google per capire cosa avete sbagliato, o potete chiedere in qualche forum
se il mouse funziona non abbiamo ancora finito, ma quasi :D, comunque il vostro sistema non dovrebbe + correre rischi heheeh, scherzo 😛
ora bisogna dare un nome ai bottoni del mouse (button1, button2, button3, ecc…)
per cambiarlo temporaneamente possiamo usare un comando tipo questo, non fatelo ancora.. leggete sotto:
xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7"
questo comando è esattamente quello che serve per l’A4Tech X7, a meno che non abbiate la versione con un tasto in più, in quel caso dovrete procedere per tentativi come descrivo qui, altrimenti potete saltare questa parte o usarla solo come “test”
A4tech X7 versione con un tasto in più
prima di tutto, vediamo come capire l’assegnamento attuale
ci serve il comando xev, che nei sistemi debian si trova nel pacchetto xbase-clients, c’è una buona probabilità che abbiate già il comando xev, provatelo da un terminale (confermatemi nei commenti perfavore)
schermata di xev
Il programma serve a visualizzare tutti gli eventi che il server grafico (X – Xorg) riconosce, quando voi lo aprite da terminale se muovete il mouse lì sopra o premete dei tasti vedrete un sacco di testo che scorre nel terminale.. a noi interessa sapere quali bottoni del mouse vengono premuti, avviate quindi xev in questo modo:
xev | grep button
in questo modo vedrete solo le righe dove vi dirò quali tasti avete premuto, posizionatevi con il mouse sulla finestra e premete i vari tasti del mouse, intanto guardate il risultato nel terminale, eccone un esempio del mio mouse già configurato:
Tasto sinistro
state 0x0, button 1, same_screen YES
state 0x100, button 1, same_screen YES
Tasto centrale (premete la rotella)
state 0x0, button 2, same_screen YES
state 0x200, button 2, same_screen YES
Tasto destro
state 0x0, button 3, same_screen YES
state 0x400, button 3, same_screen YES
Primo di lato
state 0x0, button 7, same_screen YES
state 0x0, button 7, same_screen YES
Altro bottone di lato
state 0x0, button 6, same_screen YES
state 0x0, button 6, same_screen YES
Rotella verso di voi
state 0x0, button 5, same_screen YES
state 0x1000, button 5, same_screen YES
Rotella distante da voi
state 0x0, button 4, same_screen YES
state 0x800, button 4, same_screen YES
alcune considerazioni:
- gli eventi per i bottoni 8 e 9 non ci sono, non vi so spiegare il motivo ma non devono essere usati, suppongo siano utilizzati per qualche evento interno al mouse, se avete più bottoni credo che gli ultimi 2 non vadano usati (quindi se ne avete uno in più il 9 e il 10 non devono essere usati)
- quando ruotate la rotella è considerato un bottone che si preme, la rotella DEVE essere associata ai bottoni 4 e 5 (4 rotella verso l’alto, distante; 5 rotella verso il basso, vicino)
- il tasto 2 è quello centrale (premendo la rotella), il 3 quello di destra
adesso riprendiamo il comando di prima, che siamo in grado di commentarlo meglio
xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7"
in quest’ordine stiamo dando l’assegnazione che vedete in figura (il tastino piccolo che cambia la precisione del mouse non può essere personalizzato, verrà sempre e comunque usato come se cliccassimo il tasto sinistro, oltre che per cambiare la precisione del mouse)
assegnamento con la sequenza: 1 2 3 4 5 8 9 6 7
come avete visto ci sono dei bottoni “fantasma” a volte.. quanti sono quindi i numeri che dobbiamo mettere nella sequenza? lo scopriamo facilmente dando il comando
xmodmap -e "pointer = 1 2 3 4 5 8 9 6"
Warning: Only changing the first 8 of 9 buttons.
come vedete ho messo un numero in meno e mi viene detto che ho cambiato solo i primi 8 bottoni di 9, se ne avessi messo in più mi dava lo stesso errore… sempre dicendomi quanti sono i bottoni 🙂 nel mio caso 9 (e quindi la sequenza di numeri va da 1 a 9..) l’ordine corretto lo si ottiene provando!
vi do alcuni consigli:
- button1 deve essere il pulsante sinistro
- button2 deve essere il pulsante centrale (rotella)
- button3 deve essere il tasto destro
- button4 e button5 devono essere assegnati ai movimenti della rotella
- dal button6 in avanti tutti gli altri bottoni, nell’ordine che preferite (cercate di lasciare fuori gli ultimi)
- in genere il primo numero è sempre 1, il secondo e il terzo possono cambiare.. il quarto e il quinto son quasi sempre i movimenti della rotella del mouse
- provate poi ad assegnarli all’interno di qualche gioco (li vedrete come MOUSE4, MOUSE5 e così via… quando all’inizio avevo impostato i bottoni 8 e 9 ai 2 tasti laterali li vedevo come KP_HOME, ed erano inutilizzabili)
vorrei scrivere un lista di numeri per i vari modelli di mouse, se li testate e trovate una sequenza corretta fatemela sapere che la riporto qui (in particolare per l’altra versione ad un tasto in più dell’ X7)
NOTA per mancini
se siete mancini questo mouse non fa per voi 😀 perché ha i tasti laterali a destra 🙂
comunque visto che la guida è generica….
vi basta invertire i primi 3 numeri
es: pointer = 3 2 1 4 5 8 9 6 7
rendiamo la modifica predefinita
aprite con un editor di testo il file .Xmodmap (file nascosto) nella vostra home
gedit ~/.Xmodmap
(non serve essere root)
e scrivete all’interno questo (senza “xmodmap -e”):
pointer = 1 2 3 4 5 8 9 6 7
sostituite la sequenza di numeri con quella che avete trovato per il vostro mouse, questa è corretta per il mio 🙂
adesso quando entrate nel sistema dovrebbe già essere a posto…
se non funziona continuate a leggere..
in alcune distribuzioni il file .Xmodmap non viene caricato
in questo caso la soluzione è aprire il file .xinit (sempre nella home)
gedit ~/.xinit
ed aggiungere il comando
xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7"
Per completare l’opera
Se poi volete raggiungere le massime prestazioni dal vostro mouse potete aumentare la frequenza di aggiornamento dati del mouse sul vostro sistema.
Links
Linux Gamers – Make All mouse button works Howto
Note personali
sei stato un buon mouse, bello, preciso.. però adesso che la rotella non funziona più a dovere dobbiamo separarci! Ecco perché ti ho dedicato questo post sul mio blog! Addio A4Tech X7 :P!
eheh… in realtà resterai il mio mouse da viaggio 😀
Il mio nuovo mouse avrà presto il suo articolo 😀
26 settembre, 2011 at 17:29
[…] aşağıdaki yöntemi kullanabilirsiniz. (Anlatımın orjinali İtalyanca bir sitede. Girmek için buraya tıklayabilirsiniz. Türkçe’ye çeviren arkadaş için buraya tıklayabilirsiniz. Ben onun […]
1 ottobre, 2009 at 23:40
[…] aşağıdaki yöntemi kullanabilirsiniz. (Anlatımın orjinali İtalyanca bir sitede. Girmek için buraya tıklayabilirsiniz. Türkçe’ye çeviren arkadaş için buraya tıklayabilirsiniz. Ben onun […]
23 Maggio, 2008 at 13:43
Ho modificato l’articolo..
adesso dovrebbe funzionare ovunque
6 Maggio, 2008 at 5:10
Ok, ho riletto le licenza ed è più libera che mai 🙂
http://www.freemodding.it/modules/newbb/viewtopic.php?topic_id=4123&forum=34
Dal sito Freemodding guida di Claudio Pentangelo.
Spero la possiate trovare utile.
5 Maggio, 2008 at 5:58
Ciao canduz, perché non indichi a tutti il procedimenti che hai utilizzato? 😉
30 aprile, 2008 at 10:48
Ho così tante email nell’ elenco di Gmail che non so nemmeno chi andare a pescare 😀 la tua dovrei averla, comunque l’ ho inviata a quella scritta in contact me 🙂
Ciao ciao
29 aprile, 2008 at 12:04
@Canduz
in realtà mi sono accorto di un problema con questo mio articolo e non ho ancora avuto il tempo di sistemarlo…
cmq si mi interessa vedere il link di cui parli 🙂
hai la mia email? altrimenti ne trovi una in “contact me” in alto a destra
29 aprile, 2008 at 11:59
Oi grandissimo mastro per questa guida !
Riconfermo, in Suse 10.3 xev è già presente con il sistema base e funziona senza rogne.
Su Suse il procedimento è andato a meraviglia, solo un baco ti vorrei segnalare, ho provato questo tutorial su ubuntu 7.10 / 8.04 e non è mai funzionato ho dovuto infatti usare un’ altro sistema volendo te lo posso inviare via email perchè non credo che la licenza con cui è stato rilasciato mi permetta di linkarlo a destra e a manca 😀
Fammi sapere e grazie ancora 🙂
30 dicembre, 2007 at 21:07
@spacelinux
ehehhe.. si forse non troppo facile ma con un po’ di volontà e qualche tentativo si ottiene il risultato sperato! 😀
30 dicembre, 2007 at 18:54
complimenti!! finalmente i tasti laterali funzionano!! grandissima guida, io l’ho usata per il mio mouse Trust!!
grande di nuovo!!! ciao
28 novembre, 2007 at 1:59
@SoulSmasher
keep me informed 🙂
i can link the translations (both turkish and english)
27 novembre, 2007 at 22:02
the guide i translated to is turkish 🙂
thanks again, helped a lot to me, also i’m planning to translate to english too 🙂
27 novembre, 2007 at 21:11
[…] bir italyan sitesinde gördüğüm makaleyi sizlerle paylaşmak istedim.. makalenin orjinali Bu sayfada […]
17 novembre, 2007 at 14:45
@SoulSmasher
you are welcome! 🙂
i’m happy you managed to use this tutorial either if it is in Italian..
sadly i don’t have enough time to write all my article both in english and in italian.. 🙂
i often see visit from google translator.. and anyway if somone ask for a translation if it is really needed i usually do my best to provide it
17 novembre, 2007 at 13:56
thank u so much! at last it works great! 🙂 actually i don’t understand a word italian, but thanks to google translate tools, i managed to configure my mouse (x750-f) which shows as event2
thank u 🙂
1 novembre, 2007 at 9:33
Confermo che xev in suse 10.3 con installazione predefinita desktop c’è!!
16 luglio, 2007 at 16:58
@bastianazzo
la risposta a questa domanda è sempre la solita…
se quando compri il tuo mouse o il tuo portatile ci fosse un bel CD con i driver per linux non dovresti installarti xbindkeys ecc…
tu puoi riuscire ad ottenere le stesse cose da xorg.conf.. con altri driver (che non siano evdev)
(parlo del funzionamento dei tasti addizionali)
ma non sempre funziona, perché il protocollo usato potrebbe essere non standard…
ad esempio per il mio vecchio mouse (quello di questa guida) i tasti aggiuntivi venivano visti come duplicati del tasto destro e sinistro..
cmq le possibilità che ti danno questi metodi sono in genere più ampie di quelle che hanno gli utenti di altri sistemi… solo che bisogna studiarsele un po’..
oppure trovare guide semplici e seguirle bovinamente 🙂
le cose stanno cambiando.. ma siamo solo all’inizio 😉
16 luglio, 2007 at 15:22
ok, questo rispecchia quello che avevo letto un po’ in giro. ma quello che mi chiedo io è: perchè si è costretti ad installare xbindkeys e poi a farne un file di configurazione apposito? non dovrebbe essere possibile modificare le impostazioni di Xorg? è un po’ come il fatto di dover installare gSynaptics e poi doverlo far partire all’avvio di Gnome per utilizzarne le impostazioni…
ma scusa: se si tratta di impostazioni del mouse o del touchpad, non dovrebbe essere possibile impostarle da qualche parte senza dover avviare programmi esterni tipo gSynaptics o xbindkeys?
grazie per la risposta celere 🙂 nonstante il tempo sia quello che sia 😛
16 luglio, 2007 at 11:45
@bastianazzo
si questo tutorial fa riconoscere i tasti in più (se non vengono riconosciuti in automatico), e serve ad imparare qualcosa di nuovo per chi già non conosce queste cose
per quanto riguarda l’assegnazione dei bottoni del mouse.. no.. questa guida non ha come scopo l’insegnamento di queste cose
ho intenzione di scriverne una, ma il mio tempo è quello che è 🙂
ad ogni modo seguendo uno dei link a fine articolo ti viene dato qualche consiglio in proposito, poca roba…
e messa così non molto semplice ad essere sinceri 🙂
se non vuoi aspettare la mia guida ti do qualche dritta
devi installare xvkbd e xbindkeys
quindi creare e modificare un file nella tua home ( .xbindkeysrc )
per quel che vuoi fare tu nel file devi metterci questo
# Backward and Forward buttons
“xvkbd -xsendevent -text “\[Alt_L]\[Left]””
m:0x0 + b:6
“xvkbd -xsendevent -text “\[Alt_L]\[Right]””
m:0x0 + b:7
dove b:6 e b:7 vogliono dire “button 6” e “button 7”
🙂
http://hocwp.free.fr/xbindkeys/xbindkeys.html
16 luglio, 2007 at 7:42
ciao! scusa ma non ho capito una cosa. questa guida serve solo per far riconoscere a xorg i pulsanti aggiuntivi rispetto ad un mouse standard?
e se volessimo assegnare a questi pulsanti una funzione comune, tipo “avanti” o “indietro” nel browser, oppure “scroll a destra” o “scroll a sinistra”, come si fa? bada che sto parlando di eventi che immagino siano associati ad Xserver stesso, non di cose tipo sparare con il terzo fucile o cose del genere 😉
grazie!
10 luglio, 2007 at 19:51
[…] Link to Article linux Mouse A4Tech X7 con Linux, facciamo funzionare tutti i tasti! Funziona con […]