|
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