3. Nastavenia konzoly

Tßto kapitola by mala čφtavou, poučnou a zßroveň zßbavnou formou pojednßvať o veciach medzi prstom a okom. Zßkladnou otßzkou nech nßm je „Zmysel života, vesmφru a v⌠bec.“

3.1. Slovenčina na v²stupe textovej konzoly

3.1.1. Fonty

Keď zobudφte o polnoci hocikoho, kto vo svojom živote videl počφtač a op²tate sa ho, ako rozbehať slovenskΘ znaky, určite spomenie niečo ako fonty. Na zobrazovanie znakov na obrazovku -- či už v textovom alebo grafickom režime -- sl·žia skutočne fonty. Fonty pre konzolu a programy určenΘ na manipulßciu s nimi sa nachßdzaj· v balφku kbd. Po jeho nainštalovanφ s· s·bory s fontami umiestnenΘ v adresßri /usr/lib/kbd/consolefonts/.

Pre nßs s· d⌠ležitΘ najmΣ s·bory, ktorΘ maj· v mene iso02, lat2, latin2 alebo čφslo 852. To naznačuje, že ide o fonty s podporou ISO-8859-2 (latin2), prφpadne DOS codepage 852, čo s· štandardy aj pre slovensk· diakritiku.

Pozor, p⌠vodn² balφk sa volß kbd, ale existuje jeho rozšφrenß verzia, ktorß sa objavuje v distrib·cißch -- console-tools. Rozdiely medzi nimi s· minimßlne, pre kbd budeme použφvať prφkaz setfont, pre console-tools zase consolechars. Taktiež, nßzvy dodßvan²ch fontov sa trochu odlišuj·, takže budem uvßdzať ekvivalenty pre oba balφky.

3.1.2. Ako fonty funguj·

Existuje niekoľko s·borov²ch formßtov na ukladanie fontov, princφp je však rovnak² -- s·bor obsahuje 256 obrßzkov (glyphs), z ktor²ch všetky maj· rovnak² rozmer (napr. 8x16 bodov -- veľkosť fontu) a každ² zobrazuje jeden znak.

Aby nßm t²ch 256 obrßzkov bolo na niečo dobr²ch, je treba font zo s·boru zaviesť do znakovΘho generßtora videokarty. Na to sl·ži jeden z prφkazov

kbd:

setfont meno-fontu

console-tools:

consolechars -f meno-fontu

meno-fontu m⌠že byť absol·tna alebo relatφvna cesta k s·boru s fontom, alebo meno s·boru, pokiaľ sa nachßdza v adresßri /usr/lib/kbd/consolefonts/, či už s prφponou, alebo bez.

Pre ľahšie pochopenie t²ch obrßzkov, sk·ste nahradiť meno-fontu reťazcom t850 a sledujte v²sledok na všetk²ch virtußlnych konzolßch.

NaspΣť k štandardnΘmu fontu sa vždy dostanete jedn²m z prφkazov

kbd:

sh$ setfont
		

console-tools:

sh$ consolechars -d
		

Čo sa presne deje? Program setfont/consolechars zavedie všetk²ch 256 obrßzkov do znakovΘho generßtora EGA/VGA karty. Od tohto momentu sa na všetk²ch konzolßch bude znak s ASCII k≤dom napr. 65 vykreslovať ako šesdesiaty piaty obrßzok z našeho s·boru s fontom. Ešte raz pripomφnam a dvakrßt podčiarkujem, že font je vždy rovnak² pre všetky virtußlne konzoly, na ktor²ch zobrazuje znaky ten ist² znakov² generßtor EGA/VGA karty.

D⌠ležitΘ je uvedomiť si, že interne ide naozaj len o obrßzky a tvar niektorΘho znaku vo fonte nemß nič spoločnΘho s jeho ASCII k≤dom. Ak by ste si sami vytvorili nejak² font (v dokumentßcii ku kbd/console-tools mßte informßcie o všetk²ch formßtoch), v ktorom by mal ten šesdesiaty piaty obrßzok tvar pφsmena z, po jeho natiahnutφ sa vßm bude pri zadanφ Alt-6-5, čo je ASCII k≤d pφsmena A, zobrazovať znak z. Ale ak tento znak uložφte do s·boru, v tomto sa bude nachßdzať bajt s hodnotou 65, teda pφsmeno A.

3.1.3. Fonty ISO-8859-2

Toto využφva štandard ISO-8859-2 (a inΘ) - spoločnΘ znaky s ASCII vykreslφ rovnako a znaky špecifickΘ pre t· ktor· abecedu „namapuje“ na menej použφvanΘ znaky ASCII tabuľky. Kam presne ktorß norma umiestňuje znaky s diakritikou, nßs zaujφmať nemusφ (pokiaľ nevytvßrame vlastnΘ fonty), hlavnΘ je, že napr. anglick² text je nezmenen² (angličtina mß všetky znaky spoločnΘ so slovenčinou) a slovensk² text už viac neobsahuje hl·pe znaky, ktorΘ so slovenčinou nemaj· nič spoločnΘ.

SlovenskΘ (ISO-8859-2) fonty, ktorΘ s· s·časťou balφkov kbd a console-tools:

kbd:

lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}

console-tools:

lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}

Na zavedenie fontu použite prφkaz

kbd:

sh$ setfont meno-zo-zoznamu
		

console-tools:

sh$ consolechars -f meno-zo-zoznamu
		

Odpor·čam použφvať lat2a-16, resp. lat2u-16. OstatnΘ fonty maj· bezchybnΘ zobrazovanie slovensk²ch znakov, problΘm však nastßva pri aplikßcißch, ktorΘ využφvaj· znaky na kreslenie rßmčekov (napr. mc).

Čo sa t²ka fontov iso02.* z balφka kbd, treba pri nich použiť argument prφkazu setfont -m latin2u.trans. Takže cel² prφkaz na zavedenie niektorΘho z t²chto fontov je:

kbd:

sh$ setfont iso02.16 -m latin2u.trans
		

console-tools:

sh$ consoletrans -f lat2u-16 -m iso02
		

V s·bore latin2u.trans (iso02.acm) sa nachßdza tzv. Aplication-Charset Map (ACM), akßsi prevodnß tabuľka, ktorß obsahuje riadok pre každ² znak fontu a jeho podobu v k≤dovanφ UTF-8.

3.1.4. AutomatickΘ zavßdzanie fontov

Ak ste si našli svoj font, ktor² chcete použφvať a mať ho automaticky zaveden² vždy pri štarte, nie je nič ľahšie. Inicializačn² skript rc.sysinit robφ asi toto: skontroluje, či existuje s·bor /etc/sysconfig/i18n a program (skript) /sbin/setsysfont. Ak ßno, spustφ setsysfont. Ten načφta /etc/sysinfo/i18n a podľa premenn²ch definovan²ch v tomto s·bore prφkazom consolechars alebo setfont zavedie font.

Takže stačφ nastaviť sprßvne premennΘ v s·bore /etc/sysconfig/i18n a skript /sbin/setsysfont urobφ všetko za nßs. Tento skript možno spustiť kedykoľvek chcete zaviesť font nastaven² ako štandardn² pre systΘm.

PremennΘ v s·bore /etc/sysinit/i18n s· (použφvajte len menß s·borov bez cesty a bez prφpony!):

kbd:

SYSFONT=lat2a-16
		

console-tools:

SYSFONT=lat2u-16
SYSFONTACM=iso02
		

Skriptφk setsysfont obsahuj· oba balφky a kedykoľvek m⌠žete zaviesť font nastaven² ako systΘmov² v s·bore /etc/sysinit/i18n jednoduch²m zadanφm
sh$ /sbin/setsysfont
	

