![]() |
|
Wersja polska: Krzysztof P. Jasiutowicz
kpjas@priv.onet.pl
v1.0, 27 sierpnia 1999 roku
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�.
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/.
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.
zcat bdfresize-1.4.tar.Z | tar xf - cd bdfresize-1.4 xmkmf makeW Linuksie pewnie trzeba u�y�:
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/fontsPrzygotowa�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.
.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
Gotowe—teraz wszystkie kursory myszy powinny by� podwojonych rozmiar�w.
cursor
, nazwa pliku
nie ma znaczenia)—nie ma problemu bo bdfresize
nie zmienia
nazwy fonta.xset +fp
(w przeciwie�stwie do
xset fp+
).$HOME/fonts/
b�d� widoczne dopiero
po wydaniu polecenia mkfontdir $HOME/fonts; xset fp rehash
i tylko w nowo otworzonych klientach X-�w (dok�adniej nowo utworzonych
kursorach).xset +fp path
mo�e nie dzia�a� na terminalu X-�w. W tym wypadku
mo�na u�y� font serwera (zobacz w rozdziale
Jak u�ywa� font serwera)
je�li jest wspierany przez terminal X-�w lub jak��
inny spos�b instalacji fonta na terminalu X-�w (zazwyczaj mo�e
to tylko wykona� administrator systemu).olcursor
i
decw$cursor
i i ka�dego innego fontu kursora, kt�ry
znajdziesz.
Czy jest mo�liwe napisanie programu dla X-�w, powi�kszaj�cego kursory automatycznie?
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.
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.
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).
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).
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.
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