Er zijn verscheidene redenen waarom de standaard X-muiscursors voor een aantal mensen moeilijk zijn te traceren:
In alle gevallen zou het kunnen helpen om vergrote muiscursors te gebruiken. Het zou ideaal zijn, als deze taak door een enkel X-programma zou worden gedaan, waarmee iedere muiscursor automatisch zou kunnen worden vergroot.
Zover ik weet, is er geen eenvoudige manier om een dergelijk utility te schrijven, omdat het X-protocol geen voorziening heeft om muiscursors te ondervragen. Zie de sectie Technische bespreking hieronder voor meer informatie.
Als we echter naar een minder algemeen doel streven, kan er iets aan worden gedaan.
Er is een set met standaardmuiscursors, die bij de cursorfonts kan worden
gevonden. (probeer xfd -fn cursor
om ze te bekijken). De meeste
programma's maken gebruik van deze muiscursors en de belangrijkste
gedachte hierachter is het standaardcursorfont te vervangen door
een vergrote versie.
De motivatie voor deze mini-HOWTO was een visueel gehandicapte mede-student, die me vroeg hoe de muiscursor onder X kon worden vergroot. Nadat ik erachter was gekomen hoe dit gedaan kan worden, schreef ik een initiële versie van dit document. De beschreven methode schijnt niet algemeen bekend te zijn, dus besloot ik het te delen. Ik leverde dit document aan als een Linux mini-HOWTO, ondanks het feit dat het helemaal niet specifiek is voor Linux. Zoals alle andere mini-HOWTO's kan het worden gevonden bij het Linux Documentatie Project (LDP).
Het origineel van dit document wordt beheerd in het SGML/linuxdoc formaat. Dit maakt het mogelijk om automatisch in de volgende formaten te voorzien (die op dezelfde plaats als het origineel kunnen worden gevonden): html, text, LaTeX, DVI, PostScript en GNU info.
Opmerking: Als de hierboven genoemde link niet werkt, probeer dan http://come.to/joerg_schneider—deze link zou zelfs moeten werken, als ik mijn homepage naar een andere webserver zou moeten verplaatsen.
Shinobu Miyata heeft deze mini-HOWTO vertaald naar het Japans. Het kan worden gevonden in http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/.
Volg de gedetailleerde stappen hieronder. Als je het bdfresize package zelf niet wilt ophalen en compileren, kun je stap 3 overslaan en kun je daarvoor in de plaats een vergroot font downloaden.
zcat bdfresize-1.4.tar.Z | tar xf - cd bdfresize-1.4 xmkmf makeOnder Linux zul je waarschijnlijk het volgende moeten gebruiken:
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/fontsIk heb me voorbereid op een aantal cursorfonts met de volgende vergrotingsfactoren: 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8 en 16. Je kunt er énén van downloaden en het naar
$HOME/fonts
kopieëren, als je bdfresize niet wilt
gebruiken.
Marc Quinton heeft een dubbel zo groot
cursorfont met de hand vervaardigd
BigCursor2.pcf
dat er veel beter uitziet dan de uitvoer van bdfresize.
Bezoek zijn
site voor meer info!.xinitrc
of .xsession
bestand: voordat
er een X-client (dat van cursors gebruik maakt) wordt opgestart, moeten
de volgende opdrachten worden uitgevoerd:
xset +fp $HOME/fonts xsetroot -cursor_name X_cursor
Dat is het—nu zouden alle muiscursors tweemaal zo groot moeten zijn.
cursor
zijn,
de bestandsnaam doet er niet toe)
—dat is geen probleem aangezien bdfresize
de naam van het
font niet wijzigt.xset +fp
(als tegengestelde van
xset fp+
).$HOME/fonts/
zullen alleen zichtbaar zijn
na de opdracht
mkfontdir $HOME/fonts; xset fp rehash
en alleen in nieuw opgestarte X-clients
(preciezer: voor nieuw aangemaakte cursors).xset +fp path
op een X-Terminal niet werkt.
In dit geval kan een fontserver (zie de sectie
Hoe gebruik je een fontserver)
worden gebruikt als deze door de X-Terminal wordt gebruikt, of
één of andere methode om het font op de X-Terminal te
installeren
(dit kan meestal alleen worden gedaan door je systeembeheerder).olcursor
en
decw$cursor
fonts en enige ander cursorfont worden
gebruikt dat je aan kunt treffen.Is het mogelijk een X-programma te schrijven waarmee cursors automatisch worden vergroot?
Gebruik de XTestCompareCursor van de XTEST uitbreiding. Vergelijk voor alle vensters waarin de muisaanwijzer komt de cursor met een set `bekende' cursors (b. v. van het cursorfont). Als de cursor is gevonden, vervang het dan door een vergrote versie, en laat het anders met rust of vervang het door een standaardcursor. Dit zal alleen werken waar de XTest uitbreiding beschikbaar is.
Schrijf een proxy X-server die alle client-verzoeken ongewijzigd naar
de echte X-server heruitzendt, behalve dat het alle verzoeken corresponderend
met de XCreate*Cursor
Xlib functies onderschept.
XCreate*Cursor
verzoeken zouden zodanig moeten worden
gewijzigd dat er een vergrote cursor wordt gebruikt.
Deze proxy server simuleert een nieuw display, b. v. :1
. Alle
clients die een verbinding met dit display maken (b. v.
xterm -display :1
) worden op de werkelijke server getoond
(normaal gesproken is dit :0
)
en hun muiscursors worden automatisch vergroot.
De muiscursors van clients die een verbinding maken met
:0
zullen ongewijzigd blijven.
Hier zijn een aantal ideeën voor nogal eenvoudige X-programma's, waarmee muiscursors misschien makkelijker te traceren zijn.
Het zou een veeleisender project zijn als je muissporen à la windoze zou gebruiken, d.w.z. als de muis wordt verplaatst en de muiscursor moet op een andere positie worden getekend, dan zal de oude muiscursor niet onmiddellijk verdwijnen, maar pas na een korte vertraging. Muissporen zouden waarschijnlijk het beste in een X server kunnen worden geïmplementeerd, maar het kan geschikter zijn het als een X-client te doen, of nog beter als een proxy server (zie de sectie Technische bespreking voor details).
Een fontserver is een netservice die voorziet in een set X11-fonts door gebruik te maken van een eenvoudig protocol. Het kan worden ondervraagd in welke fonts het voorziet en zal de bitmapgegevens van het font op verzoek aanleveren.
Het zou kunnen dat je een fontserver wilt gebruiken om de X-server te voorzien in een gewijzigd cursorfont, in plaats dat je het laat weten waar het het font op het bestandssysteem kan vinden.
Deze methode is vooral handig als je verscheidene computers gebruikt, die geen gemeenschappelijk bestandssysteem delen of als je X-terminals gebruikt, die het fontserver-protocol ondersteunen.
Met de X11R5+ distributie wordt een fontserver programma meegeleverd (AFAIK).
Lees de manual pages fs(1), fslsfonts(1) (of
xfs(1), xfslsfonts(1) onder X11R6) en probeer het—
het is niet moelijk.
Laten we ervan uitgaan dat je de server draait op host some.host.edu
op poort 7100. Je kunt de setup testen met de opdracht
fslsfonts -server some.host.edu:7100
Om de server feitelijk te gebruiken roep je de opdracht
xset +fp tcp/some.host.edu:7100
aan, die zou moeten retourneren met een foutmelding.
Als je een fontserver hebt ingesteld, gebruik dan gewoon fstobdf
,
waarmee de fontserver wordt geladen.
Als alternatief zou je getbdf
kunnen proberen,
waarmee ieder geïnstalleerd X11-font naar een bdf bestand kan worden
gedumpt.
V3, 1998-03-19
V2, 1997-08-11
V1, ?