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
Provate a collegare i pin 1-2 o 2-3 e vedete se il comportamento del mouse
è cambiato. Se sì, potete inserirci un microinterruttore,
oppure potete rendere permanente il collegamento con una saldatura.
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.
(I pin sono numerati come segue:)
____
pin1 -| \/ |-
pin2 -| |-
pin3 -| |-
-| |-
-| |-
-| |-
-| |-
pin8 -|____|-
(Questa informazione è qui per cortesia di Hans-Christoph Wirth, e
Juergen Exner, che l'hanno pubblicata su de.comp.os.linux.hardware). Potete
saldare un collegamento fra il pin 3 e la massa per bloccare il
funzionamento del mouse in modo MouseSystems.
-----
--- 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)
Il mouse su cui è stato provato è un MUS2S senza marca - se
ciò funzioni anche per altri mouse dipende dal circuito del mouse in
causa. Se l'interruttore è collegato a massa invece che
all'alimentazione positiva, allora dovrebbe andar bene un transistor npn
come il BC547; in tal caso vanno scambiate anche R e C.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
Così facendo gpm esporterà i dati del mouse su un
nuovo device, chiamato /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"
che associa il pulsante sinistro a "seleziona" e il destro a "incolla", sia
per i mouse a 2 tasti che a tre tasti.
Per forzare gpm ad usare la mappatura dei tasti predefinita di X, lanciatelo
con il comando -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
(provato da Vladimir Geogjaev
geogjaev@wave.sio.rssi.ru su un Pentium con UART 16450).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: