Il seguente documento è offerto in buona fede comprendendo solo programmi e procedure sicure. L'autore non accetta nessuna responsabilità per qualsiasi perdita o danno causato in qualunque modo, a qualsiasi persona o cosa, come conseguenza diretta o indiretta del seguire le istruzioni date.
La versione più recente di questo documento può sempre essere trovata presso http://kipper.york.ac.uk/mouse.html.
C'è una traduzione in giapponese presso http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/3-Button-Mouse.euc; e una in francese presso http://www.freenix.fr/linux/HOWTO/mini/3-Button-Mouse.html. Potrebbero essere disponibili altre traduzioni - controllate i mirror dell'LDP nella vostra zona.
N.d.T.: L'ultima versione della traduzione italiana può essere trovata presso http://www.pluto.linux.it/ildp/HOWTO/HOWTO-INDEX-3.html
La maggior parte delle applicazioni X vengono scritte assumendo che l'utente lavorerà con un mouse a tre tasti. I mouse seriali sono usati comunemente coi computer e sono economici. Parecchi di tali mouse hanno 3 tasti e dichiarano di usare il protocollo Microsoft, che in teoria significa che sono l'ideale per X Windows (attualmente il record per il più economico mouse a 3 tasti, funzionante, è di 1,14$!).
La maggior parte dei mouse a doppio protocollo funzionano in due modi:
Questo documento vi guiderà attraverso i vari passi necessari per configurare e far funzionare il vostro mouse nei due suddetti modi, specialmente quelli che servono per usare il più utile modo a 3 tasti.
Man mano che le distribuzioni diventano più facili da installare 
alcuni problemi dovrebbero sparire. Per esempio, RedHat ha il programma 
mouseconfig per sistemare le cose al posto vostro. Tuttavia alcune 
versioni della RH 5.0 hanno un baco in mouseconfig, quindi 
controllate di avere le patch.
La prima cosa da fare è di accertarsi che il software possa trovare il 
mouse. Scoprite a quale porta è connesso il mouse - di solito è 
/dev/ttyS0 (COM1 sotto DOS) o /dev/ttyS1 (COM2) 
(ttyS0 di solito è il connettore a 9 contatti, ttyS1 
è il connettore a 25 contatti, ma ovviamente non c'è una regola 
fissa a tal riguardo). C'è anche un analogo numero di device 
/dev/cua, che sono quasi la stessa cosa dei ttyS, ma il 
loro uso è sconsigliato. Per prudenza create un nuovo link 
/dev/mouse che punta a tale porta. Per esempio la ttyS0:
ln -s /dev/ttyS0 /dev/mouse
Alcuni mouse, di solito non quelli più economici, hanno un interruttore sul fondo contrassegnato con `2/3'. A volte potrebbe essere `PC/MS'. In tal caso la posizione `2' è per il modo Microsoft a 2 tasti e la posizione `3' per quello MouseSystems a 3 tasti. L'interruttore `PC/MS' è leggermente più complicato. Probabilmente scoprirete che la posizione `MS' indica Microsoft e `PC' MouseSystems. Potreste trovare la posizione `PC' descritta come modo ps/2, ma dovrebbe funzionare lo stesso per MouseSystems. Se avete un tale mouse potete mettere l'interruttore su `3' o `PC', mettere le impostazioni per MouseSystems nel vostro XConfig (vedere più avanti) e il mouse dovrebbe funzionare perfettamente nel modo a 3 tasti.
Se non avete nessun interruttore e nessuna istruzione, allora è necessario fare un po' di esperimenti. La prima cosa da provare è di assumere che il costruttore stia dicendo la verità e il mouse è pienamente Microsoft. Impostate il vostro Xconfigs in modo che si aspetti un mouse Microsoft (vedere la Sezione Xconfig) e provatelo.
Se il mouse non funziona affatto allora il vostro non è un mouse Microsoft, oppure c'è qualche altro problema. Provate gli altri protocolli nei file di configurazione, la pagina di manuale del file di configurazione è il miglior posto dove incominciare a guardare. Guardate anche nella sezione Problemi vari più avanti.
Probabilmente ciò che otterrete sarà che sotto X il mouse funziona bene ma solo i due pulsanti esterni fanno qualcosa. Ovviamente potete accettare questa situazione ed emulare il terzo pulsante (premete entrambi i pulsanti contemporaneamente per fare clic col terzo) come fareste con un mouse a due tasti. Per fare ciò cambiate il vostro file Xconfig come mostrato nella successiva sezione Esempio di Xconfig. Questo potrebbe significare che avete comprato un mouse a 3 tasti senza un buon motivo e certamente non avete fatto passi avanti. Quindi adesso dovete controllare il vostro hardware.
Anche i mouse economici possono lavorare col protocollo Mouse Systems, con tutti e tre i pulsanti funzionanti. Il trucco è di indurre il mouse a pensare di essere un Mouse Systems, qualcosa che vedrete raramente nelle istruzioni.
Quando il mouse riceve l'alimentazione, se il pulsante sinistro è premuto, esso commuta nel modo Mouse Systems. Una cosa semplice, ma non sempre documentata. Osservate che un reset software del computer potrebbe non togliere l'alimentazione al mouse, e quindi potrebbe non funzionare. Per commutare il modo di funzionamento ci sono altre maniere che, con il vostro particolare mouse, potrebbero funzionare oppure no. Alcune di esse sono meno drastiche del riavvio del computer, un paio invece lo sono di più!
echo "*n" > /dev/mouse, che dovrebbe avere lo stesso effetto dello
scollegarlo. Per il modo Mouse Systems, non per quello Microsoft, tenete 
premuto il pulsante sinistro. Potete mettere tale comando nello script che
usate per far partire X.echo "*n" non funziona (e vice versa). Potete trovare una copia del
suo codice sorgente presso 
http://kipper.york.ac.uk/src/fix-mouse.c
         -----------
        | o | o | o |  SW1
         -----------
          1   2   3
