[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 115.   Utilizzo del dispositivo di puntamento

Il mouse, in un terminale a caratteri, non è una cosa tanto comune. È normale in un ambiente grafico, ma nel caso di GNU/Linux c'è la possibilità di usarlo anche nelle console virtuali. Per gestire un mouse in questa situazione è necessario un demone che si occupi di seguirlo e di fornire ai programmi le informazioni sulle azioni del mouse stesso. Si tratta in pratica di un servente per la gestione del mouse. Trattandosi di un servente, i programmi con cui si può interagire con il mouse sono dei clienti e dipendono dal servente per il tipo di comunicazione che tra loro deve instaurarsi.

Il servente utilizzato normalmente per GNU/Linux è il demone gpm, il quale ha in particolare il vantaggio di essere utile anche con i programmi che non sono fatti per il mouse, per copiare e incollare del testo.

In alcune situazioni, la gestione del mouse può diventare conflittuale, per esempio quando si utilizza un cosiddetto mouse bus (bus-mouse). In questa situazione non è possibile avere più programmi che leggono contemporaneamente il dispositivo corrispondente al mouse; in pratica non ci può essere in funzione il demone gpm assieme al sistema grafico X (a meno che X si avvalga proprio di gpm) e nemmeno possono essere messi in funzione più sistemi grafici contemporaneamente. Il demone gpm è in grado di risolvere il problema occupandosi da solo del mouse e passando a tutte le altre applicazioni eventuali le informazioni sulle azioni compiute con il mouse stesso.

Tabella 115.1. Riepilogo dei programmi e dei file per la gestione del mouse in una console di un sistema GNU/Linux.

Nome Descrizione
/dev/mouse Collegamento simbolico al dispositivo del mouse.
mdetect Individua il mouse e le sue caratteristiche.
gpm Programma di gestione del mouse nelle console virtuali.
/dev/gpmdata File FIFO gestito da gpm.

115.1   Dispositivo del mouse

Per convenzione, il file /dev/mouse dovrebbe corrispondere al dispositivo del mouse. In pratica, si crea un collegamento simbolico con questo nome che punta al dispositivo corrispondente al mouse utilizzato effettivamente. Di solito è lo stesso programma di installazione delle distribuzioni GNU/Linux a farlo.

Nel caso particolare dei mouse seriali, cioè di quelli connessi a una porta seriale, sono stati usati in passato i dispositivi /dev/cua*. Attualmente, questi sono diventati obsoleti e al loro posto si fa riferimento ai corrispondenti /dev/ttyS*.

Quando la lettura di questo dispositivo può essere solo esclusiva, a causa della sua natura, per evitare conflitti tra i programmi nel modo descritto in precedenza, si può creare il file FIFO /dev/gpmdata. Questo viene gestito dal demone gpm allo scopo di fornire a tutti gli altri programmi che accedono direttamente al mouse le informazioni sulle azioni compiute con lo stesso.

mknod /dev/gpmdata p[Invio]

Il comando appena mostrato è ciò che serve per creare questo file nel caso non sia già disponibile. Per fare in modo che gpm gestisca questo file e di conseguenza si occupi del mouse in qualunque situazione, deve essere utilizzata l'opzione -R. Inoltre, se si utilizza il sistema grafico X è necessario modificare manualmente la sua configurazione (/etc/X11/XF86Config, /etc/X11/xorg.conf o simili) nella sezione InputDevice, più o meno come si vede nell'esempio seguente:

Section "InputDevice"
    Identifier  "Generic Mouse"
    Driver      "mouse"
    Option      "CorePointer"
    Option      "Device"                "/dev/gpmdata"
    Option      "Protocol"              "IntelliMouse"
    Option      "Emulate3Buttons"       "true"
    Option      "ZAxisMapping"          "4 5"
    Option      "Buttons"               "5"
EndSection

Se si usano programmi che si avvalgono di SVGAlib (capitolo 215), conviene configurare il file /etc/vga/libvga.config con le direttive seguenti:

mouse IntelliMouse
mdev /dev/gpmdata

In pratica, per il sistema grafico X e per qualunque altro programma che dovesse accedere al dispositivo del mouse direttamente, si deve fare riferimento al tipo di mouse IntelliMouse, utilizzando il file di dispositivo /dev/gpmdata.

Tabella 115.4. Alcuni file riferiti a dispositivi di puntamento secondo il kernel Linux. L'elenco completo può essere consultato nel file sorgenti_linux/Documentation/devices.txt tra i sorgenti del kernel.

File di dispositivo Descrizione
/dev/mouse Collegamento simbolico al file di dispositivo oppure a un file FIFO adatto.
/dev/gpmdata File FIFO standard per ritrasmettere il movimento del mouse a più programmi.
/dev/logibm mouse bus Logitech.
/dev/psaux mouse PS/2.
/dev/usb/mousen n-esimo mouse USB (a partire da zero).

115.2   Utilizzo di «mdetect»

Il programma mdetect (1) è in grado di individuare un mouse che non è già utilizzato in qualche modo. Il risultato della scansione può essere usato per configurare gpm, o anche X. Generalmente, quando si avvia mdetect è bene muovere il mouse in modo da facilitarne l'individuazione.

mdetect [opzioni]

Tabella 115.5. Alcune opzioni significative di mdetect.

Opzione Descrizione
-n
Evita la ricerca di mouse Plug & Play.
-o
Genera un risultato adatto per la configurazione di XFree86 versione 3.*.
-x
Genera un risultato adatto per la configurazione di XFree86 versione 4.*, ovvero Xorg.
-v
Genera più informazioni.

Segue la descrizione di alcuni esempi.

115.3   Utilizzo di «gpm»

Il programma gpm (2) permette di copiare e incollare porzioni dello schermo con i programmi normali e fornisce a quelli predisposti l'accesso a tutte le funzionalità del mouse. Può essere messa in funzione una sola copia del programma alla volta, di conseguenza è normale che gpm venga avviato una volta per tutte attraverso la procedura di inizializzazione del sistema.

gpm [opzioni]

A meno di fare uso di opzioni particolari, gpm si aspetta di trovare il collegamento /dev/mouse che punti al file di dispositivo corrispondente al mouse effettivamente a disposizione.

Se gpm viene utilizzato con l'opzione -R, allora si abilita la gestione del file FIFO /dev/gpmdata e tutti gli altri programmi che dovessero accedere direttamente al mouse dovrebbero utilizzare questo file come dispositivo (che, salvo altra indicazione, si comporta come quello di un mouse MouseSystems).

Tabella 115.10. Alcune opzioni.

Opzione Descrizione
-B sequenza
Con questa opzione è possibile definire la disposizione dei tasti. Per esempio, gpm -B 123 indica di utilizzare i tasti nella posizione normale: il primo è quello a sinistra, il secondo è quello centrale e il terzo è quello a destra. Nello stesso modo si può indicare una disposizione inversa per facilitare un utente che preferisce usare la mano sinistra (gpm -B 321).
-m file
Permette di indicare un file di dispositivo diverso dal solito /dev/mouse.
-R [tipo]
Abilita la gestione del file FIFO /dev/gpmdata allo scopo di fornire ad altre applicazioni, che accedono direttamente al mouse, le informazioni sulle sue azioni. Se si indica il tipo, questo specifica il protocollo di comunicazione da utilizzare per tale scopo; altrimenti si fa riferimento in modo predefinito al tipo MouseSystems (msc). In base agli esempi mostrati, si dovrebbe invece specificare il tipo IntelliMouse (ms3).
-t tipo
Permette di indicare il tipo di mouse a disposizione. Quando non si specifica questa opzione, il tipo predefinito è ms, corrispondente a un mouse Microsoft con due o tre tasti. In particolare, -t help elenca tutti i tipi disponibili (si veda la tabella 115.11).
-2
Forza un funzionamento a due tasti. In questo modo il primo tasto serve a evidenziare e l'altro a incollare.
-3
Forza un funzionamento a tre tasti. In questo modo il primo tasto serve a evidenziare, il secondo a incollare e il terzo a estendere la zona evidenziata. Questo è il funzionamento predefinito, perché il secondo tasto viene attivato solo a partire dal momento in cui questo viene premuto. Perciò, normalmente, non occorre preoccuparsi di indicare quanti tasti utilizzare.
-S comandi
Permette di definire dei comandi da eseguire in corrispondenza di un clic triplo sul primo e sul terzo tasto.

Tabella 115.11. Elenco di alcuni nomi dei tipi di mouse utilizzabili con l'opzione -t e con l'opzione -R.

Tipo Sinonimo Descrizione
mman
Mouseman
Mouseman.
ms
Microsoft a due o tre tasti e compatibili (predefinito).
ms+
Come ms, con il trascinamento nel tasto centrale.
bare
Microsoft
Microsoft a due tasti.
msc
MouseSystems
Mouse System, tre tasti.
sun
Variante del Mouse System.
mm
MMSeries
logi
Logitech
Alcuni mouse seriali Logitech.
logim
Mouse Logitech che devono funzionare come mouse Mouse System a tre tasti.
bm
BusMouse
Busmouse Microsoft e compatibili.
ps2
PS/2
Busmouse PS/2.
ncr
Alcune penne di puntamento di alcuni portatili (NCR3125pen).
wacom
Tavoletta Wacom.
genitizer
Tavoletta Genitizer.
logim
Mouse Logitech in cui abilitare il funzionamento in modalità Mouse System.
pnp
Microsoft pnp.
imps2
Microsoft IntelliMouse su porta PS/2.
ms3
Mouse seriali IntelliMouse a tre tasti.
netmouse
Genius NetMouse (due tasti normali, più un tasto «su» e un tasto «giù»).
cal
Calcomp Ultraslate.
calr
Calcomp Ultraslate in modalità relativa.
twid
Tastiera Twidder.
syn
synaptics
Touchpad seriale Synaptics.
syn2
synaptics_ps2
Touchpad PS/2 Synaptics.
brw
Mouse Fellowes Browser a quattro bottoni e una rotella.
js
Joystick
Emulazione del mouse attraverso un joystick.
summa
Tavoletta Summa/Genius.
mtouch
Schermi touchscreen MicroTouch.
acecad
Tavolette Acecad in modalità assoluta.
kmiabps2
Kensignton Mouse «in a box» su PS/2.

Il funzionamento di gpm è relativamente semplice. Quando il mouse è riconosciuto dal programma che si sta utilizzando, dipende da questo il modo di gestire e interpretare le azioni compiute con il mouse. Quando il programma non è in grado di controllare il mouse, è possibile utilizzare il supporto alle operazioni di copia del testo.

Si seleziona una zona dello schermo premendo il primo tasto e trascinando fino alla posizione finale. Per incollare si può cambiare console virtuale, raggiungendo così l'applicazione all'interno della quale incollare il testo, quindi si preme il secondo tasto, o in mancanza il terzo. Il testo viene inserito come se fosse digitato, di conseguenza occorre che il programma lo permetta.

L'opzione -S permette di definire tre comandi, separati con il simbolo due punti (:), da eseguire in occasione di un clic triplo con il primo e il terzo tasto. In pratica, si tiene premuto il primo o il terzo tasto, mentre con l'altro (il terzo o il primo rispettivamente) si esegue un clic triplo in rapida successione. Se entro tre secondi dal rilascio dei tasti viene premuto uno dei tre tasti, viene eseguito uno dei comandi indicati nell'argomento di questa opzione.

Per esempio, se si utilizza l'opzione -S "echo ciao:echo hello:echo bye" e si preme un clic triplo, del tipo descritto, seguito dalla pressione del primo tasto, si ottiene l'esecuzione di echo ciao, cioè viene visualizzata la parola ciao. Se invece alla fine si seleziona il secondo tasto, si ottiene la parola hello. Infine, se si tratta del terzo tasto, si ottiene bye.

Questo sistema potrebbe essere particolarmente utile per definire un comando per il riavvio del sistema, quando per qualche motivo non si può usare la tastiera per farlo e non si rendono disponibili altre alternative.

Segue la descrizione di alcuni esempi.

115.4   Avvio del servizio di gestione del mouse

Si è accennato al fatto che il demone gpm venga avviato normalmente dalla procedura di inizializzazione del sistema, nel modo già stabilito dalla stessa distribuzione GNU/Linux che si utilizza. Se si vogliono gestire funzionalità speciali di gpm, come per esempio il file FIFO /dev/gpmdata, cosa che si ottiene con l'opzione -R, occorre intervenire nello script che avvia questo demone.

Alcune distribuzioni, prevedono un file di configurazione contenente l'assegnamento di variabili di ambiente che poi vengono incorporate e utilizzate nello script di avvio del servizio gpm. Tuttavia potrebbe non essere stata prevista la possibilità di aggiungere delle opzioni ulteriori; in tal caso si deve intervenire direttamente nello script.

In particolare, la distribuzione Red Hat gestisce il servizio attraverso lo script /etc/rc.d/init.d/gpm, mentre la distribuzione Debian usa il file /etc/init.d/gpm. Inoltre, la distribuzione Debian mette a disposizione lo script gpmconfig per facilitare l'intervento nel file di configurazione, corrispondente a /etc/gpm.conf.

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) mdetect   In parte QPL 1.0 e in parte GNU GPL

2) General purpose mouse interface utility   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome utilizzo_del_dispositivo_di_puntamento.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!