Čokoľvek sa chystáte robiť s X Window Systemom a slovenčinou
dokopy, sľubujem, že vám to nebude fungovať, ak nenastavíte totok taktok:
Čo to znamená a ako sa to nastavuje, tak o tom pojednáva kapitola Miestne nastavenia. Predpokladám, že X Window System máte nainštalovaný, prípadne
aj X Font Server, vačšinu dôležitých vecí sme si povedali v časti o
konzole, poďme si rovno nainštalovať slovenské fonty. Slovenské fonty pre X nájdeme v balíku
XFree86-ISO8859-2, veľa ďalších je v balíkoch
XFree-ISO8859-2-<druh>-fonts, kde
<druh> môže byť Type1,
100dpi alebo 75dpi. Ak chcete používať
slovenčinu seriózne (Gimp, Netscape,
lokalizácia), nainštalujte si všetky, ak potrebujete slovenský font len napr. v
XTerme, postačí vám základný balík. Po rozbalení archívu sa fonty nachádzajú na niekoľkých miestach. Všetky cesty k novým
fontom si treba odpisať, zapamätať, mať na očiach:
/usr/share/fonts/ISO8859-2/misc | /usr/share/fonts/ISO8859-2/75dpi | /usr/share/fonts/ISO8859-2/100dpi | /usr/share/fonts/ISO8859-2/Type1 |
Tieto cesty totiž budeme vkladať do konfiguračného súboru X Window
Systemu (/etc/X11/XF86Config, prípadne
/etc/X11/XF86Config-4). Tým sprístupníme X serveru fonty z týchto
adresárov. Sekciu "Files" upravíme vložením riadkov
FontPath:
Section "Files"
...
FontPath "/usr/share/fonts/ISO8859-2/misc"
FontPath "/usr/share/fonts/ISO8859-2/75dpi"
FontPath "/usr/share/fonts/ISO8859-2/100dpi"
FontPath "/usr/share/fonts/ISO8859-2/Type1"
EndSection
|
Správne poradie riadkov s cestami k fontom nájdete v
XWindow-User-HOWTO, ale nemali by ste mať veľké problémy ani keď
slovenské fonty vložíte na koniec zoznamu. Za behu X Window Systemu pridáte nové adresáre s fontami
príkazom
sh$ xset +fp /usr/share/fonts/ISO8859-2/misc, /usr/share/fonts/ISO8859-2/75dpi, …
|
X Font Server ponúka druhý spôsob spravovania fontov pre
X Window Server, a to ako pre lokálnu mašinu, tak aj pre
vzdialené systémy. Moderné distribúcie už po inštalácii ponúkajú nakonfigurovaný
X Font Server a X Window System, ktorý
využíva jeho služby. Pri tomto spôsobe treba cesty k fontom vložiť do konfiguračného súboru
X Font Serveru a konfigurácia v
/etc/X11/X86Config (XF86Config-4) by mala vyzerať takto:
Section "Files"
FontPath "unix/:7100"
EndSection
|
za predpokladu, že X Font Server beží na porte 7100 (voľba príkazového riadku
-port). Ak teda používate xfs, niečo podobné ako v
predchádzajúcej kapitole urobíte s konfiguračným súborom pre tento program
(/etc/X11/fs/config) v časti
catalogue:
catalogue = ...,
/usr/share/fonts/ISO8859-2/misc,
/usr/share/fonts/ISO8859-2/75dpi,
/usr/share/fonts/ISO8859-2/100dpi,
/usr/share/fonts/ISO8859-2/Type1
|
Hneď potom musí xfs znovu načítať
konfiguračný súbor a tým umožníte používanie slovenských fontov lokálnemu aj iným
X serverom:
Ak vlastníte legálnu kópiu systému WindowsXX
(kde XX je hocičo), alebo MacOS,
nemali by vás zavrieť, ak použijete TrueType fonty obsiahnuté v
ich distribúciách. Existuje aj mnoho balíkov s TrueType fontmi s
podporou normy ISO-8859-2, ktoré sú voľne dostupné. Popis inštalácie takýchto fontov prebehneme len v krátkosti, podrobnejší
nájdete v dokumentácii k balíku free-type: Skopírujte súbory s TrueType fontami napr. do adresára
/usr/share/fonts/ttf/win/. Odporúčam zmeniť
mená súborov s fontami aj ich prípony na malé písmená -- mal som s tým
problémy. Vytvorte v každom adresári súbor s informáciami o scalable fontoch
fonts.scale nasledovným príkazom:
sh# cd /usr/share/fonts/ttf/win
sh# ttmkfdir -o fonts.scale
|
Ak to nie je celkom ono a dostanete veľa chybových hlásení, alebo súbor
fonts.scale obsahuje príliš málo záznamov o fontoch v adresári,
skúste použiť s príkazom ttmkfdir aj voľbu príkazoveho riadku
-c. Zoznam fontov v súbore, ktorý načítava X server aj
xfs, vytvoríte nasledovne:
sh# cd /usr/share/fonts/ttf/win
sh# mkfontdir
|
Od tohto momentu pokračujte štandardným spôsobom tak, ako je to popísané
v predchádzajúcej časti o konfigurácii X servera alebo
xfs. Okrem toho, že sa slovenské znaky zobrazujú správne, nič. Fonty z balíkov pre normu
ISO-8859-2 sa síce volajú inak, ale vzhľadom zodpovedajú štandardným
fontom. V nasledujúcej tabuľke sú uvedené zodpovedajúce dvojice fontov:
Tabuľka 3. Slovenské ekvivalenty štandardných fontov štandardne | iso8859-2 |
---|
Times | Kathimerini | Helvetica | Aplos | New Century Schoolbook | Anagnostiko | Lucida | Fotinos | Utopia | Chimera | Charter | Chartis |
Berte túto tabuľku len ako informatívny údaj, ktorý pravdepodobne nikdy nebudete
potrebovať vďaka súborom fonts.alias v adresároch so slovenskými
fontmi. Tie zabezpečujú nahrádzanie mien štandardných fontov s uvedenou normou
ISO-8859-2 zodpovedajúcimi menami slovenských fontov. Napríklad
požiadavka na font
-b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
poskytne a teda zobrazí v skutočnosti font
-biznet-fotinos-bold-i-normal-sans-11-80-100-100-p-69-iso8859-2
Ak budete dostávať po spustení X serveru chybové hlásenia typu
„Can't open default font 'fixed'“ alebo
„unable to open font ...“, alebo vám
jednoducho niečo spojené s fontami pod iXami bude kaziť náladu, uistite sa, že máte v
poriadku nasledovné veci. Všetky adresáre s fontami, samotné súbory fontov a súbory, ktoré číta X
Window System alebo X Font Server, musia mať
nastavené rozumné prístupové práva. V adresároch, v ktorých sa nachádzajú fonty, musí existovať súbor
fonts.dir. Ak nie, spustite v týchto adresároch program
mkfontdir. V adresároch s TrueType fontmi
musíte ešte predtým vytvoriť súbor fonts.scale tak ako je to
popísane v časti
Slovenské TrueType fonty. Ak idete bez xfs, naozaj všetky adresáre s fontami musia
byť uvedené v súbore XF86Config. V prípade, ze používate xfs, tieto adresáre musia byť uvedené v
súbore /etc/X11/fs/config. Navyše, xfs musí bežať na nejakom porte
(napr. 7100) a v XF86Config musí byť cesta k fontom uvedená ako
adresa s číslom toho portu, asi takto:
Po zmenách v konfiguračných súboroch X Window Systemu
alebo X Font Serveru je nutný reštart alebo znovunačítanie
nastavení:
- X Window System
- X Font Server
Ak máte v inittabe nastavené spúšťanie X serveru pri štarte
systému (runlevel 5/X), radšej si to pri pokusoch s fontami zmeňte
na 3/multiuser až pokiaľ si nie ste sakramentsky istí, že X server
pri štarte nájde fonty. Ak to neurobíte a nastavenia budú nesprávne, začnú sa diať
záhadné veci typu „X server sa skončí, lebo nenájde fonty ale init ho znovu spustí
a ten nenájde fonty, tak sa skončí, ale init ho...“. Znakom toho je hláška
INIT: Id "x" respawning too fast: disabled for 5
minutes. X Window System hľadá (pre normálneho užívateľa)
konfiguračné súbory v tomto poradí:
/etc/X11/<cmdline> | /usr/X11R6/etc/X11/<cmdline> | /etc/X11/$XF86CONFIG | /usr/X11R6/etc/X11/$XF86CONFIG | /etc/X11/XF86Config-4 | /etc/X11/XF86Config | /etc/XF86Config | /usr/X11R6/etc/X11/XF86Config.<hostname> | /usr/X11R6/etc/X11/XF86Config-4 | /usr/X11R6/etc/X11/XF86Config | /usr/X11R6/lib/X11/XF86Config.<hostname> | /usr/X11R6/lib/X11/XF86Config-4 | /usr/X11R6/lib/X11/XF86Config |
Pamätajte na to pri editovaní konfigurákov a vždy sa uistite, či neexistuje súbor,
ktorý je v tomto zozname vyššie, ako ten, ktorý editujete.
Skôr jak to tu celé roztočíme, zadajte príkaz
Všetky tie čísla za XFree86, čo vám tento príkaz vypíše,
udávajú verziu vášho XFree86 X Window Systemu. Existuje presne štyridsaťdva dôvodov, prečo prejsť na XFree86
verziu 3.2 alebo vyššiu, a len dva, prečo zostať pri staršej verzii. Red Hat Linux 6.0 obsahuje XFree86 ,
verziu 3.3.3 a Linux Mandrake 7.0 už verziu
3.3.6. Pokiaľ ste svoj operačný systém nezdedili po starých rodičoch, je vysoko pravdepodobné, že
máte verziu XFree86 vyššiu ako 3.2. Inak ste naozaj krok pozadu a
na adrese ftp://ftp.xfree86.org nájdete to, čo
treba. Ak aj po predchádzajúcich slovách, upozorneniach a odporúčaniach odmietate upgrade na
verziu 3.2, držte sa nasledujúcich krokov: Ak máte Slovak-HOWTO vytlačené na papieri, uchopte tento do
ľavej ruky (ak ste ľavák, robte všetko naopak), zapaľovač do pravej, zachovavajte
dostatočnú vzdialenosť od iných zápalných materiálov a nekompromisne konajte. V prípade, že máte tento súbor uložený niekde na disku, príkazom
sa ho do niekoľkých minút po zadaní hesla zaručene zbavíte.
XFree86 3.2 a novšie už majú tzv.
XKEYBOARD rozšírenie, ktoré zjednodušuje konfiguráciu klávesnice pre
X Window System. Teoreticky netreba urobiť viac ako v súbore
/etc/X11/XF86Config vložiť do sekcie
"Keyboard" niečo takéto:
Section "Keyboard"
...
XkbLayout "czsk"
XkbVariant "us_sk_qwertz"
XkbOptions "grp:ctrl_shift_toggle"
EndSection
|
Ak už ste nebodaj užívateľom XFree86 verzie 4.0.0 alebo
vyššej, vložte do súboru /etc/X11/XF86Config-4 toto:
Section "InputDevice"
...
Option "XkbLayout" "czsk"
Option "XkbVariant" "us_sk_qwertz"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
|
Riadok v konfiguračnom súbore
prípadne pre verziu ≥ 4
Option "XkbLayout" "czsk"
|
hovorí asi toľko, aby X server použil popis rozloženia kláves uložený v
súbore czsk. Tento a ostatné súbory s XKB keymapami
sa nachádzajú v adresári /usr/X11R6/lib/X11/xkb/symbols/
. Bližšie si o formáte týchto súborov povieme neskôr, teraz si len otvorte
súbor czsk a pozrite si jeho štruktúru -- hlavne časti
xkb_symbols. Pre slovenčinu sú dôležité tieto varianty:
us_sk_qwerty | us_sk_qwertz | us_sk_prog | sk_us_qwerty | sk_us_qwertz | sk_us_prog |
Niektorý z týchto reťazcov dosaďte do riadku
pre staršie verzie X Window Systemu, alebo
Option "XkbVariant" "..."
|
v konfiguračnom súbore pre X sever verzia 4. Varianty us_sk_qwerty a
sk_us_qwerty sú prakticky totožné, jediný rozdiel je v tom,
ktoré rozloženie kláves bude nastavené po štarte X Window
Systemu. Pre sk_us_* je to slovenské, pre
us_sk_* zase americké. Prepínať medzi slovenským a americkým rozložením kláves možno klávesom
Scroll Lock, prípadne aj inými, ak vložíte do konfigurácie klávesnice
riadok:
alebo pre X Window System verzie 4.0 alebo novší:
Option "XkbOptions" "grp:..."
|
Časť grp:… nahraďte niektorou z nasledujúcich
možností a môžete prepínať rozloženia kláves pomocou danej klávesovej skratky:
Tabuľka 4. Možnosti prepínania medzi rozloženiami kláves voľba | prepínanie medzi rozloženiami |
---|
grp:ctrl_shift_toggle | LShift + LCtrl / RShift + RCtrl | grp:caps_toggle | Caps Lock / LShift + RShift | grp:ctrl_alt_toggle | Ctrl + Alt |
Pri nastavovaní alternatívnych klávesových kombinácií na prepínanie medzi rozloženiami
kláves si dávajte pozor, aby dané nastavenie nekolidovalo s už existujúcimi klávesovými
skratkami (napríklad vášho manažéra okien). Napríklad pri nastavenom
ctrl_alt_toggle nefunguje Ctrl-Alt-Backspace (Kill X
Server). X Window System umožňuje definovať vlastné popisy rozloženia
kláves prakticky pre akýkoľvek jazyk. Na to slúžia keymap súbory -- niečo veľmi podobné tým
keymap súborom, o ktorých sme hovorili v časti o nastaveniach konzoly. Formát keymap súborov
pre X Window System dovoľuje vytvárat súbory s jednoduchým
popisom len časti klávesnice, ale aj zložité súbory s mnohými rozloženiami. Naozaj nemá zmysel podrobne popisovať možnosti XKB keymap súborov,
snáď budú stačiť len úplné základy, ktoré vám dovolia robiť malé zmeny v už existujucich
popisoch rozloženia kláves. Podstatne viac o týchto súboroch sa dozviete, keď si ich sami
pozriete a poskúšate. V XKB popisoch rozloženia kláves majú riadky takýto formát:
key <TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] };
|
Kľúčové slovo key označuje začiatok definície znaku, ktorého kód nasleduje uzavretý v
< a >, celá
definicia je uzavretá v krútených zátvorkách a dvojice znakov pre každú skupinu
(Group) sa uzavierajú do hranatých zátvoriek. Skupiny môžu
byť definované napríklad takto:
name[Group1] = "US/ASCII";
name[Group2] = "Slovak";
|
Potom prvé dva znaky (quoteleft a asciitilde) v definícii znaku platia pre prvú skupinu ( US/ASCII) a druhé dva (semicolon a
degree) pre druhú skupinu
(Slovak). Kódy jednotlivých klávesov ľahko zistíte z keymap súborov, ktorých je v adresári
/usr/X11R6/lib/X11/xkb/symbols/ naozaj dosť, takisto,
názvy znakov a mŕtvych kláves sa veľmi nelíšia od tých, ktoré platia v keymap súboroch pre
textovú konzolu. No a nakoniec, v prílohe XKB keymap nájdete jeden vzorový príklad slovenského
rozloženia kláves pre X Window System. Mimoriadne zložité bolo do verzie 4.0.1 nastavovanie slovenčiny pre myš. Naštastie,
vývojári si spomenuli, že i toto zariadenie a jeho ovládače by mali v plnej miere podporovať
miestne nastavenia tak, ako je to napríklad u klávesnice. Dokonca sa objavili pokusy
lokalizovať tablety a svetelné perá. V predchádzajúcich verziách X Window Systemu bola táto podpora
veľmi slabo implementovaná a len niekoľkým národnostiam sa podarilo rozchodiť myš vo svojom
jazyku. Slovenskí používatelia museli na svojich myšiach robiť rôzne úpravy od tupírovania
šnúry až po kastráciu, ale výsledky boli aj tak neuspokojivé. Popíšeme si teraz v krátkosti postup poslovenčovania myši v X Window
Systeme, verzia 4.0.1 a vyššie: Odpojte svoju myš od počítača, poutierajte a vyleštite jej guľu, skontrolujte
mikrotlačidlá a celkovo ju ošetrite. Odložte ju do tepla a sucha. Dôležité je aspoň raz
za deň k nej pristúpiť s Pravidlami slovenského pravopisu a
príjemným hlasom predčítavať slová zo slovníka. Po pár tyždňoch môžete prejsť k
jednoduchej beletrii a rozprávkam. Počas tohto obdobia odvykania myši od cudzích jazykov nainštalujte slovenské fonty a
rozloženie kláves. Takisto sa pokúste pozháňať slovenské preklady obľúbených aplikácií
vašej myši. Ako pozadie obrazovky odporúčam nastaviť slovenskú zástavu a adresáre s
hudbou by ste mali obohatiť o tituly ako Iné Kafe, Maduar a rôzne iné rockové uragány a
punkové smršte. Ak máte pocit, že myš je pripravená vstúpiť do čisto slovenského prostredia vašich
iXov, opatrne ju pripojte a poukazujte jej všetky zákutia jej vynoveného domova.
Ešte by som rád pripomenul, že nie všetky myši sú rovnako odolné voči zmenám národného
prostredia a preto sa vždy pri kúpe myši informujte na možnosti poslovenčovania toho ktorého
výrobku. Časť konfiguračného súboru X Window Systemu (4.0.1) s rozbehaným X Font Serverom,
slovenským rozložením kláves s prepínaním medzi americkým a slovenským pomocou Shift + Ctrl.
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
ModulePath "/usr/X11R6/lib/modules"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "czsk"
Option "XkbVariant" "us_sk_qwertz"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection
|
Príklad úplne jednoduchého popisu rozloženia kláves pre slovenčinu:
partial default alphanumeric_keys
xkb_symbols "sk_us" {
name[Group1] = "Slovak";
name[Group2] = "US/ASCII";
// line 1
key <TLDE> { [ semicolon, degree ],
[ quoteleft, asciitilde ] };
key <AE01> { [ plus, 1 ],
[ 1, exclam ] };
key <AE02> { [ lcaron, 2 ],
[ 2, at ] };
key <AE03> { [ scaron, 3 ],
[ 3, numbersign ] };
key <AE04> { [ ccaron, 4 ],
[ 4, dollar ] };
key <AE05> { [ tcaron, 5 ],
[ 5, percent ] };
key <AE06> { [ zcaron, 6 ],
[ 6, asciicircum ] };
key <AE07> { [ yacute, 7 ],
[ 7, ampersand ] };
key <AE08> { [ aacute, 8 ],
[ 8, asterisk ] };
key <AE09> { [ iacute, 9 ],
[ 9, parenleft ] };
key <AE10> { [ eacute, 0 ],
[ 0, parenright ] };
key <AE11> { [ equal, percent ],
[ minus, underscore ] };
key <AE12> { [ dead_acute, dead_caron ],
[ equal, plus ] };
// line 2
key <AD01> { [ q, Q ],
[ q, Q ] };
key <AD02> { [ w, W ],
[ w, W ] };
key <AD03> { [ e, E ],
[ e, E ] };
key <AD04> { [ r, R ],
[ r, R ] };
key <AD05> { [ t, T ],
[ t, T ] };
key <AD06> { [ z, Z ],
[ y, Y ] };
key <AD07> { [ u, U ],
[ u, U ] };
key <AD08> { [ i, I ],
[ i, I ] };
key <AD09> { [ o, O ],
[ o, O ] };
key <AD10> { [ p, P ],
[ p, P ] };
key <AD11> { [ uacute, slash ],
[ bracketleft, braceleft ] };
key <AD12> { [ adiaeresis, parenleft ],
[ bracketright, braceright ] };
// line 3
key <AC02> { [ s, S ],
[ s, S ] };
key <AC03> { [ d, D ],
[ d, D ] };
key <AC04> { [ f, F ],
[ f, F ] };
key <AC05> { [ g, G ],
[ g, G ] };
key <AC08> { [ k, K ],
[ k, K ] };
key <AC09> { [ l, L ],
[ l, L ] };
key <AC10> { [ ocircumflex, quotedbl ],
[ semicolon, colon ] };
key <AC11> { [ section, exclam ],
[ quoteright, quotedbl ] };
// line 4
key <AB01> { [ y, Y ],
[ z, Z ] };
key <AB02> { [ x, X ],
[ x, X ] };
key <AB04> { [ v, V ],
[ v, V ] };
key <AB05> { [ b, B ],
[ b, B ] };
key <AB06> { [ n, N ],
[ n, N ] };
key <AB07> { [ m, M ],
[ m, M ] };
key <AB08> { [ comma, question ],
[ comma, less ] };
key <AB09> { [ period, colon ],
[ period, greater ] };
key <AB10> { [ minus, underscore ],
[ slash, question ] };
key <BKSL> { [ ncaron, parenright ],
[ backslash, bar ] };
// End alphanumeric section
// begin modifier mappings
modifier_map Shift { Shift_L };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L };
modifier_map Mod3 { Mode_switch };
};
|
|
|