Du�y-kursor-w-X11 MINI-JTZ

Jak u�ywa� powi�kszonego kursora myszy z systemem X Window

Jörg Schneider

v2, 11 August 1997


Wersja polska: Krzysztof P. Jasiutowicz kpjas@priv.onet.pl
v1.0, 27 sierpnia 1999 roku


Ten dokument opisuje jak u�ywa� powi�kszonego kursora myszy z systemem X Window.

1. Wst�p

Jest kilka przyczyn dla kt�rych standardowy kursor myszy jest dla niekt�rych niew�a�ciwy :

W tych przypadkach pomocne s� powi�kszone kursory myszy. Optymalnie powinno to by� robione przez jeden program X-�w, kt�ry automatycznie powi�ksza�by ka�dy kursor myszy.

O ile wiem, nie da si� w prosty spos�b napisa� takiego programu, poniewa� protok� X-�w nie umo�liwia dost�pu do kursora myszy. Wi�cej szczeg��w znajdziesz w rozdziale Szczeg�y techniczne poni�ej.

Je�li naszym celem nie jest takie og�lne rozwi�zanie, co nieco da si� zrobi� :

Istnieje standardowy zestaw kursor�w myszy, znajduj�cy si� w foncie kursora ( wypr�buj polecenie xfd -fn cursor wtedy go obejrzysz). Wi�kszo�� program�w wykorzystuje te kursory myszy i zasada polega na zast�powaniu standardowego kursora jego powi�kszon� wersj�.

2. O tym dokumencie

Zosta�em umotywowany do napisania tego MINIHOWTO, kiedy s�abo widz�cy kolega student zapyta� mnie jak powi�kszy� kursor myszy w X-ach. Kiedy ju� si� dowiedzia�em jak to zrobi�, napisa�em pierwotn� wersj� tego dokumentu. Poniewa� wiedza o sposobie tu opisanym nie jest zapewne powszechna, zdecydowa�em podzieli� si� ni� i utworzy�em z tego dokumentu MINIHOWTO linuksowe, mimo tego �e, nie jest on wcale typowy dla Linuksa. Jak inne MINIHOWTO, znajduje si� on na macierzystym serwerze Linux Documentation Project (LDP).

Matryca tego dokumentu jest w formacie SGML/linuxdoc. Dzi�ki temu mo�liwe jest automatyczne tworzenie wersji w nast�puj�cych formatach (kt�re s� dost�pne w tym samym miejscu co matryca) : html, text, LaTeX, DVI, PostScript i GNU info.

Shinobu Miyata przet�umaczy� to MINIHOWTO na japo�ski. Znajduje si� ono tu : http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/.

3. Jak To Zrobi�

Post�puj zgodnie z instrukcj� podan� poni�ej. Je�li nie chcesz sam odnajdywa� i kompilowa� pakietu bdfresize, mo�esz przej�� do punktu 3 i �ci�gn�� powi�kszony font zamiast tworzy� go.

  1. we� cursor.bdf, plik �r�d�owy fonta kursora, z jakiej� dystrybucji X-�w, n. p. z ftp://ftp.x.org/pub/R6.3/xc/fonts/bdf/misc/cursor.bdf (je�li tam go nie b�dzie spr�buj archie lub pobierz go ode mnie).
  2. zdob�d�, skompiluj i zainstaluj pakiet bdfresize z ftp://ftp.cs.titech.ac.jp/X11/contrib/Local/bdfresize-1.4.tar.Z (lub ode mnie):
         zcat bdfresize-1.4.tar.Z  | tar xf -
         cd bdfresize-1.4
         xmkmf
         make
         
    
    W Linuksie pewnie trzeba u�y�:
         make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all
         
    
  3. utw�rz katalog i zainstaluj w nim powi�kszony font kursora (powi�kszenie dwukrotne w tym przyk�adzie):
         mkdir $HOME/fonts
         bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf
         mkfontdir $HOME/fonts
         
    
    Przygotowa�em kilka powi�kszonych font�w kursora o nast�puj�cych stopniach powi�kszenia: 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8 i 16-krotne. Mo�na je �ci�gn�� jeden z nich i zainstalowa� w $HOME/fonts je�eli nie chcesz u�ywa� bdfresize.
  4. zmodyfikuj plik .xinitrc lub .xsession : przed uruchomieniem jakiegokolwiek klienta X-�w (kt�ry u�ywa kursora) nast�puj�ce polecenie musi by� wykonane :
         xset +fp $HOME/fonts
         xsetroot -cursor_name X_cursor
         
    
  5. przerwij sesj� X-�w i zrestartuj.

Gotowe—teraz wszystkie kursory myszy powinny by� podwojonych rozmiar�w.

4. Uwagi i ograniczenia

5. Szczeg�y techniczne

Czy jest mo�liwe napisanie programu dla X-�w, powi�kszaj�cego kursory automatycznie?

Rozwi�zanie (cz�ciowe)

U�yj XTestCompareCursor z rozszerzenia XTEST. We wszystkich oknach nad kt�rymi znajduje si� kursor por�wnuj kursor tego okna z zestawem 'znanych' kursor�w (n. p. z fontu kursora ). Je�eli kursor istnieje, zamie� go na powi�kszony odpowiednik, w innym przypadku albo zostaw bez zmian albo zamie� na standardowy kursor. To zadzia�a tylko tam, gdzie dost�pne jest rozszerzenie XTest.

Rozwi�zanie 2

Napisz proxy X serwer, kt�ry przekazuje wszystkie ��dania klient�w bez zmian, lecz przechwytuje wszystkie ��dania odnosz�ce si� do funkcji Xlib XCreate*Cursor. ��dania XCreate*Cursor powinny by� zmieniane tak aby powi�kszonego kursora.

Ten serwer proxy symuluje nowy display, n. p. :1. Wszystkie programy klienckie, kt�re ��cz� si� z tym display (n. p. xterm -display :1) s� wy�wietlane na rzeczywistym serwerze (zwykle :0) i ich kursory myszy s� automatycznie powi�kszone. Kursory myszy klient�w, kt�re ��cz� si� z :0 pozostan� niezmienione.

6. Inne pomys�y jak poprawi� widoczno�� kursora myszy

Oto niekt�re pomys�y dla raczej prostych program�w dla X-�w, kt�re sprawi� �e kursor myszy b�dzie lepiej widoczny.

Bardziej ambitnym projektem by�yby �lady myszy à la windoze, t. j. kiedy mysz jest przesuwana i kursor myszy musi by� wy�wietlony w innej pozycji, wtedy "stary kursor" nie znika od razu, ale z pewnym op�nieniem. �lady myszy najlepiej by�oby zaimplementowa� w X serwerze, ale mo�na by to wykona� jako klienta X-�w, lub lepiej jako serwer proxy ( dok�adniejszy opis w rozdziale Szczeg�y techniczne).

7. Informacje zwi�zane z tym tematem

7.1 Jak u�ywa� font serwera

Font serwer jest us�ug� sieciow�, kt�ra dostarcza zestaw font�w X11 z nieskomplikowanym protoko�em. Mo�na do niego wysy�a� zapytania, kt�re fonty s� dost�pne i za��da� od niego fontu bitmapowego.

Font serwer mo�e by� przydatny do dostarczenia X serwerowi zmodyfikowanego fontu kursora, zamiast informowania gdzie w file systemie on si� znajduje.

Ta metoda jest szczeg�lnie przydatna je�li u�ywa si� kilku maszyn, kt�re nie maja tego samego systemu plik�w lub je�li u�ywa si� X terminali, kt�re wspieraj� protok� font serwera.

Font serwer i zwi�zane z nim narz�dzia s� w dystrybucji X11R5+ (o ile wiem).

instalacja font serwera

Przeczytaj strony podr�cznika systemowego fs(1), fslsfonts(1) (lub xfs(1), xfslsfonts(1) pod X11R6) i spr�buj—to nie jest trudne. Powiedzmy, �e serwer jest uruchomiony na ho�cie some.host.edu na porcie 7100. Instalacj� mo�na wypr�bowa� poleceniem fslsfonts -server some.host.edu:7100

�eby naprawd� uruchomi� font serwer nale�y wyda� polecenie :

xset +fp tcp/some.host.edu:7100

kt�re nie powinno da� informacji o b��dzie.

7.2 Jak uzyska� �r�d�a bdf jakiego� fonta

Je�li uruchomi�e� font serwer u�yj po prostu fstobdf do��czonego do serwera font�w.

Inne wyj�cie to u�ycie getbdf kt�ry mo�e zapisa� dowolny zainstalowany font X11 do pliku bdf.

# # # #

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:22