Podľa toho, čo sme si hovorili o tom, že pre všetky virtußlne konzoly m⌠že byť nastaven² len jeden spoločn² font, nemß veľk² zmysel zavßdzať nastavovanie fontu zvlßšť pre každΘho užφvateľa. S t²m s·visφ aj fakt, že nastavenie fontu sa vzťahuje k danΘmu počφtaču, pri ktorom prßve sedφte a nie k tomu, ku ktorΘmu ste pripojenφ napr. cez ssh.

Predsa len si viem predstaviť prφpad, keď niektor² z viacer²ch použφvateľov jednΘho počφtača potrebuje odlišn² font. V tom prφpade m⌠že vložiť prφkaz na zavßdzanie fontov do svojich skriptov, ktorΘ vykonßva shell pri prihlßsenφ a odhlßsenφ. Pre bash by to mohlo vyzerať takto:

~/.bash_profile:

if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then
	setfont -o ~/.font gr928a-8x16
fi
		

~/.bash_logout:

if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.font ]; then
	setfont ~/.font
	rm -f ~/.font
fi
		

Vonkoncom to nie je ideßlne riešenie, ale svoj ·čel splnφ (minimßlne po moment prvΘho odhlßsenia). Trochu sa s t²m pozabßvajte, aby sa font (a rozloženie klßves) menilo len pri prvom prihlßsenφ a poslednom odhlßsenφ, tiež setfont pod iXami nemß veľmi zmysel a tak... V Tips-HOWTO je uveden² sp⌠sob, ako zistiť, na koľk²ch virtußlnych konzolßch je ešte užφvateľ prihlßsen².

Inßč, aby bolo jasnΘ, toto vßm bude fungovať len na lokßlnom stroji - zamyslite sa, prečo asi setfont (aj loadkeys) nefunguje cez vzdialen² terminßl a či by ste z toho niečo mali, keby to tak nebolo.

Ak to s tak²mto riešenφm myslφte vßžne, tak sk⌠r uvažujte nad modifikßciou skriptu /etc/profile.d/lang.sh, kde by sa kontroloval aj obsah užφvateľskΘho s·boru ~/.i18n a podľa toho by sa zaviedol skript, popis rozloženia klßves, prφpadne nejakΘ premennΘ...

3.2. Slovenskß klßvesnica na textovej konzole

Keď je slovensk² font na konzole rozbehan² a naše nßrodnΘ znaky sa zobrazuj· sprßvne, mßme so slovenčinou problΘm čφslo dva - ako tam tie znaky dostať? Keby ste si chceli tento s·bor len prečφtať bez potreby nßslednej navštevy psychiatra, stačilo by zaviesť nejak² font so slovenskou podporou. Ale keďže ste uvedomel² linuxßká/áuvedomelß linuxßčka, hneď chcete do Slovak-HOWTO prispieť a pomocou klßvesnice pφsať slovensk² text. Na to potrebujete s tou klßvesnicou niečo urobiť.

3.2.1. Popis rozloženia klßves (keymap)

Adresßre /usr/lib/kbd/keymaps/i386/qwertz/ a qwerty/ obsahuj· po nainštalovanφ balφka kbd/console-tools aj popisy slovenskΘho rozloženia klßves. Pre nßs s· zaujφmavΘ s·bory

sk-prog-qwerty.map.gz
sk-qwerty.map.gz
sk-prog-qwertz.map.gz
sk-qwertz.map.gz

Tieto s·bory obsahuj· definφcie rozloženia klßves pre slovensk² jazyk, pričom rozdiely medzi nimi s· v umiestnenφ klßves Y a Z a počte slovensk²ch znakov, ktorΘ pomocou nich možno napφsať priamo (bez mŕtvych klßves). Najviac sa na slovensk² pφsacφ stroj podobß sk-qwertz, najmenšie zmeny oproti americkej klßvesnici s· zase v sk-prog-qwerty.

S·bory v adresßri /usr/lib/kbd/keymaps/i386/include/ obsahuj· popis zßkladn²ch rozloženφ klßves (azerty , qwerty, qwertz ), prφdavn²ch klßves (keypad, windowkeys), prφpadne problΘmov²ch klßves ( delete, backspace, ctrl ). S·bory linux-*.inc.gz s· špecifickΘ pre linux (teda nie pre jazyk). S· to napr. kľ·če (F1-F12, kombinovanφm s Ctrl a Shift až po F48), Shift-PgUp a Shift -PgDown, atď.

Keymapy *.inc.gz nepopisuj· kompletnΘ rozloženie klßvesnice, ale len niektor²ch jej častφ. Využφvaj· sa pri pripßjanφ (include) zo s·borov *.map.gz, čo je v²hodnΘ z d⌠vodu jednoduchšej konfigurßcie klßvesnice. Naprφklad zmenou jednΘho riadku v s·bore s rozloženφm sk-qwerty m⌠žme dostať rozloženie qwertz, prφpadne (to asi využijete) jednoducho odstaviť znaky euro a cent, ktorΘ (zatiaľ?) nepotrebujeme a zbytočne nßm zaberaj· znaky E a C.

Na zavedenie s·boru s popisom rozloženia klßves sl·ži nasledovn² prφkaz:

loadkeys nazov

kde nazov m⌠že byť absol·tna alebo relatφvna cesta ku keymap s·boru, alebo meno s·boru, pokiaľ sa nachßdza v adresßri /usr/lib/kbd/keymaps/, či už s prφponou, alebo bez.

ŠtandardnΘ slovenskΘ popisy rozloženia klßves nßjdeme vo vyššie spomφnan²ch *.map.gz s·boroch. Ak sa chcete vrßtiť k štandardnΘmu rozloženiu, prφkaz
sh$ loadkeys -d
	
zavedie p⌠vodnΘ, ktorΘ je uloženΘ v s·bore defkeymap.map.gz niekde medzi ostatn²mi keymap s·bormi. Predt²m ale nikdy nezabudnite zmeniť režim slovenskej klßvesnice na US znaky, tzn. 1 dßva 1 a nie + atď. Ak by ste predsa zabudli, je možnΘ, že klßvesy, kde sa nachßdzali slovenskΘ znaky, nebud· fungovať sprßvne (v skutočnosti bud· fungovať sprßvne, ale vßm sa to nebude pßčiť). Vtedy znovu zaveďte predchadzßj·cu keymapu (na nefunkčnΘ klßvesy použite AltGr - prav² Alt) a klßvesou Pause/Break všetko napravφte. Potom m⌠žete znova zaviesť defkeymap.

Pokiaľ sa vßm nepßči ani jeden zo štandardn²ch keymap s·borov pre slovenčinu, čo je pravdepodobnΘ vďaka riadku
include "euro"
	
v include s·boroch qwerty-layout.inc.gz aj qwertz-layout.inc.gz, m⌠žete kľudne pozmeniť existuj·ci s·bor s popisom rozloženia klßves, prφpadne vytvoriť nov². Nebojte sa, je to zložitΘ! Nebudem to tu rozpisovať všetko, prezrite si zopßr kmap s·borov, prečφtajte manußlov· strßnku keymaps(5) a mali by ste to ľahko pochopiť.

My si povieme len o zßkladn²ch veciach, ktorΘ nßm pom⌠žu pozmeniť existuj·ce kmap s·bory s popismi slovensk²ch klßvesnφc, aby ste si poradili s (mne znßmymi) komplikßciami, alebo upravili rozloženie klßves podľa svojho gusta.

3.2.2. Include a nesprßvna funkcia klßves E a C

ProblΘm s E a C je sp⌠soben² zavedenφm jednotnej meny v eur≤pskej ·nii. Na vine nie je ani tak EU, ale niekto, kto symboly pre euro a cent umiestnil na AltGr-E a AltGr-C, čo s· naše obyčajnΘ E a C. Totiž, nßrodnΘ klßvesnice s· vΣčšinou riešenΘ tak, že po zavedenφ s·boru naďalej funguje americkΘ rozloženie a na prepφnanie do nßrodnΘho režimu sa použφva klßvesa Pause, alebo m⌠žme zadßvať nßrodnΘ klßvesy pri s·časnom držanφ klßvesy AltGr (prav² Alt). S·bor euro.inc, ktor² definuje tieto dva problΘmovΘ symboly, je pripojen² zo s·boru qwerty-layout.inc, ktor² zase pripßjaj· samotnΘ slovenskΘ keymapy (sk-qwerty, sk-prog-qwertz, …).

Riešenie je veľmi jednoduchΘ - zeditujete qwerty-layout.inc (alebo qwertz-layout.inc) a odkomentujete znakom # riadok
include "euro"
	

3.2.3. Keycode a definovanie klßves

Predchßdzaj·ci problΘm s eurom možno vyriešiť aj definovanφm znakov E a C v samotnom s·bore sk-qwerty.kmap.gz (alebo inom, ktor² použφvate) pomocou slova keycode:
keycode 18 = e
keycode 46 = c
	

V keymap s·boroch je pre každ· klßvesu (alebo aspoň pre každ·, ktor· chceme predefinovať) jeden riadok približne tohto razenia:
keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two...
	

Čφslo za keycode označuje určit· klßvesu a reťazce za = hovoria o tom, ak² znak mß ovlßdač klßvesnice generovať pri stlačenφ tejto klßvesy, a to buď samotnej, alebo v kombinßcii so špecißlnymi klßvesmi Shift, AltGr, Control, Alt, ShiftL, ShiftR, Ctrl a CtrlR. To nßm dßva 256 možn²ch znakov na každ· klßvesu.

VΣčšinou sa pozmeňuje len prv²ch 16 kombinßciφ modifikßtorov. To je v²znam riadku
keymaps 0-15
	
na začiatku kmap s·borov.

V nasleduj·com zozname je t²chto 16 kombinßciφ (po riadkoch):

žiadnyShiftAltGrShift-AltGr
ControlShift-ControlAltGr-ControlShift-AltGr-Control
AltShift-AltAltGr-AltShift-AltGr-Alt
Control-AltShift-Control-AltAltGr-Control-AltShift-AltGr-Control-Alt

Z hľadiska slovenskej klßvesnice s· d⌠ležitΘ len prvΘ štyri - prvΘ dva s· zvyčajne nezmenenΘ americkΘ znaky, napr. two at, čo je 2 @, a druhΘ dva s· znaky slovenskej abecedy, ktorΘ bude ovlßdač klßvesnice posielať aplikßcißm ak pri stlačenφ tejto klßvesy budeme s·časne držať klßvesu AltGr (prav² Alt), napr. lcaron two, čo je naše ľ 2.

Aby ste mohli vkladať slovenskΘ znaky, nemusφte cel² čas pridržiavať AltGr nosom, ale m⌠žete použiť Pause/Break, ktor² v kontexte s nßrodn²mi klßvesnicami funguje ako AltGr Lock. Chßpte to tak, že keď sa prepnete do slovenskΘho režimu stlačenφm Pause/Break, prvΘ a druhΘ dva reťazce v každom riadku keycode sa vymenia, napr.
two at lcaron two -> lcaron two two at
	

Vtedy m⌠žete použiť AltGr na zadßvanie znakov americkej klßvesnice, alebo sa opΣtovn²m stlačenφm Pause/Break prepn·ť spΣt do US režimu.

