Il y a plusieurs raisons pour lesquelles les curseurs standards de X sont durs à suivre pour certaines personnes :
Dans tous les cas, cela peut aider d'utiliser des curseurs agrandis. Idéalement, ce travail devrait être fait par un programme X unique qui agrandit automatiquement tous les curseurs de souris.
A ma connaissance, il n'y a pas de moyen de moyen simple d'écrire un utilitaire de ce type, car le protocole X n'a pas de primitive pour manipuler les curseurs. Pour plus de détails, voyez la section Technical discussion ci-dessous.
Si nous avons un but moins général, quelque chose peut être fait:
Il y a un jeu de curseurs standards qui peut être trouvé dans la police
de curseurs (essayez xfd -fn cursor
pour l'observer). La plupart
des programmes utilisent ces curseurs et l'idée générale est de remplacer
la police de curseur standard par une version agrandie.
Le point de départ de ce MINIHOWTO a été un camarade déficient visuel qui m'a demandé comment agrandir le curseur de la souris sous X. Après avoir trouvé comment cela peut être fait, j'ai écrit la version initiale de ce document. La connaissance de la méthode décrite ici ne semble pas être très répandue alors j'ai décidé de la partager et j'ai soumis ce document en tant que Linux MINIHOWTO, malgré le fait qu'il n'est pas spécifique à Linux du tout. Comme tous les autres MINIHOWTOs, il peut être trouvé sur le site du Linux Documentation Project (LDP).
La version maître de ce document est maintenue dans le format SGML/linuxdoc. Cela rend possible la génération automatique de versions dans les formats suivants (qui peuvent être trouvées au même endroit que le document maître): html, text, LaTeX, DVI, PostScript, GNU info.
Shinobu Miyata a fait une traduction en Japonais de ce MINIHOWTO. Elle peut être trouvé à http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/.
Suivez les étapes détaillées ci-dessous. Si vous ne voulez pas récupérer et compiler le package bdfresize vous même, vous pouvez aller directement à l'étape 3 et télécharger une police agrandie au lieu de la créer.
zcat bdfresize-1.4.tar.Z | tar xf - cd bdfresize-1.4 xmkmf makeSur Linux vous aurez probablement à utiliser :
make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all
mkdir $HOME/fonts bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf mkfontdir $HOME/fontsJ'ai préparé quelques polices de curseur avec les facteurs d'agrandissement suivants : 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8 et 16. Vous pouvez télécharger l'une d'entre elles et la copier dans
$HOME/fonts
si vous ne voulez pas utiliser bdfresize.
.xinitrc
ou .xsession
: avant
qu'un quelconque client X (qui utilise les curseurs) ne soit lancé, les
commandes suivantes doivent être exécutées :
xset +fp $HOME/fonts xsetroot -cursor_name X_cursor
Voilà — maintenant tous les curseurs devraient avoir doublé de taille.
cursor
, le nom du fichier
n'a pas d'importance)—ce n'est pas un problème car bdfresize
ne change pas le nom de la police.xset +fp
(par opposition à
xset fp+
).$HOME/fonts/
ne seront visibles
qu'après que la commande mkfontdir $HOME/fonts; xset fp rehash
aie été exécutée et seulement pour les clients X lancés après
(plus exactement : pour les curseurs nouvellement créés).xset +fp path
pourrait ne pas marcher sur un terminal X. Dans ce
cas, on peut utiliser un serveur de polices (voir la section
Comment utiliser un serveur de polices) si il est supporté par le
terminal X ou une autre méthode pour installer les polices sur le terminal X
(cela ne peut généralement être fait que par votre administrateur système).olcursor
et
decw$cursor
et n'importe quel autre curseur que vous voudriez
rencontrer.Est il possible d'écrire un programme X qui agrandit les curseurs automatiquement ?
Utilisez le XTestCompareCursor de l'extension XTEST. Pour toutes les fenêtre dans lesquelles entre le pointeur, comparez le curseur de cette fenêtre avec un jeu de curseurs 'connus' (i.e depuis la police de curseur). Si le curseur est trouvé, remplacez le par une version agrandie, sinon laissez le ou remplacez le par un curseur standard. Cela ne marche que là où l'extension XTest est disponible.
Ecrivez un serveur X proxy qui relaie toutes les requêtes
clientes vers le serveur X réel sans changement, excepté qu'il intercepte
toutes les requêtes correspondantes aux fonctions Xlib XCreate*Cursor
.
Les requêtes XCreate*Cursor
doivent être modifiées pour utiliser un
curseur agrandit.
Ce serveur proxy simule un nouvel affichage, i. e. :1
. Tous les
clients qui se connectent à cet affichage (i. e. xterm -display
:1
) sont affichées sur le serveur réel (normalement :0
) et leurs
curseurs sont agrandis automatiquement. Les curseurs des clients qui se
connectent sur :0
resteront inchangés.
Voici quelques idées pour des programmes X simples qui peuvent rendre les curseurs plus faciles à repérer.
Un projet plus demandé serait une traînée de souris à la windoze [en français dans le texte], i. e. quand la souris est déplacée et que le curseur doit être redessiné dans une position différente, l'ancien pointeur ne disparait pas tout de suite, mais après un petit délai. Les traînées de la souris seraient probablement mieux implémentées sur un serveur X mais cela doit être faisable sur un client X, ou mieux, sur un serveur proxy (voir la section Discussion Technique pour plus de détails).
Un serveur de police est un service réseau qui fournit un jeu de polices X11 avec un protocole simple. Il peut être interrogé sur les polices qu'il fournit et fournira les bitmap d'une police sur demande.
Vous pourriez vouloir utiliser un serveur de polices pour fournir au serveur X une police de pointeur modifié au lieu de lui dire où trouver les polices sur le système de fichiers.
Cette méthode est particulièrement pratique si vous utilisez plusieurs machines qui ne partagent pas de système de fichiers commun ou si vous utilisez des terminaux X qui supportent le protocole de serveur de polices.
Un serveur de polices et les outils associés sont fournis avec la distribution X11R5+ (AFAIK).
Lisez les pages de manuel fs(1), fslsfonts(1) (ou
xfs(1), xfslsfonts(1) sous X11R6) et essayez les—
ce n'est pas dure. Dites que vous utilisez le server sur l'hôte
some.host.edu
sur le port 7100. Vous pouvez tester l'installation
avec la commande
fslsfonts -server some.host.edu:7100
Pour utiliser effectivement le serveur, entrez la commande
xset +fp tcp/some.host.edu:7100
qui devrait se terminer sans message d'erreur.
Si vous avez installé un serveur de polices, utilisez simplement fstobdf
qui est fourni avec le serveur de polices.
Sinon, vous pouvez essayer getbdf
qui peut capturer n'importe quelle police
X11 installée dans un fichier bdf.