ChordMiddle nell'XF86Config ed avrete un pulsante 
centrale funzionante.
Pin 3        Modo
----------   ---------
Scollegato   Microsoft per default. Mouse Systems se all'accensione
             viene tenuto premuto un pulsante.
GND          Sempre Mouse Systems.
Vdd          Sempre Microsoft.
        ____ 
pin1  -| \/ |-
pin2  -|    |-
pin3  -|    |-
      -|    |-
      -|    |-
      -|    |-
      -|    |-
pin8  -|____|-
         -----
      ---  R  ---------O------ + Alimentazione
     |   -----   |        |                         C = 100 nF condensatore
     |           | E      |                         R = 100 kOhm
     |       __ /         |                         T = BC557 transistor
     |      /  \          O
     |   B | #V | T         /
     |-----|-#  |          /   Interruttore del pulsante sinistro del mouse
     |     | #\ |         O
     |      \__/          |
    ---         \  C      |
    --- C        ------O----------> (da qualche parte all'interno del mouse)
     |
    ###  Massa (Gnd)
Questo è quanto, la scelta sta a voi. Restarvene col modo predefinito Microsoft a due tasti, oppure lavorarci su e trovare il sistema per cambiare il modo e configurare X per avvantaggiarsene.
I mouse con le rotelle sono apparsi negli ultimi anni, a partire dal Microsoft Intellimouse e poi per opera degli altri costruttori. La rotella può essere premuta come un pulsante, oppure rotolata su e giù. http://www.inria.fr/koala/colas/mouse-wheel-scroll/ è di gran lunga la miglior fonte di informazioni, descrive come far riconoscere l'azione di scorrimento a parecchie applicazioni X.
In generale vi servirà un Xserver abbastanza nuovo per usare l'azione di scorrimento, ma alcuni vecchi server riconosceranno la pressione della rotella. Per esempio, l'Intellimouse è supportato da XFree 3.3.1 e successivi.
gpm è il programma che permette di usare il mouse nel modo 
console. Di solito è incluso nelle distribuzioni di Linux e può 
essere lanciato dalla riga di comando o nello script di avvio 
/etc/rc.d/rc.local. Osservate che le distribuzioni non contengono 
sempre la versione più recente (la 1.13 nel momento in cui scrivo), 
che può essere trovata sui mirror di sunsite.unc.edu.
Sotto gpm, i modi fondamentali per i mouse seriali sono:
gpm -t ms
gpm -t msc
gpm -t help
per i modi Microsoft, MouseSystems, o per sondare il mouse al posto vostro
e dirvi cosa ha trovato. Per lanciare gpm nel modo MouseSystems potrebbe
servirvi l'opzione -3, e forse l'opzione DTR (usando 
-o dtr):
gpm -3 -o dtr -t msc
gpm è spesso in grado di riconoscere tutti e tre i pulsanti 
del mouse anche nel modo Microsoft. Le versioni più nuove (1.0 e 
successive (?)) possono poi rendere disponibile tale informazione agli altri 
programmi. Perché ciò funzioni dovete lanciare gpm con 
l'opzione -R, in questo modo:
gpm -R -t ms
/dev/gpmdata, che agli altri programmi
apparirà come un mouse. Osservate che tale device usa
sempre il protocollo MouseSystems. Potete quindi dire a
Xconfig di usare tale device (come mostrato sotto) al posto di
/dev/mouse ma, ovviamente, dovrete assicurarvi che gpm sia in
esecuzione quando volete usare X.  Qualcuno ha riferito che, usando
questa tecnica, alcune azioni del pulsante centrale non vengono
interpretate correttamente, ciò potrebbe essere dovuto ad una
particolare impostazione del mouse.
Cambiare la mappatura dei tasti per gpm e X ( gustafso@math.utah.edu)
Potreste accorgervi che gpm usa una diversa mappatura predefinita dei tasti rispetto a X e quindi usare entrambi i sistemi sulla stessa macchina potrebbe generare confusione. Per fare in modo che X usi gli stessi pulsanti di gpm per le operazioni di "seleziona" e "incolla", bisogna usare il comando:
xmodmap -e "pointer = 1 3 2"
-B, cioè:
gpm -t msc -B 132
In alcuni casi, per esempio un laptop con dispositivo di puntamento integrato,
potreste voler usare un mouse seriale come secondo dispositivo di puntamento.
Nella maggior parte dei casi il dispositivo integrato userà il 
protocollo PS/2 e potete ignorarlo, se non avete intenzione di usarlo. 
Semplicemente configurate gpm o X per usare /dev/ttyS0 (o quel che 
è), come al solito.
Per usarli entrambi contemporaneamente potete usare gpm -M per
riesportare i device. Maggiori dettagli sulla pagina di manuale di gpm.
Inoltre, XFree 3.3.1 e successivi supportano dispositivi d'ingresso multipli
usando il meccanismo XInput. I file XF86Config autogenerati dovrebbero avere
al loro interno i commenti necessari.
La collocazione dei vostri file di configurazione di X dipende dalla vostra
particolare versione e distribuzione. Probabilmente sarà 
/etc/Xconfig, /etc/XF86Config oppure 
/usr/X11/lib/X11/XF86Config. Dovreste poter vedere qual è
all'avvio di X - verrà mostrato sullo schermo prima di tutte le 
opzioni. La sintassi dei file XF86Config e Xconfig è leggermente 
diversa, quindi vengono riportate entrambe.
Mouse seriale Microsoft
Section "Pointer"
    Protocol "microsoft"
    Device "/dev/mouse"
EndSection
#
# Mouse definition and related parameters
#
Microsoft      "/dev/mouse"
Mouse seriale Microsoft con emulazione dei tre tasti
Section "Pointer"
    Protocol "microsoft"
    Device "/dev/mouse"
    Emulate3Buttons
EndSection
#   
# Mouse definition and related parameters
#
Microsoft      "/dev/mouse"
Emulate3Buttons
Mouse seriale MouseSystems a tre tasti
Section "Pointer"
    Protocol "mousesystems"
    Device "/dev/mouse"
    ClearDTR            # Queste due righe probabilmente non servono,
    ClearRTS            # provare senza la prima e poi solo quella con DTR
EndSection
#
# Mouse definition and related parameters
#
MouseSystems    "/dev/mouse"
ClearDTR                # Queste due righe probabilmente non servono,
ClearRTS                # provare senza la prima e poi solo quella con DTR
Mouse seriale Microsoft con gpm -R
Section "Pointer"
    Protocol "MouseSystems"
    Device "/dev/gpmdata"
EndSection
#
# Mouse definition and related parameters
#
MouseSystems      "/dev/gpmdata"
Gli unici tre fili necessari nel cavetto di un mouse sono: TxD e RxD per il trasferimento dati, RTS e/o DTR per l'alimentazione e la massa. Tradotto in numeri di pin:
            porta a 9 pin  porta a 25 pin  
        TxD     3                2
        RxD     2                3
        RTS     7                4
        DTR     4               20
        Gnd     5                7
La tabella precedente può essere utile se volete realizzare degli adattatori per i connettori a 9 e 25 pin, oppure delle prolunghe.
setserial, che
viene lanciato dallo script di avvio /etc/rc.d/rc.serial. 
Per maggiori dettagli vedere la pagina di manuale di 
setserial e il Serial-HOWTO. Potrebbe valere la pena di fare
un po' di esperimenti coi tipi, per esempio provare 
setserial /dev/mouse uart 16550 o 16550a 
indipendentemente da quale porta ci sia in realtà (per esempio, 
ai mouse non piace la 16c550AF).ClearDTR potrebbe non funzionare come si deve
su alcuni sistemi, a meno che non disabilitate l'handshaking fra RTS
e CTS col comando: 
stty -crtscts < /dev/mouse
ChordMiddle. Tale riga, nel file
di configurazione, rimpiazza Emulate3Buttons oppure va dopo 
la riga /dev/mouse. Nel vostro Xconfig potrebbero servirvi
le righe ClearDTR e ClearRTS. Alcuni mouse Logitech
fortunatamente non hanno bisogno della riga ChordMiddle -
un sintomo di tale problema è che i menu sembrano muoversi col 
mouse invece di scorrere in basso (da: 
chang@platform.com).xmodmap per cambiare
l'associazione fra un pulsante fisico e un clic del mouse.
Ad esempio:  xmodmap -e "pointer = 3 2 1"  rigirerà i 
pulsanti per la mano sinistra. Se avete un mouse con solo due pulsanti, 
saranno numerati 1 e 2.xset m per cambiare i
parametri del mouse. Ad es. xset m 2  imposta l'accelerazione
a 2. Per i dettagli completi vedere la pagina di manuale.Invert_VCLK/InvertVCLK, oppure EarlySC.
Questa informazione viene da Bill Lavender (
lavender@MCS.COM)
e Simon Hargrave.
Nell'XF86Config potrebbe somigliare a:
Subsection "Display"
    Modes       "1024x768" "800x600" "640x480" "1280x1024"
    Invert_VCLK "*" 1
    ...
linear, o forse 
nolinear, nella sezione della scheda grafica, oppure le 
opzioni tgui_pci_write_off e 
tgui_pci_read_off, se è una 
piastra PCI (questo problema sembra essere relativo alla scheda 
Trident).
"sw_cursor" nella
sezione Device del file di configurazione.
gpm, nelle versioni 1.13 e superiori, dovrebbe
supportare anche i mouse 2.1A tramite il tipo di mouse pnp
(vedere la 
sezione gpm per come 
riesportarlo).
Anche il ``Microsoft Intellimouse'' causa dei problemi, sebbene ora
dovrebbe essere supportato da XFree versione 3.3 e successive.
Ci sono un sacco di mouse diversi in giro ed io onestamente non posso consigliarvi di comprarne uno piuttosto che un altro. Quello che posso fare è di fornirvi una lista, basata sull'esperienza e sul sentito dire, di come penso che tali mouse si comportino. Anche con tali informazioni dovete stare attenti - nel nostro ufficio abbiamo due mouse identici su due computer, certe cose funzionano su uno ma non sull'altro! È gradita qualsiasi aggiunta a questa lista.
Mouse ottici Mouse System, nella versione seriale
Funzionano bene (come ci si aspetta dal nome!) senza ClearDTR o 
ClearRTS nella configurazione.
WiN mouse, quelli venduti per otto sterline da Office 
World
Sono del tipo standard a doppio modo Microsoft/MouseSystems.
Mouse Agiler 2900
Sono del tipo standard a doppio modo Microsoft/MouseSystems. 
L'integrato SYSGRATION SYS2005 è saldabile.
Mouse Sicos
Funziona bene, servono ClearDTR e Clear RTS nella configurazione.
Index vende un mouse per 10 sterline
Non funziona nel modo a tre tasti, ma ha delle belle istruzioni :-)
Mouse Artec
Solito mouse a doppio protocollo, serve l'impostazione di `ClearDTR' 
nella configurazione (ma NON quella di `ClearRTS').
Mouse seriale DynaPoint a 3 tasti.
Solito mouse a doppio protocollo, serve l'impostazione di `ClearDTR' 
e di `ClearRTS' nell'Xconfig.
Genius Easymouse a 3 tasti
Funziona bene col protocollo Mouseman, senza l'impostazione del 
parametro ChordMiddle. Da Roderick Johnstone (
rmj@ast.cam.ac.uk).
Truemouse, made in Taiwan
Funziona bene, serve `ClearDTR' nella configurazione (da
Tim MacEachern).
Mouse marcato Champ
Bisogna mettere l'interruttore sul modo PC, che abilita anche il
protocollo MouseSystems (da tnugent@gucis.cit.gu.edu.au).
Mouse MicroSpeed
Solito mouse a doppio protocollo.
Marcato Venus (7$)
Ha un ponticello all'interno per commutare fra i modi a 2 e 3 tasti
(da 
mhoward@mth.com).
Saturn
Mouse con interruttore, funziona bene come MouseSystems nella posizione
a 3 tasti (da 
grant@oj.rsmas.miami.edu).
Mouse Manhattan.
Interruttore per i modi `MS AM' / `PC AT', il modo MS funziona bene con 
il metodo gpm -R (da 
komanec@umel.fee.vutbr.cz).
Mouse Inland.
Interruttore per i modi `PC/MS', funziona bene (da
http://ptsg.eecs.berkeley.edu/~venkates).
qMouse (3 tasti), FCC ID E6qmouse X31.
Venduto in USA per circa 10$. Funziona con `gpm -t msc -r 20'.
Nessun ponticello o microinterruttore per il modo MouseSystems a 3 
tasti. Inaffidabile sotto X. Non risponde a echo "*n" > /dev/mouse.
Mouse Mitsumi (2 tasti), FCC ID EW4ECM-S3101.
Venduto in USA per circa 12$. Affidabile sotto X e sotto gpm,
morbido doppio tasto (questi due da
gustafso@math.utah.edu).
Mouse PC Accessories, che ho comprato da CompUSA per meno di
10$.
Ha un interruttore PC/MS sul fondo. Funziona bene (da
steveb@communique.net).
First Mouse - davvero economico, 7,79 sterline da Tempo.
Doppio modo Microsoft/MouseSystems, il modo è impostato dalla 
pressione del pulsante all'accensione. Nessun interruttore, nessun 
ponticello. Connessione a quattro cavi, echo '*n' non funziona. 
`gpm -R' funziona a meraviglia
(da 
peterk@henhouse.demon.co.uk).
Mouse a 3 tasti Trust.
Doppio modo con interruttore, funziona bene come MouseSystems nel modo `PC'.
A gpm non piace il modo Microsoft.
Chic 410
Funziona perfettamente se tenuto in modo ms e usato con il comando gpm -R.
Da Stephen M. Weiss (
steve@esc.ie.lehigh.edu).
Mouse KeyMouse a 3 tasti.
Funziona bene con ClearDTR e ClearRTS nell'Xconfig; con gpm serve
`-o dtr' (da 
EZ4PHIL@aol.com).
Tastiera Qtronix `Scorpio 60'
Tutti e tre i pulsanti funzionano col protocollo MouseSystems (da
hwe@uebemc.siemens.de).
Laptop Tecra 720
Il glidepoint è su /dev/cua0; la leva è su
/dev/psaux (da 
apollo@anl.gov).
Mouse Anubis
Funziona bene, bisogna tenere premuto il pulsante sinistro quando si 
commuta nella console virtuale di X (da 
Joel Crisp). 
Mouse Yakumo No.1900
Funziona con gpm -R -t ms esportato in X (da 
Oliver Schwank).
Trackball Genius `Easy Trak'
Non è compatibile Microsoft, usando Mouseman
nell'Xconfig funzionerà bene (da
VTanger@aol.com). 
Highscreen Mouse Pro
`Funziona bene' dice 
alfonso@univaq.it.
Serie Logitech CA
Funzionano in X usando il protocollo MMseries a 2400 Baud e 150 di 
velocità di campionamento (SampleRate) (dovrebbe valere
anche per i mouse Logitech CC, CE, C7 e C9) (da 
vkochend@nyx.net).
A4-Tech mouse
Funzionano bene, serve la riga DTR sia sotto X che sotto
gpm (da 
deane@gooroos.com).
Mouse Vertech
Normale comportamento Microsoft/Mousesystems, può essere
aggiustato in modo definitivo con una saldatura (da 
duncan@fs3.ph.man.ac.uk).   
Boeder M-7 ``Bit Star'' (e altre serie M tranne la M13)
Commuta al protocollo Mousesystems tenendo premuto un qualsiasi pulsante 
all'accensione (da 
sjt@tappin.force9.co.uk). 
Mouse Systems ``Scroll'' (quattro pulsanti e un 
pulsante/rotella)
Ha un interruttore 2/3 - nel modo 3 funziona come un mouse MouseSystems a 
3 tasti, ignorando il pulsante in più e la rotella. Non serve 
ClearRTS/DTR (da 
parker1@airmail.net). 
Mouse seriale a 3 tasti Radio Shack
Modello 26-8432, disponibile col Tandy per circa 20 sterline. Funziona 
come Mousesystems con ClearDTR (da 
Sherilyn@sidaway.demon.co.uk).
Mouse seriale Dexxa
Funziona bene col protocollo Microsoft nell'Xconfig, non serve ChordMiddle 
né nient'altro (da 
slevy@ncsa.uiuc.edu).
Mouse 3 tasti Belkin
Comprato da Sears (per 10$), in modo PC sotto gpm ha bisogno di 
-o rts (e probabilmente di ClearRTS sotto X) (da 
mmicek@csz.com). 
Molte delle informazioni in questo documento sono state pescate dai vari newsgroup su Linux. Non ho tenuto traccia di tutti quelli che hanno indirettamente contribuito per questa via, me ne scuso, grazie tante a tutti.
Quindi, riassumendo: