I cursori (o puntatori) del mouse sono i simboli caratteristici (spesso frecce) che si spostano sull’interfaccia grafica seguendo il movimento del dispositivo di puntamento (mouse) e permettono all’utente di impartire i comandi. Ogni simbolo viene visualizzato in corrispondenza di un’opportuno stato: ad esempio, se il cursore è in prossimità del bordo di una finestra, esso assume un aspetto diverso da quando è lontano da esso, in modo da far capire all’utente che è possibile spostare il bordo della finestra per ridimensionarla.
Dunque i file dei cursori sono raggruppati in insiemi detti temi (theme), che contengono un’immagine per ogni stato in cui può trovarsi il cursore.
Ogni cursore è caratterizzato da un punto sensibile (hot spot), che è il pixel dell’immagine del cursore preso come riferimento, cioè il pixel che determina la posizione dello schermo individuato in ogni momento dal cursore. Ad esempio, nel caso di una freccia generalmente l’hot spot è posizionato sulla punta della freccia.
XFree86 gestisce le immagini da associare al dispositivo di puntamento, ricercandole, nell’ordine indicato, nelle seguenti directory
In ognuna delle directory viene ricercata la directory che ha il nome del tema desiderato ed all’interno di tale directory, viene ricercata la directory cursors, che conterrà i file relativi ai cursori. Ad esempio, se si vuole utilizzare il tema “MyTheme”, verrà ricercata la directory ~/.icons/MyTheme e se non esiste viene tentato con la directory /usr/share/icons/MyTheme, e così via. Non appena viene trovata la directory MyTheme, vengono considerati i file presenti nella sottodirectory cursors. Per il cursore viene sempre utilizzato il relativo file presente nella prima directory trovata nell’elenco precedentemente riportato. Se qualcuna delle directory relative al tema non esiste, vengono utilizzati i cursori di default.
Se esiste un file index.theme all’interno di una directory relativa ad un tema, esso deve contenere i riferimenti ad un altro tema da cui si vogliono ereditare i cursori. La sintassi di tale file è la seguente
[Icon Theme]
Inherits=theme_name
dove theme_name è il nome del tema (directory) a cui fare riferimento nel caso in cui alcuni
file relativi ai cursori non esistano nella sottodirectory cursors.
Se nessun tema è stato indicato, viene considerato il tema “default”.
I file che rappresentano i cursori hanno un formato particolare (formato Xcursor), che può essere ottenuto trasformando una o più immagini in formato PNG in un file Xcursor, tramite il comando xcursorgen.
____________________________________________________________________
Comando: xcursorgen
Path: /usr/X11R6/bin/xcursorgen
SINTASSI
# xcursorgen [config_file] [Xcursor_file]
DESCRIZIONE
Il file di configurazione contiene righe con il seguente formato
size Xhot Yhot filename [delay]
dove
Si supponga dunque di voler sostituire il cursore visualizzato nello stato “standard”, ovvero in quello meno particolare di tutti, che è spesso rappresentato da un freccia rivolta verso l’alto a sinistra. La prima cosa da fare è quella di creare un’immagine quadrata (ad esempio 24 × 24 pixel) avente l’hot spot posizionato nel pixel più in alto a sinistra, con la quale sostituire il cursore e salvarla in un file in formato PNG (ad es. mycursor.png). Quindi si crea un file di testo (ad es. mycursor.conf) contenente la seguente riga
24 0 0 mycursor.png
e si crea il file left_ptr con il comando
$ xcursorgen mycursor.conf left_prt
Adesso non rimane altro creare una directory (ad es. ~/.icons/mycursors/cursors)
nella quale copiare il dile left_ptr appena creato. Dopodiché si deve indicare al sistema di
utilizzare il tema “mycursors”, creando il file di testo ~/.icons/default/index.theme,
inserendovi le seguenti righe
[Icon Theme]
Inherits=mycursors
Dopo aver riavviato il server grafico, al successivo accesso all’interfaccia grafica da parte
dell’utente considerato, si vedrà il cursore creato.
Se si avesse voluto creare un cursore animato, si sarebbero dovuti creare più file contenenti altrettante immagini in formato PNG che rappresentano i fotogrammi (frame) dell’animazione. Si consideri ad esempio un cursore animato composto da 3 frame, ognuno di 24 × 24 pixel (ad es. mycursor1.png, mycursor2.png e mycursor3.png). Il corrispondente file di configurazione (ad es. mycursor.conf) potrebbe essere composto dalle seguenti righe
24 0 0 mycursor1.png 400
24 0 0 mycursor2.png 300
24 0 0 mycursor3.png 300
così da far visualizzare, nell’animazione del cursore, il primo frame per una durata di 400
ms ed il secondo ed il terzo per 300 ms.