Riadok pre klßvesu s k≤dom 41 (znaky ` a ~), mß v s·bore sk-qwerty.map.gz nasledovn² tvar:
keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...
	

Mne osobne sa nepßči, že s· tu umiestnenΘ mŕtve klßvesy dead_diaeresis (dve bodky nad znakom) a dead_circumflex (mΣkčeň), pretože ich nepotrebujem --- Σ aj na slovenskej klßvesnici predsa je. A keby aj nebolo, na ich pφsanie m⌠žem kľudne použiť mŕtvy klßves mΣkčeň. O tom si bližšie povieme v časti o compose sekvencißch. Teraz chcem mať na tomto mieste znaky ; (semicolon) a (degree) tak, ako je to na popiske mojej klßvesnice. Zmenφm teda riadok takto:
keycode 41 = grave asciitilde semicolon degree ...
	

Inßč, ten stupeň asi nie je stupeň, ale mŕtvy znak kr·žku nad pφsmenom, napr. v češtine nad u, ale tak² klßves je nßm fakt nanič. Radšej budeme pφsať stupne.

Nßzvy znakov, ktorΘ sa použφvaj· pri definovanφ jednotliv²ch klßves si m⌠žete pre znaky ASCII zistiť v s·bore us.map.gz. ČφselnΘ k≤dy všetk²ch klßves vßm vypľuje program

showkey

Pravidlß pre nßzvy znakov špecifick²ch pre slovenčinu v kmap s·boroch:

  1. PrvΘ pφsmeno v nßzve určuje ASCII znak, pre ktor² chceme použiť diakritiku.

  2. K nemu pridßme identifikßtor diakritickΘho znamienka:

    caron --- mΣkčeň
    acute --- dĺžeň
    diaeresis --- dve bodky nad
    circumflex --- vokßň

    Naprφklad:

    scaron = š
    uacute = ·
    Ocircumflex =

Nßzvy ďalšφch znakov špecifick²ch pre slovenčinu:

0xa7 --- º (paragraf)
degree --- stupeň

Pre sprßvnu interpretßciu identifikßtorov znakov s diakritikou je nutnΘ na začiatku kmap s·boru určiť k≤dov· strßnku, pre ktor· bude určen² tento popis rozloženia klßves. Ide o to, že ten ist² znak m⌠že mať v r⌠znych k≤dov²ch strßnkach in² ASCII k≤d. Implicitnß hodnota je iso-8859-1, teda pre slovenskΘ keymapy je nutnΘ vložiť riadok:
charset "iso-8859-2"
	

Ešte jeden prφklad: ak chcete použφvať slovenskΘ rozloženie qwertz a americkΘ rozloženie qwerty, potrebujete vymeniť znaky Y a Z:
keycode 21 = y Y z Z
keycode 44 = z Z y Y
	

Na prv² pohľad to m⌠že fungovať dobre, ale problΘm sa prejavφ pri zapnutom Caps Lock - znaky Y a Z sa stßle pφšu mal²mi pφsmenami. Pri pφsanφ popisov rozloženφ znakov možno tak²to problΘm ošetriť pridanφm pφsmena + pred každΘ pφsmeno v keycode riadku danej klßvesy. Pφsmeno + určuje nasledovnΘmu pφsmenu atrib·t letter, teda sa bude pri stlačenom Caps Lock pφsať veľkΘ pφsmeno. Všetky pφsmenß a-z, A-Z maj· tento atrib·t priraden² automaticky, ale to len v prφpade, že maj· keycode riadok tvaru:
keycode 21 = y
	

V našom prφpade teda musφme priradiť tento atrib·t všetk²m znakom explicitne. Takže, konečnß ·prava keymapy bude:
keycode 21 = +y +Y +z +Z
keycode 44 = +z +Z +y +Y
	

Pre v²menu pφsmen toto riešenie funguje spoľahlivo, bohužiaľ, ešte stßle neexistuje sp⌠sob, ktor²m by sa dalo dosiahnuť naprφklad pφsanie veľk²ch pφsmen s diakritikou pri zapnutom Caps Lock jednoduch²m stlßčanφm ich klßves, ako je to v slovenskom popise rozloženia klßves pre X Window System.

3.2.4. Mŕtve klßvesy a sekvencie compose

S mŕtvymi klßvesami s·visia v kmap s·boroch riadky tvaru
compose 'c1' 'c2' to 'c3'
	

Predstavme si mŕtve znaky ako ·plne obyčajnΘ znaky s t²m rozdielom, že ovlßdač klßvesnice ich neposiela aplikßcißm, ale zostan· niekde „visieť“, k²m z klßvesnice neprφde ďalšφ znak. Ovlßdač klßvesnice nepošle ani tento, ale pok·si sa spojiť ho s predchßdzaj·cim mŕtvym znakom a až v²sledok spojenia pustφ ďalej. No, a ako mß to spojenie uskutočniť, to mu presne hovoria riadky compose v keymap s·boroch.

V nasleduj·cej tabuľke je zoznam mŕtvych znakov použφvan²ch v slovenčine, spolu s v²znamom a znakom, ktor²m sa označuj· v compose sekvencißch.

Tabuľka 2. Mŕtve klßvesy

NßzovV²znamCompose
dead_acutedĺžeň\'
dead_circumflexmΣkčeň^
dead_diaeresisdve bodky nad"

Postup pri pφsani compose sekvenciφ

  1. Každß compose sekvencia sa začφna kľ·čov²m slovom compose.

  2. Nasleduje compose znak mŕtvej klßvesy (podľa tabuľky Mŕtve klßvesy), naprφklad \'.

    Druh² je znak, s ktor²m chceme mŕtvu klßvesu kombinovať, naprφklad A.

    Za kľ·čov²m slovom to nasleduje v²sledok spojenia mŕtvej klßvesy a znaku bez diakritiky, teda .

Je praktickΘ mať pri vytvßranφ compose sekvenciφ zaveden² slovensk² font, aby ste v²sledok mohli hneď kontrolovať. Veľkou pomocou je tiež možnosť prφkazu loadkeys čφtať zo štandardnΘho vstupu. Naprφklad:
sh$ loadkeys
include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz"
keycode 41 = grave asciitilde semicolon dead_diaeresis
compose '"' 'a' to 'Σ'
# ukončenie zadßvania:  EOF  -  Ctrl-D
sh$
	

Popis aktußlneho rozloženia klßves m⌠žete uložiť do s·boru prφkazom
sh$ dumpkeys > subor
	

Ak nemßte zaveden² slovensk² popis rozloženia klßves, musφte zadßvať tieto znaky ako Alt sekvencie, poprφpade vkladať ich hex k≤dy v tvare 0xed pre φ. V²pis znakov aktußlneho fontu spolu s ich hex k≤dmi vßm urobφ program

kbd:

showfont

console-tools:

showcfont

Ešte raz naša compose sekvencia a nejakΘ navyše:
compose '\'' 'A' to '┴'   # dlhΘ A cez dĺžeň
compose '^'  'O' to '╘'   # O s vokßňom cez mΣkčeň
compose '^'  'a' to 'Σ'   # širokΘ a cez mΣkčeň,
compose '^'  'A' to 0x84  # ...preto nepotrebujeme dead_diaeresis
	

Mimochodom, v s·bore /usr/lib/kbd/keymaps/compose/compose.latin2 mßte zoznam compose sekvenciφ pre normu ISO-8859-2.

3.2.5. AutomatickΘ zavßdzanie keymap s·boru

Na nastavenie rozloženia klßvesnice, ktorΘ chceme zaviesť pri štarte systΘmu, nßm sl·ži s·bor /etc/sysconfig/keyboard. Pre Slovßka ako repa by mal vyzerať minimßlne takto:
KEYTABLE=sk-qwerty     # zavedie rozloženie klßves sk-qwerty
KBCHARSET=iso-8859-2   # ...a spomφnan² s·bor compose.latin2
	

Nastavenie klßvesnice pri štarte mß na starosti skript keytable, ktor² je volan² priamo z rc.sysinit, takže netreba vytvßrať linky v adresßroch pre runlevel 3/multiuser, prφpadne 5/X.

V dokumentßcii k initscripts sa pφše: „Ak uložφte popis rozloženia klßves (použitφm dumpkeys) do s·boru /etc/sysconfig/console/default.kmap, zavedie sa pri štarte systΘmu ešte pred pripßjanφm/kontrolou s·borov²ch systΘmov. To m⌠že byť užitočnΘ, ak potrebujete zadať heslo roota v prφpade problΘmov. Musφ to byť ‚dumpnut²‘ popis rozloženia klßves a nie skopφrovan² s·bor z /usr/lib/kbd/keytables/, pretože tie často ešte vkladaj· (include) inΘ popisy z tejto adresßrovej štrukt·ry.“

Po pripojenφ s·borov²ch systΘmov, v prφpade, že existuje spustiteľn² s·bor /etc/rc.d/init.d/keytable a adresßr /usr/lib/kbd/keymaps/, vykonß sa prφkaz
sh# /etc/rc.d/init.d/keytable start
	

Tento už zavedie popis rozloženia klßves tak, ako to mßte určenΘ premenn²mi v s·bore /etc/sysconfig/keyboard, preto nemusφte vytvßrať odkazy v jednotliv²ch rc[1-5].d/ adresßroch.

To, čo sme si hovorili o zmene fontu pri prihlßsenφ nejakΘho užφvateľa na virtußlnej konzole, sa dß aplikovať aj na rozloženie klßves. ┌plne najjednoduchšie riešenie (ktorΘ sa pri prvom odhlßsenφ pošle do krφkov) je asi takΘto:

~/.bash_profile:

if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then
	dumpkeys > ~/.keymap
	loadkeys gr.map
fi
		

~/.bash_logout:

if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && [ -f ~/.keymap ]; then
	loadkeys ~/.keymap
	rm -f ~/.keymap
fi
		

3.3. Zhrnutie nastavenφ konzoly

Pokiaľ som sa niekde nesekol, tak minimßlne v distrib·cißch RedHat a Mandrake by po t²chto zmenßch mala do pohody zašlapať slovenskß podpora (fonty + klßvesnica).

/etc/sysconfig/i18n:

kbd:

SYSFONT=lat2a-16
		    

console-tools:

SYSFONT=lat2u-16
SYSFONTACM=iso02
		    

/etc/sysconfig/keyboard:

KEYTABLE=sk-qwertz
KBCHARSET=iso-8859-2
	      

Tiež, ak zadßvate rootovskΘ heslo s použitφm inΘho rozloženia klßves ako je štandardnΘ (us), vložte si jeho popis do s·boru /etc/sysconfig/console/default.kmap. Pozor, nesmiete len tak skopφrovať s·bor, alebo vytvoriť link! Ak chcete použiť naprφklad rozloženie sk-qwertz, urobte to takto:
sh$ loadkeys sk-qwertz
sh# dumpkeys >/etc/sysconfig/console/default.kmap
      

Ak chcete nastaviť slovensk² font a klßvesnicu len jednorazovo, tieto prφkazy by to mali dokßzať:

kbd:

sh$ setfont lat2a-16
sh$ loadkeys sk-qwertz
	      

console-tools:

sh$ consolechars -f lat2u-16 -m iso02
sh$ loadkeys sk-qwertz
	      

...a naspΣť na štandardnΘ nastavenia:

kbd:

sh$ setfont
sh$ loadkeys -d
	      

console-tools:

sh$ consolechars -d
sh$ loadkeys -d