  Duy-kursor-w-X11 MINI-JTZ
  Jak uywa powikszonego kursora myszy z systemem X Window
  Joerg Schneider <mailto:joerg.schneider@ira.uka.de>
  v2, 11 August 1997


  WWeerrssjjaa ppoollsskkaa:: KKrrzzyysszzttooff PP.. JJaassiiuuttoowwiicczz kkppjjaass@@pprriivv..oonneett..ppll
  v1.0, 27 sierpnia 1999 roku


  ______________________________________________________________________

  Spis treci


  1. Wstp

  2. O tym dokumencie

  3. Jak To Zrobi

  4. Uwagi i ograniczenia

  5. Szczegy techniczne

  6. Inne pomysy jak poprawi widoczno kursora myszy

  7. Informacje zwizane z tym tematem

     7.1 Jak uywa font serwera
        7.1.1 instalacja font serwera
     7.2 Jak uzyska rda bdf jakiego fonta


  ______________________________________________________________________


  11..  WWssttpp

  Jest kilka przyczyn dla ktrych standardowy kursor myszy jest dla
  niektrych niewaciwy :

  +o  praca na notebooku w X Window z LCD o niskim kontracie

  +o  na zwykych monitorach przy wysokich rozdzielczociach, np. 1600x1280

  +o  u osb z osabionym wzrokiem nawet na zwykych monitorach przy niszych
     rozdzielczociach

  W tych przypadkach pomocne s powikszone kursory myszy. Optymalnie
  powinno to by robione przez jeden program X-w, ktry automatycznie
  powikszaby kady kursor myszy.

  O ile wiem, nie da si w prosty sposb napisa takiego programu, poniewa
  protok X-w nie umoliwia dostpu do kursora myszy.  Wicej szczegw
  znajdziesz w rozdziale ``Szczegy techniczne'' poniej.

  Jeli naszym celem nie jest takie oglne rozwizanie, co nieco da si
  zrobi :

  Istnieje standardowy zestaw kursorw myszy, znajdujcy si w foncie
  kursora ( wyprbuj polecenie xfd -fn cursor wtedy go obejrzysz).
  Wikszo programw wykorzystuje te kursory myszy i zasada polega na
  zastpowaniu standardowego kursora jego powikszon wersj.


  22..  OO ttyymm ddookkuummeenncciiee

  Zostaem umotywowany do napisania tego MINIHOWTO, kiedy sabo widzcy
  kolega student zapyta mnie jak powikszy kursor myszy w X-ach.  Kiedy
  ju si dowiedziaem jak to zrobi, napisaem pierwotn wersj tego
  dokumentu. Poniewa wiedza o sposobie tu opisanym nie jest zapewne
  powszechna, zdecydowaem podzieli si ni i utworzyem z tego dokumentu
  MINIHOWTO linuksowe, mimo tego e, _n_i_e _j_e_s_t _o_n _w_c_a_l_e _t_y_p_o_w_y _d_l_a
  _L_i_n_u_k_s_a. Jak inne MINIHOWTO, znajduje si on na macierzystym serwerze
  Linux Documentation Project (LDP) <http://sunsite.unc.edu/LDP/HOWTO/>.

  Matryca <http://i11www.ira.uka.de/~schneid/X11-big-cursor/master/>
  tego dokumentu jest w formacie SGML/linuxdoc. Dziki temu moliwe jest
  automatyczne tworzenie wersji w nastpujcych formatach (ktre s dostpne
  w tym samym miejscu co matryca) : html, text, LaTeX, DVI, PostScript i
  GNU info.

  Shinobu Miyata <mailto:shinobu@emichan.rim.or.jp> przetumaczy to
  MINIHOWTO na japoski. Znajduje si ono tu :
  <http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/>.


  33..  JJaakk TToo ZZrroobbii

  Postpuj zgodnie z instrukcj podan poniej. Jeli nie chcesz sam
  odnajdywa i kompilowa pakietu bdfresize, moesz przej do punktu 3 i
  cign powikszony font zamiast tworzy go.

  1. we cursor.bdf, plik rdowy fonta kursora, z jakiej dystrybucji X-w,
     n. p. z  <ftp://ftp.x.org/pub/R6.3/xc/fonts/bdf/misc/cursor.bdf>
     (jeli tam go nie bdzie sprbuj archie lub pobierz go ode mnie
     <http://i11www.ira.uka.de/~schneid/X11-big-cursor/cursor.bdf>).

  2. zdobd, skompiluj i zainstaluj pakiet bdfresize z
     <ftp://ftp.cs.titech.ac.jp/X11/contrib/Local/bdfresize-1.4.tar.Z>
     (lub ode mnie <http://i11www.ira.uka.de/~schneid/X11-big-
     cursor/bdfresize-1.4.tar.gz>):

          zcat bdfresize-1.4.tar.Z  | tar xf -
          cd bdfresize-1.4
          xmkmf
          make



  W Linuksie pewnie trzeba uy:

       make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all




  3. utwrz katalog i zainstaluj w nim powikszony font kursora
     (powikszenie dwukrotne w tym przykadzie):


          mkdir $HOME/fonts
          bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf
          mkfontdir $HOME/fonts




  Przygotowaem kilka powikszonych fontw kursora
  <http://i11www.ira.uka.de/~schneid/X11-big-cursor/fonts/> o nastpuj-
  cych stopniach powikszenia: 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8 i 16-krotne.
  Mona je cign  jeden z nich i zainstalowa w $HOME/fonts jeeli nie
  chcesz uywa bdfresize.

  4. zmodyfikuj plik .xinitrc lub .xsession : przed uruchomieniem
     jakiegokolwiek klienta X-w (ktry uywa kursora) nastpujce 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 rozmiarw.



  44..  UUwwaaggii ii ooggrraanniicczzeenniiaa


  +o  X serwery mog mie pewien limit dla maksymalnego rozmiaru kursora,
     szczeglnie gdy uywaj hardware-owej implementacji kursora myszy.
     Inne X serwery nie maj takiego ograniczenia. N. p. XF86_S3 3.3
     pracuje nawet z kursorem myszy 512x512 (raczej wolno).

  +o  Powikszony kursor myszy musi mie tak sam nazw jak pierwotny font
     (_n_a_z_w_a _f_o_n_t_a musi by cursor, _n_a_z_w_a _p_l_i_k_u nie ma znaczenia)--nie ma
     problemu bo bdfresize nie zmienia nazwy fonta.

  +o  katalog z nowym fontem kursora musi znajdowa si przed katalogiem ze
     standardowym fontem kursora w ciece fontw--wykonuje si to za pomoc
     xset +fp (w przeciwiestwie do xset fp+).

  +o  Zmiany w $HOME/fonts/ bd widoczne dopiero po wydaniu polecenia
     mkfontdir $HOME/fonts; xset fp rehash i tylko w nowo otworzonych
     klientach X-w (dokadniej nowo utworzonych kursorach).

  +o  xset +fp path moe nie dziaa na terminalu X-w. W tym wypadku mona uy
     font serwera (zobacz w rozdziale ``Jak uywa font serwera'') jeli
     jest wspierany przez terminal X-w lub jak inny sposb instalacji
     fonta na terminalu X-w (zazwyczaj moe to tylko wykona administrator
     systemu).

  +o  Identyczne podejcie moe by zastosowane dla fontw olcursor i
     decw$cursor i i kadego innego fontu kursora, ktry znajdziesz.

  +o  Fonty kursora stworzone przez bdfresize nie wygldaj rwno,
     szczeglnie przy wyszych stopniach powikszenia. Byoby dobrze gdyby
     kto mg stworzy rcznie lepiej wygldajce wersje niektrych czciej
     uywanych rozmiarw.


  55..  SSzzcczzeeggyy tteecchhnniicczznnee

  Czy jest moliwe napisanie programu dla X-w, powikszajcego kursory
  automatycznie?


     RRoozzwwiizzaanniiee ((cczzcciioowwee))
        Uyj XTestCompareCursor z rozszerzenia XTEST. We wszystkich
        oknach nad ktrymi znajduje si kursor porwnuj kursor tego okna z
        zestawem 'znanych' kursorw (n. p. z fontu kursora ). Jeeli
        kursor istnieje, zamie go na powikszony odpowiednik, w innym
        przypadku albo zostaw bez zmian albo zamie na standardowy
        kursor.  To zadziaa tylko tam, gdzie dostpne jest rozszerzenie
        XTest.


     RRoozzwwiizzaanniiee 22
        Napisz proxy X serwer, ktry przekazuje wszystkie dania klientw
        bez zmian, lecz przechwytuje wszystkie dania odnoszce si do
        funkcji Xlib XCreate*Cursor.  dania XCreate*Cursor powinny by
        zmieniane tak aby powikszonego kursora.

        Ten serwer proxy symuluje nowy display, n. p. :1.  Wszystkie
        programy klienckie, ktre cz si z tym display (n. p. xterm
        -display :1) s wywietlane na rzeczywistym serwerze (zwykle :0) i
        ich kursory myszy s automatycznie powikszone. Kursory myszy
        klientw, ktre cz si z :0 pozostan _n_i_e_z_m_i_e_n_i_o_n_e.


  66..  IInnnnee ppoommyyssyy jjaakk ppoopprraawwii wwiiddoocczznnoo kkuurrssoorraa mmyysszzyy

  Oto niektre pomysy dla raczej prostych programw dla X-w, ktre sprawi e
  kursor myszy bdzie lepiej widoczny.


  +o  Kiedy "gorcy klawisz" zostanie nacinity wywietl co (duy kursor, mae
     okno, ksztat okna) w pozycji kursora na 0,5 s.

  +o  uyj XRecolorCursor do zmiany koloru kursora co 0,1 s.

  Bardziej ambitnym projektem byyby llaaddyy mmyysszzyy a la windoze, t. j. kiedy
  mysz jest przesuwana i kursor myszy musi by wywietlony w innej
  pozycji, wtedy "stary kursor" nie znika od razu, ale z pewnym
  opnieniem.  lady myszy najlepiej byoby zaimplementowa w X serwerze,
  ale mona by to wykona jako klienta X-w, lub lepiej jako serwer proxy (
  dokadniejszy opis w rozdziale ``Szczegy techniczne'').


  77..  IInnffoorrmmaaccjjee zzwwiizzaannee zz ttyymm tteemmaatteemm

  77..11..  JJaakk uuyywwaa ffoonntt sseerrwweerraa

  Font serwer jest usug sieciow, ktra dostarcza zestaw fontw X11 z
  nieskomplikowanym protokoem. Mona do niego wysya zapytania, ktre fonty
  s dostpne i zada od niego fontu bitmapowego.

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

  Ta metoda jest szczeglnie przydatna jeli uywa si kilku maszyn, ktre
  nie maja tego samego systemu plikw lub jeli uywa si X terminali, ktre
  wspieraj protok font serwera.

  Font serwer i zwizane z nim narzdzia s w dystrybucji X11R5+ (o ile
  wiem).


  77..11..11..  iinnssttaallaaccjjaa ffoonntt sseerrwweerraa

  Przeczytaj strony podrcznika systemowego _f_s_(_1_), _f_s_l_s_f_o_n_t_s_(_1_) (lub
  _x_f_s_(_1_), _x_f_s_l_s_f_o_n_t_s_(_1_) pod X11R6) i sprbuj--to nie jest trudne.
  Powiedzmy, e serwer jest uruchomiony na hocie some.host.edu na porcie
  7100. Instalacj mona wyprbowa poleceniem fslsfonts -server
  some.host.edu:7100


  eby naprawd uruchomi font serwer naley wyda polecenie :

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

  ktre nie powinno da informacji o bdzie.



  77..22..  JJaakk uuzzyysskkaa rrddaa bbddff jjaakkiieeggoo ffoonnttaa

  Jeli uruchomie font serwer uyj po prostu fstobdf doczonego do serwera
  fontw.

  Inne wyjcie to uycie getbdf ktry moe zapisa dowolny zainstalowany font
  X11 do pliku bdf.



















































