MINIHOWTO grands-curseurs-X11

Comment utiliser les curseurs agrandis avec le système X window

Jörg Schneider

v2, 11 August 1997
Ce document décrit comment utiliser les grands curseurs de souris avec le système X window.

1. Introduction

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.

2. A propos de ce document

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/.

3. Comment le faire

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.

  1. récupérez cursor.bdf, la source de la police de curseur, depuis une distribution X i. e. depuis ftp://ftp.x.org/pub/R6.3/xc/fonts/bdf/misc/cursor.bdf (si vous ne le trouvez pas là, essayez une recherche d'archive ou récupérez le depuis ma copie).
  2. récupérez et installez le package bdfresize depuis ftp://ftp.cs.titech.ac.jp/X11/contrib/Local/bdfresize-1.4.tar.Z (ou depuis ma copie):
         zcat bdfresize-1.4.tar.Z  | tar xf -
         cd bdfresize-1.4
         xmkmf
         make
         
    
    Sur Linux vous aurez probablement à utiliser :
         make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all
         
    
  3. créez un répertoire et installez une police de curseur agrandie dedans (facteur d'agrandissement de deux dans cet exemple) :
         mkdir $HOME/fonts
         bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf
         mkfontdir $HOME/fonts
         
    
    J'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.
  4. modifiez votre fichier .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
         
    
  5. quittez votre section X et redémarrez.

Voilà — maintenant tous les curseurs devraient avoir doublé de taille.

4. Notes et limitations

5. Discussion Technique

Est il possible d'écrire un programme X qui agrandit les curseurs automatiquement ?

Solution (partielle) 1

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.

Solution 2

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.

6. Autres idées pour rendre le curseur plus visible

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).

7. Informations connexes

7.1 Comment utiliser un serveur de polices

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).

Installer un serveur de polices

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.

7.2 Comment récupérer la source bdf d'une police quelconque

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.