Z�kladem lokalizace X Window Systemu je instalace font� a kl�vesnicov�ch map pou�iteln�ch v programech v tomto prost�ed�. D�le je mo�n� lokalizovat jednotliv� programy, zejm�na window mana�ery.
Aplikace pod X mohou pou��vat jak rastrov� (bitmapov�) tak vektorov� fonty, pokud je podporuje X-server (nov�j�� X-servery um� Type1 a Speedo fonty, pro TrueType fonty je nutn� zvl�tn� fontserver). Vektorov� fonty je mo�n� snadno zv�t�ovat a zmen�ovat na r�zn� velikosti (�k�lovat); nov�j�� X-servery um� �k�lovat i rastrov� fonty, ale v�sledn� kvalita je velmi odpuzuj�c�. Rastrov� fonty jsou ulo�eny, jak n�zev napov�d�, v podob� dvoubarevn�ch bitov�ch map. I kdy� je mo�n� vytv��et fonty p��mo jako bitov� mapy, profesion�ln� rastrov� fonty jsou zpravidla vyrastrovan� �k�lovateln� fonty. V principu lze pou��t i fonty z TeXu (zkonvertovan� programem pk2bm), ov�em tyto fonty (zejm�na Computer Modern) jsou navr�eny pro v�t�� rozli�en�, obsahuj� vlasov� ��ry a proto jsou p�i vyrastrov�n� na rozli�en� obrazovky (75 nebo 100 dpi) dosti nevzhledn�.
Fonty mohou b�t bu� ulo�eny p��mo na disku X-serveru (nebo v pam�ti ROM u X-termin�l�), nebo mohou b�t zp��stupn�ny po s�ti pomoc� tak zvan�ho fontserveru. Hlavn� v�hodou fontserveru je, �e pom�rn� velk� soubory s fonty nemus� b�t nainstalov�ny na ka�d�m X-serveru; na pomal�ch stroj�ch (386) m��e b�t pou�it� vn�j��ho font serveru v�hodn� i proto, �e p�i v�po�etn� n�ro�n�m zpracov�v�n� font� do�asn� zamrzne jen p��slu�n� program a ne cel� X-server. TrueType fonty jsou dostupn� pouze p�es fontserver.
Rastrov� fonty se distribuuj� zpravidla v textov�m form�tu .bdf (Bitmap Distribution Format). X-server ov�em rychleji pracuje s fonty v bin�rn�m tvaru. Preferovan�m bin�rn�m form�tem font� pro servery X11R6 a X11R5 je form�t .pcf, star�� X-servery (X11R4) pou��valy jin� bin�rn� form�ty font� (�asto z�visl� na endianit�) --- nap��klad .snf. Pro u�et�en� diskov�ho prostoru b�vaj� soubory s fonty zkomprimovan� programem gzip nebo compress. Pro konverzi r�zn�ch form�t� font� jsou v distribuci X11 programy jako bdftopcf, bdftosnf a dal��.
Soubory s fonty jsou ulo�eny v n�kolika adres���ch, jejich� jm�na mus� b�t
uvedena v konfigura�n�m souboru X serveru (u XFree86 v ��dc�ch FontPath
v sekci Files v souboru /etc/X11/XF86Config
) nebo zad�na p��kazem
xset fp
, kter� umo��uje, aby si u�ivatel� nainstalovali sv� vlastn�
fonty. V ka�d�m z adres��� mus� b�t soubor fonts.dir
, kter� se
vytvo�� (p��padn� aktualizuje) p��kazem
mkfontdir [ adres�� ]
Proto�e jm�na font� jsou velmi dlouh� (viz d�le), lze pou��vat p�ezd�vky,
kter� se definuj� v souboru fonts.alias
pomoc� ��dk� tvaru:
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
V na�ich podm�nk�ch je v�znamnou vlastnost� mo�nost pou��v�n� font� v r�zn�ch k�dov�n�ch. Soubory s fonty pro r�zn� k�dov�n� se zpravidla um�s�uj� do samostatn�ch adres���. P�itom u n�kter�ch program� z�le�� na po�ad�, v jak�m jsou adres��e uvedeny v konfigura�n�m souboru (je vhodn� m�t adres��e s ISO-8859-2 fonty na za��tku). Maj�-li b�t naopak fonty s r�zn�m k�dov�n�m v jednom adres��i, je pot�eba d�t pozor, aby se soubory obsahuj�c� stejn� fonty v r�zn�m k�dov�n� nep�epsaly (d�t jim r�zn� jm�na).
Neprivilegovan� u�ivatel, kter� nem� mo�nost m�nit konfigura�n� soubor X-serveru, si m��e nainstalovat vlastn� fonty tak, �e soubory s fonty um�st� do libovoln�ho adres��e, a zad� p��kazy
mkfontdir adres��
xset +fp adres��
xset fp rehash
Prvn� p��kaz vytvo�� soubor fonts.dir
, kter� obsahuje seznam
font� v adres��i. P��kaz xset +fp adres��
zajist� p�id�n�
zadan�ho adres��e na za��tek seznamu adres��� s fonty (alternativou
je xset fp+ adres��
, kter� p�id� adres�� na konec seznamu;
p��kaz xset -fp adres��
naopak adres�� ze seznamu odebere).
Posledn� p��kaz zajist� nov� na�ten� seznamu font� po jejich zm�n�
bez restartov�n� X serveru. Aby vzaly nov� fonty na v�dom� i jednotliv�
programy, je nutn� je znovu spustit.
Pro jednozna�n� popis fontu se pou��v� jm�no, kter� se skl�d� ze 14
slo�ek --- nap��klad
-adobe-times-medium-r-normal--12-120-75-75-p-64-iso8859-2
.
slo�ka | p��klad | v�znam |
foundry | adobe | v�robce (doslova p�smolijna) |
family | times | rodina |
weight | medium | tu�nost |
slant | r | sklon |
setwidth | normal | ���ka p�sma |
addstyle | dodate�n� styl | |
pixels | 12 | velikost v pixelech |
points | 120 | velikost v desetin�ch tiska�sk�ho bodu |
resx | 75 | rozli�en� ve sm�ru osy x |
resy | 75 | rozli�en� ve sm�ru osy y |
spacing | p | mezerov�n� |
avgwidth | 64 | pr�m�rn� ���ka znaku v desetin�ch tiska�sk�ho bodu |
registry | iso8859 | registr znakov� sady |
encoding | 2 | k�dov�n� |
|
N�zev fontu vych�z� z toho, �e jeden v�robce m��e dod�vat v�ce rodin p�sem. Rodina zpravidla obsahuje n�kolik �ez� p�sma v r�zn�ch velikostech. Jednotliv� �ezy se li�� tu�nost� (tlou��kou tah�), ���kou, sklonem, t�m, zda znaky maj� pati�ky (serif) nebo jsou bez nich (sans serif), a ka�d� �ez m��e b�t dostupn� v n�kolika velikostech.
Pro pou��v�n� v X je d�le�itou charakteristikou p�sma jeho mezerov�n�. U proporcion�ln�ch p�sem (spacing=p), kter� se b�n� pou��vaj� p�i tisku knih a �asopis�, maj� r�zn� znaky r�znou ���ku, nap��klad znak 'i' je u��� ne� znak 'm'. Tato p�sma jsou vhodn� nap��klad pro zobrazov�n� WWW str�nek. Pro pou�it� v termin�lov�ch emul�torech jako je xterm je t�eba pou��vat p�sma pevn� ���ky jako u psac�ho stroje. Tato p�sma jsou vhodn� nap��klad pro v�pisy program�, kde je pot�eba, aby znaky v r�zn�ch ��dc�ch byly pod sebou. I u p�sma pevn� ���ky mohou n�kter� znaky p�e�n�vat z prostoru, kter� je jim vymezen (spacing=m), ov�em pro xterm a dal�� programy, kter� na obrazovce p�episuj� jednotliv� p�smena, je nutn� p�smo, kter� m� nejen pevnou ���ku, ale jeho� v�echny znaky se vejdou do vymezen�ho prostoru, tak zvan�ho cellboxu (spacing=c). P�itom n�kter� p�sma v X (nap��klad nesklon�n� p�sma Adobe Courier) maj� chybn� uvedeno spacing=m, i kdy� ve skute�nosti vyhovuj� podm�nk�m pro spacing=c a je tedy mo�n� je pou��vat i jako fonty pro xterm.
X11R6 jsou standardn� dod�v�ny s n�kolika m�lo nebo zcela bez ISO-8859-2
font�. ISO-8859-2 fonty lze z�skat podle informac� na
http://www.biz.net.pl/english/x-fonts/index.html
nebo na
ftp://ftp.agh.edu.pl/pub/utils/x11/fonts/pl/, ve
form�tu *.rpm na
ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/
nebo
ftp://sunsite.mff.cuni.cz/MIRRORS/ftp.redhat.com/pub/contrib/i386/
soubory
ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-75dpi-970301biznet-3.i386.rpm,
ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-100dpi-970301biznet-3.i386.rpm a
ftp://ftp.muni.cz/pub/linux/distributions/redhat/contrib/i386/ISO-8859-2-X11-fonts-basic-970301biznet-3.i386.rpm a ve form�tu *.deb na
ftp://ftp.debian.org/debian/hamm/hamm/binary-all/x11/xfntil2*.deb.
Neproporcion�ln� fonty z bal�ku misc nejsou p��li� kvalitn�, lep�� je mo�n�
z�skat z bal�ku cs-tools z adres��e X11/fonts/xfonts
. Tyto fonty
ov�em �dajn� nejsou free.
P�esto�e rozli�en� v�t�iny displej� je okolo 75dpi, pokud je dostatek m�sta na disku, je vhodn� nainstalovat i fonty v rozli�en� 100dpi, zv�t�� se t�m po�et dostupn�ch velikost� jednotliv�ch p�sem.
U mnoha program� lze parametrem -fn
stanovit, jak� maj�
pou��vat font:
xterm -fn '-misc-fixed-medium-r-normal--14-*-iso8859-2'
Znak hv�zdi�ka je �ol�k, kter� nahrazuje jednu nebo v�ce slo�ek jm�na.
U v�t�iny program� je mo�n� nastavit pou��van� fonty tak� pomoc�
atribut� (resources). To m��e prov�st bu� spr�vce po��ta�e �pravou
souboru z adres��e /usr/X11R6/lib/X11/app-defaults
, nebo
libovoln� u�ivatel t�m, �e zkop�ruje soubor ze zm�n�n�ho adres��e do
sv�ho domovsk�ho adres��e, a na za��tek jm�na souboru p�id� te�ku.
Pro pou��v�n� �esk� kl�vesnice v X Window System mus�te m�t nainstalovan� a nastaven� locales (viz kapitola locales), tak�e prvn� z p��kaz�
printenv LC_ALL
printenv LC_CTYPE
printenv LANG
kter� n�co vyp��e, mus� vypsat cs_CZ
,
cs_CZ.k�dov�n�
nebo czech
(pouze v p��pad�,
�e m�te �esk� locale pro kategorii LC_CTYPE v adres��i cs
, m��e
b�t vyps�no cs
). V KDE je pro nastaven� kl�vesnice p��mo menu,
v ostatn�ch prost�ed�ch je t�eba vybrat vhodnou mapu kl�vesnice p��kazem
setxkbmap -symbols 'czsk(us_cz_qwertz)' -compat group_led
kter� m��e b�t um�st�n v souboru $HOME/.Xclients
jednotliv�ch
u�ivatel�, aby se provedl automaticky p�i ka�d�m spu�t�n� X. Mapa
us_cz_qwertz
m� dva re�imy �innosti. V prvn�m funguje americk�
rozlo�en� kl�vesnice, ve druh�m se chov� jako �esk� psac� stroj. P�ep�n�n�
mezi ob�ma re�imy se prov�d� kl�vesou ScrollLock nebo sou�asn�m
stisknut�m obou kl�ves Shift. Chvilkov�ho p�epnut� do opa�n�ho re�imu
lze dos�hnout dr�en�m prav� kl�vesy Alt. Kl�vesa =
funguje jako
mrtv� ��rka, se Shiftem jako mrtv� h��ek, kl�vesa `
(vlevo od
kl�vesy 1
) funguje jako mrtv� p�ehl�ska a se Shiftem jako mrtv�
krou�ek, tj. pro naps�n� �
mus�te stisknout Shift+=
a potom n
. Krom� mapy us_cz_qwertz
je k dispozici
je�t� mapa us_cz_qwerty
, kter� m� oproti �esk�mu psac�mu stroji
p�ehozen� kl�vesy z
a y
, a mapa us_cz_prog
,
u kter� horn� �ada kl�ves s ��slicemi produkuje p�smena s h��ky a ��rkami
jako na �esk�m psac�m stroji, funguj� ob� mrtv� kl�vesy, ale jinak se
kl�vesnice chov� jako americk�. Existuj� i mapy cz_us_*
, kter�
maj� implicitn� zapnutou jednu z uveden�ch �esk�ch kl�vesnic a lze je
p�epnout na americkou kl�vesnici. Tyto mapy ov�em p�sob� probl�my p�i
komunikaci s nelokalizovan�mi po��ta�i. Ke v�em �esti map�m existuj� i
slovensk� varianty, v jejich� jm�n� je cs
nahrazeno sk
.
Pro pou��v�n� v��e uveden�ch map kl�vesnice mus� m�t sekce Keyboard
souboru /etc/X11/XF86Config
tento obsah:
Protocol "Standard" AutoRepeat 500 5 XkbModel "pc102"
--- nesm� obsahovat ��dek XkbDisable
, a aby bylo mo�n� m�nit
mapy kl�vesnice p��kazem setxkbmap
, mus� b�t pou�it ��dek
XkbModel
(samoz�ejm� s uveden�m spr�vn�ho modelu kl�vesnice).
P�id�n�m ��dk�
XkbKeymap "xfree86(us_cz_qwertz)" XkbCompat "group_led"
je mo�n� zajistit zapnut� zadan� mapy kl�vesnice p�i ka�d�m startu X
bez pou�it� p��kazu setxkbmap
.
V�echny v��e uveden� mapy kl�vesnice jsou standardn� sou��st� bal�ku
XFree86 a� od verze 3.3.3.1 z roku 1999, tak�e pokud m�te star�� verzi
nebo X jin� produkce, budete muset tyto mapy doinstalovat (nyn� jsou
pravd�podobn� dostupn� pouze jako sou��st bal�ku XKB-czsk-forcedIM).
nebo se mus�te spokojit s mapou cs
, kter� je sou��st� X11
ji� od verze R6.1 Mapa cs
se zap�n� p��kazem
setxkbmap cs -option grp:shift_toggle
nebo ��dky
XkbLayout "cs" XkbOptions "grp:shift_toggle"
v souboru /etc/X11/XF86Config
. Parametr grp:shift_toggle
umo��uje p�epnut� na americkou kl�vesnici sou�asn�m stiskem obou Shift�,
co� je nezbytn�, proto�e mapa cs
sama o sob� neumo��uje zad�vat
n�kter� speci�ln� znaky, nap��klad k���ek #
a zavin�� @
.
Verzi X je mo�n� zjistit p��kazem
X -showconfig
Lokalizace kl�vesnice v X byla a� doned�vna jedn�m z nejtvrd��ch o���k� p�i lokalizaci Linuxu. Pokud nepou��v�te nejnov�j�� verzi X11 (a nepou��v�te KDE, v n�m� je �esk� kl�vesnice u� pom�rn� dlouho funk�n�), je t�m�� jist�, �e v�m kl�vesnice fungovat nebude, ale ani v nejnov�j�� verzi X11 nebude fungovat v ka�d�m programu. Pokud m�te tu sm�lu, �e v�m kl�vesnice nefunguje v�bec nikde, pou�ijte n�sleduj�c� postup pro odhalen� a odstran�n� chyb:
Zkontrolujte, zda m�te spr�vn� nastaven� prom�nn� prost�ed� pro locales, jak je pops�no na za��tku t�to kapitoly, otev�ete si textov� termin�lov� okno a zkuste zapnout kl�vesnici p��kazem
setxkbmap -symbols 'czsk(us_cz_qwertz)' -compat group_led
Pokud nen� p��kaz setxkbmap
nalezen (m�l by b�t
v /usr/bin/X11/setxkbmap
), pak pravd�podobn� m�te velmi starou
verzi X a budete muset prov�st upgrade nebo pou��t kl�vesnici popsanou
v podkapitole
Kl�vesnice v X pomoc� xmodmap
�i se spokojit s po�e�t�n�m kl�vesnice pouze v programu xterm popsan�m
v kapitole
Lokalizace jednotliv�ch aplikac�.
Jestli�e se vyp��e XKB extension not present on :0.0
, znamen�
to, �e nem�te zapnut� XKB (v souboru /etc/X11/XF86Config
je nevykomentovan� ��dek XkbDisable
). Jestli�e se vyp��e
Couldn't interpret _XKB_RULES_NAMES property
, chyb� v�m
v sekci Keyboard
souboru /etc/X11/XF86Config
��dek
XkbModel
nebo nem�te nainstalov�ny �esk� mapy kl�vesnice.
Mapy kl�vesnice jsou sou��st� bal�ku
ftp://ftp.muni.cz/pub/localization/linux/X11/XKB-czsk-forcedIM-0.04.tar.gz,
kter� v�ak obsahuje tak� knihovnu forcedIM, pro "opravu" n�kter�ch
aplikac� nefunguj�c�ch s �eskou kl�vesnic�. Tato knihovna m��e s n�kter�mi
programy a verzemi X11 zp�sobovat probl�my.
Pokud budete instalovat soubory s mapami kl�vesnice z tohoto bal�ku ru�n�,
nezapome�te, �e po p�id�n� souboru do n�kter�ho z adres���
v /usr/X11R6/lib/X11/xkb
je nutn� aktualizovat p��slu�n�
.dir
soubor, nap��klad takto:
cd /usr/X11R6/lib/X11/xkb/keymap xkbcomp -llphfR '*' -o ../keymap.dir
Pokud se mapu kl�vesnice poda�ilo nastavit, nastavte prom�nnou prost�ed� XKB_DEBUG a v okn� s termin�lov�m emul�torem zadejte ru�n� p��kaz
xterm &
V p�vodn�m okn� se mus� vypsat
XKEYBOARD (version 1.00/1.00) OK!
. Pokud se vyp��e
XKEYBOARD extension not present
je op�t probl�m
s XkbDisable
.
Pokud se v p�vodn�m okn� vyp��e
Warning: locale not supported by C library, locale unchanged
,
je to chyba v nastaven� locales --- n�kterou z v��e uveden�ch prom�nn�ch
prost�ed� m�te nastavenu na locale, kter� na va�em po��ta�i nen�
nainstalovan� nebo je nastavena na alias, jemu� v souboru
/usr/share/locale/locale.alias
nen� p�i�azeno existuj�c� locale
(v adres��i, kter� se vyp��e p��kazem localedef --help
nen�
podadres�� s p��slu�n�m jm�nem).
Jestli�e se v p�vodn� okn� vypisuje
Warning: locale not supported by Xlib, locale set to C
nen� nastaven� locale zn�m� knihovn� Xlib. Obvykle to je cs_CZ
;
konkr�tn� hodnotu lze zjistit ru�n�m startem programu netscape (vyp��e
se n�co jako
netscape-navigator: locale `cs_CZ' not supported by Xlib; trying `C'.
).
Pro inkriminovan� locale je nutn� doplnit nebo upravit v souboru
/usr/X11R6/lib/X11/locale/locale.alias
��dek
cs_CZ cs_CZ.ISO8859-2
Tato chyba je opravena a� v XFree86 3.3.3.1. Tak� je chybn� ��dek pro
czech
--- spr�vn� m� b�t
czech cs_CZ.ISO8859-2
ale tato chyba se p�i norm�ln� instalaci libc/glibc neprojev� (czech
je alias na cs_CZ.ISO8859-2
a locales jsou um�st�n� v adres��i
cs_CZ
, tak�e X pou�ij� cs_CZ
). ��dek pro czech
je opraven v X11R6.4.
Je-li v�e v po��dku, p�epn�te se do nov� otev�en�ho okna programu
xterm, zadejte p��kaz vi test
, stiskn�te kl�vesu i
,
a p�epn�te na �eskou kl�vesnici stisknut�m kl�vesy Scroll Lock
.
Pokud byla mapa kl�vesnice nastavena s -compat group_led
, m�la
by se kontrolka Scroll Lock rozsv�cet a zhas�nat nejen p�i ma�k�n� kl�vesy
Scroll Lock
, ale i stisknut�m obou kl�ves Shift, a mus� tak�
blikat v rytmu ma�k�n� prav� kl�vesy Alt. P�i rozsv�cen� kontrolce
Scroll Lock m��ete zkontrolovat, zda funguje psan� �esk�ch znak�.
M�ly by se vypisovat h��kovan� znaky ����
, ��rkovan�
�����
i znaky s akcenty po pou�it� mrtv�ch kl�ves. Fungovat
znamen�, �e se n�co vypisuje. Jestli�e se vypisuj� podivn� znaky, bude
probl�m v tom, �e xterm nepou��v� ISO-8859-2 fonty nebo tyto fonty ani
nem�te nainstalovan�. �e�en� naleznete v kapitole
Fonty v X Window System.
Pokud kl�vesnice funguje ve vi, ale ne v p��kazov�m ��dku, nem�te pravd�podobn� zkonfigurovan� shell pro pr�ci s osmibitov�mi znaky. N�prava je pops�na v podkapitol�ch bash a tcsh.
Pokud v nov� otev�en�m okn� �esk� kl�vesnice funguje, ale jinde ne, zkontrolujte, zda m�te pot�ebn� prom�nn� prost�ed� nastaveny u� p�ed startem X a zda ostatn� okna nepat�� jin�mu termin�lov�mu emul�toru ne� programu xterm. Jin� termin�lov� emul�tory nemus� s �eskou kl�vesnic� pracovat.
Nefunguj� kl�vesy '����', ale '�����' funguj�: nem�te nastavenou
prom�nnou prost�ed� LC_ALL
nebo LC_CTYPE
, p��padn�
LANG
na czech
nebo cs_CZ
(ne� jste do�etli
sem, byli jste n�kolikr�t nab�d�ni k jejich nastaven�).
Nefunguj� kl�vesy '�����', tyto znaky v�ak lze napsat pomoc� mrtv� kl�vesy ��rka a 'yaieu': toto je dlouho zn�m� chyba, kter� je odstran�na a� v XFree86 3.3.3.1. Na�t�st� ve star��ch verz�ch X je mo�n� ji obej�t �pravou textov�ch soubor� popsanou v podkapitole Nefunguj�c� �����.
Krou�kovan� '�' se na program�torsk� kl�vesnici p��e stisknut�m mrtv�
kl�vesy Shift+obr�cen� apostrof n�sledovan�m stiskem kl�vesy u.
Pokud jste zvykl� ps�t krou�kovan� '�' jako mrtv� h��ek a 'u', p�idejte
do souboru /usr/X11R6/lib/X11/locale/iso8859-2/Compose
��dky
<dead_caron> <U> : "\331" Uring
<dead_caron> <u> : "\371" uring
(velk� mezery jsou vytvo�eny tabel�tory).
V tomto okam�iku by v�m �esk� kl�vesnice v X m�la v z�sad� chodit.
Bohu�el st�le existuje mnoho program� pod X, kter� s �eskou kl�vesnic�
nepracuj�. Je to chyba aplikace. �e�en�m je chybn� aplikaci opravit
nebo n�koho znalej��ho slu�n� po��dat o pomoc s opravou. Ne� bude
aplikace korektn� opravena, m��ete se pokusit o do�asnou n�pravu
popsanou v podkapitole
Probl�m mrtv�ch kl�ves a XKB.
Pokud aplikace na��t� �esk� znaky, ale nepracuje s mrtv�mi kl�vesami,
je t� mo�n� pou��vat kl�vesnici cz-komp-qwerty
nebo
cz-komp-qwertz
, kde se akcentovan� znaky p��ou se stisknut�m
prav�m Alt (nap��klad '�' se dostane jako AltGr-o, '�' se dostane
kombinac� Alt-Shift-R).
Tato chyba se projevuje t�m, �e nen� mo�n� vkl�dat z kl�vesnice ne-ASCII znaky, kter� pat�� z�rove� do ISO-8859-1 i do pr�v� pou��van� znakov� sady (pro �e�tinu sada ISO-8859-2 a znaky �����), bez pou�it� mrtv�ch kl�ves. Vkl�d�n� pomoc� mrtv� kl�vesy ��rka n�sledovan� aeiuy p�itom funguje. Chyba se projevuje ve v�ech aplikac�ch v X, a je opravena a� v XFree86 3.3.3.1.
Ve star��ch verz�ch je mo�n� tuto chybu n�kolika zp�soby obej�t. Pravd�podobn� ��dn� z nich nen� zcela korektn�, ale chybu odstra�uj�.
Asi nejlep�� je do souboru
/usr/X11R6/lib/X11/locale/iso8859-2/Compose
p�idat n�sleduj�c� ��dky:
<yacute> : "\375" yacute
<aacute> : "\341" aacute
<iacute> : "\355" iacute
<eacute> : "\351" eacute
<uacute> : "\372" uacute
Druhou mo�nost� je opravit ��dek
ct_encoding ISO8859-2:GR
t�m�� na konci souboru
/usr/X11R6/lib/X11/locale/iso8859-2/XLC_LOCALE
na
ct_encoding ISO8859-2:GR; ISO8859-1:GR
Prvn� metoda opravy je pravd�podobn� o n�co lep��, proto�e u druh� p�i uveden� n�zvu symbolu pat��c�ho do ISO-8859-1 a ne do ISO-8859-2 v definici kl�vesnice bude p�i stisknut� p��slu�n� kl�vesy na�ten znak s p��slu�n�m k�dem, p�esto�e se v sad� ISO-8859-2 nevyskytuje.
Star�� opravy t�to chyby pou��valy v map�ch kl�vesnice pro dot�en� znaky
symboly il2_*
definovan� v souboru Compose
(il2_aacute
m�sto aacute
) nebo p��mo ��seln� k�dy
t�chto znak�.
Dal�� probl�my s �eskou a slovenskou kl�vesnic� vznikaj� t�m, �e se pro psan� n�kter�ch znak� s akcenty pou��vaj� mrtv� kl�vesy (kl�vesy odpov�daj�c� samostatn� ��rce a h��ku na psac�m stroji, kter� vyp��ou akcent bez posuvu v�lce, tak�e dal�� napsan� znak bude na t�e pozici). Na po��ta�i je pot�eba p�i stisknut� mrtv� kl�vesy pozdr�et zpracov�n� znaku a� do stisknut� dal�� kl�vesy, a pak nap��klad m�sto kr�tk�ho 'a' vr�tit dlouh� '�'. Bohu�el podpora mrtv�ch kl�ves byla a� do verze X11R6 z�le�itost� X-serveru, a n�kter� X-servery mrtv� kl�vesy v�bec nepodporovaly. Standardn� podpora mrtv�ch kl�ves se objevila a� ve verzi X11R6.1 spolu s nov�m mechanismem pro pr�ci s n�rodn�mi kl�vesnicemi zvan�m X Keyboard Extension (XKB) pou��vaj�c�m tak zvan� vstupn� metody (input methods). Tyto vstupn� metody mus� jednotliv� aplikace inicializovat a pou��vat, tak�e star�� aplikace s XKB nefunguj�. XFree86 --- free implementace X11 pou��van� ve v�t�in� distribuc� Linuxu podporuje mrtv� kl�vesy pomoc� XKB od verze 3.3, do t� doby bylo mo�n� pou��vat mrtv� kl�vesy pouze pomoc� xmodmap.
V sou�asnosti je st�le mnoho star��ch aplikac�, kter� s XKB nefunguj�. Koncep�n�m �e�en�m je tyto aplikace upravit, aby pou��valy vstupn� metody. Ne� k tomu dojde, je nutn� se v neupraven�ch programech vzd�t pou��v�n� n�rodn�ch kl�vesnic nebo pou��vat r�zn� �pinav� triky, kter� jejich pou��v�n� umo�n�.
Nejroz���en�j��m z t�chto trik� je patch Stano Meduny na knihovnu libX11, zn�m� pod n�zvem forcedIM. Tento patch zajist�, �e pokud aplikace spr�vn� neinicializuje vstupn� metody, provede jejich inicializaci p��mo zm�n�n� knihovna. Pou��v�n� patchovan� knihovny m� v�ak n�kolik nev�hod:
N�kter� z nev�hod forcedIM odstra�uje bal�k http://www.fi.muni.cz/~kabi/linux/LibI18Nforce.tar.gz, kter� obsahuje upraven� verze pouze n�kolika m�lo funkc� z libX11 a nav�c je mo�n� jej pou��vat selektivn� pouze pro aplikace, kter� s n�rodn� kl�vesnic� nepracuj�. Takov� aplikace se startuj� n�sleduj�c� d�vkou:
#!/bin/sh
LD_PRELOAD=LibI18N/lib/libI18Nforce.so.0.0
export LD_PRELOAD
chybna_aplikace $*
(p�ed libI18Nforce.so.0.0
a chybna_aplikace
je t�eba
doplnit spr�vn� cesty, pro libc5 je t�eba pou��t
libI18Nforce-c5.so.0.0
). Instalace bal�ku spo��v� v rozbalen�
archivu a vytvo�en� startovac�ch skript� pro v�echny X11 programy,
kter� nefunguj� s mrtv�mi kl�vesami (a kter� s knihovnou libI18Nforce
funguj�). Bal�k neobsahuje mapy kl�vesnice.
P�vodn� bal�k forcedIM od Stano Meduny lze z�skat na
ftp://ftp.fi.muni.cz/pub/localization/linux/X11/XKB-czsk-forcedIM-0.04.tar.gz.
Tento bal�k ovliv�uje v�echny X11 aplikace (n�kter� bohu�el negativn�).
Zahrnuje v sob� star�� bal�ky XKB-cz-X11R6.3.tar.gz
s mapami
kl�vesnic us_cz_qwertz
atd., xlib-forcedIM-0.01.tar.gz
(kter� obsahuje i p�elo�enou patchovanou knihovnu
z
ftp://ftp.levonet.sk/pub/linux/localization/libX11.so.6.99),
cs_CZ locale (u� obsa�en� v glibc 2.0.7, ale chyb�j�c� v glibc 2.0.5),
sk_SK locale a patch na soubor XLC_LOCALE
.
Bal�k by m�l fungovat na v�ech distribuc�ch Linuxu pou��vaj�c�ch XFree86
s XKB roz���en�m (lze zjistit podle existence adres��e
/usr/X11R6/lib/X11/xkb
).
RPM tohoto bal�ku je na
ftp://rak.isternet.sk/pub/linux/localization/mirrors/salstar.award.sk/RPMS/XKB-czsk-forcedIM-0.04-2.i386.rpm.
Rozbalen� bal�k se nainstaluje spu�t�n�m skriptu install.sh
.
Skript je nutn� spustit jako root z konzole (ne z X). Pokud v�
po��ta� startuje p��mo do X (runlevel 5), je vhodn� zm�nit pro instalaci
implicitn� runlevel v ��dku id:5:initdefault:
v souboru
/etc/inittab
na 3, a hodnotu 5 vr�tit a� po ov��en�, �e X
skute�n� funguj�. Popis, jak p�ep�nat jednotliv� mapy kl�vesnice, je
uveden na za��tku kapitoly
Kl�vesnice v X pomoc� XKB.
Pro zaji�t�n� funk�nosti aplikac�, kter� neinicializuj� vstupn� metody,
je t�eba nastavit prom�nnou XLIB_FORCE_I18N
na hodnotu 2
nebo 1.
V p��pad� probl�m� s konkr�tn� aplikac� p�i pou��v�n� knihovny
forcedIM nastavte p�ed spu�t�n�m probl�mov� aplikace prom�nnou
prost�ed� XLIB_FORCE_I18N_DEBUG
na hodnotu 2 a po�lete v�stup
s popisem, po kter� akci n�sledovaly konkr�tn� ��dky v�pisu, na adresu
[email protected]
.
Tato kl�vesnice je pou�iteln� i na X-serverech, kter� nepodporuj� XKB. Aby fungovaly mrtv� kl�vesy, je nutn� jejich podpora na X-serveru.
Jedn� se o zastaral� �e�en�, kter� je zde uvedeno pouze pro �plnost. Neobt�ujte pros�m jeho autora ani s ��dostmi o pomoc nebo radu.
�e�en� je obsa�eno v bal�ku
cs-tools,
v adres��i X11/Xlib-Compose-1.1
. Ka�d� kl�vesnicov� mapa
obsahuje dv� kl�vesnice; na druhou kl�vesnici je mo�n� p�epnout dr�en�m
AltGr (prav� kl�vesa Alt) nebo p�e�azova�em ScrollLock.
Jedn� se o pokra�ov�n� modifikace varianty s pomoc� Xmodmap (Viz nap� http://www.fi.muni.cz/~kabi/linux/linux.html); p�vodn� Xmodmap se nahrad� nov�j�� variantou http://www.fi.muni.cz/~kabi/Xmodmap, ��m� je v provozu p�ep�n�n� mezi 3 kl�vesnicemi (zat�m nev�m jak to inteligentn� hl�sit --- sv�t�c� scroll-lock p�i variant� B i C nen� p��li� srozumiteln�):
Varianta A --- �ist� US kl�vesnice Scroll-lock p�ep�n� kl�vesnici --- Win95 kl�vesa tak�. (Pro z�jemce p�ep�n�n� Ctrl+Shift :-))
Varianta B --- moje "klasick�" �esk� --- tj. �esky pouze 2, 3, ..., 0 jinak standard (tj. v�etn� +/=), v�e ostatn� p�es mrtv� kl�vesy - vyu��v� jednak standardn� mrtvoly rozm�st�n� na F9-F12 (nejsou v�echny) a vyu��v� dead_iota na PrintScrn ve spojen� s hack-em Compose - ned�vno publikovan�m na http://www.fi.muni.cz/~pekon/Compose.
Varianta C --- hnusn� �kared� o�kliv� hack --- nicm�n� funguje - m�l by umo�nit vkl�dat �esk� znaky tam, kde je to nezbytn� nutn� a program to prost� jinou cestou nepodporuje --- nap�. star� verze netscape aj. (lze na to pou��t i LD_PRELOAD s n�kolika hacknut�mi patchnut�mi funkcemi, ale tato varianta je p�ece jen jednodu���). Proto�e v t�to variant� nelze pou��vat mrtv� kl�vesy, musel jsem naskl�dat standardn� �esky pou��van� kl�vesy na F-keys --- velk� p�smena se p��� se shiftem --- tj. kl�vesnice nep��e !@#$%^&*()_ a F1-F20 --- pokud jsou pot�eba tyto znaky je pot�eba se p�epnout, napsat je, a p�epnout se zp�t.
Samoz�ejm� nelze o�ek�vat, �e program s�m od sebe neschopn� pracovat s ISO-8859-2, za�ne tyto symboly korektn� implementovat. Jde o hack, kter� prost� vrac� m�sto dcaron -> idiaeresis, co� je symbol le��c� na stejn� pozici, ale v sad� ISO-8859-1. Aby tedy bylo vid�t spr�vn� v�stup je pot�eba �patn� napsan�mu programu vnutit font --- co� se nemus� v�dy poda�it - pak tedy sice budete ps�t spr�vn�, jen�e uvid�te �patn� :-)
V�em se tu omlouv�m, �e jsem tu publikoval tento hack --- jsem proti n�mu, ale je to tak jednoduch� a primitivn�, �e by bylo �koda se o t�to mo�nosti nezm�nit.
Pokud chce n�kdo n�jak� standardn� rozm�st�n� psac�ho stroje, nech� si uprav� Xmodmap, a pokud si mysl�, �e to ud�lal fakt sq�le, a� mi jej mailne.