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.“
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. 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
Č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. 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. 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:
- 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
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é... 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ť. 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
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
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. 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
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
na začiatku kmap súborov. V nasledujúcom zozname je týchto 16 kombinácií (po riadkoch):
žiadny | Shift | AltGr | Shift-AltGr | Control | Shift-Control | AltGr-Control | Shift-AltGr-Control | Alt | Shift-Alt | AltGr-Alt | Shift-AltGr-Alt | Control-Alt | Shift-Control-Alt | AltGr-Control-Alt | Shift-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:
Prvé písmeno v názve určuje ASCII znak, pre ktorý chceme použiť
diakritiku. 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:
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:
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. 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ázov | Význam | Compose |
---|
dead_acute | dĺžeň | \' | dead_circumflex | mäkčeň | ^ | dead_diaeresis | dve bodky nad | " |
Postup pri písani compose sekvencií Každá compose sekvencia sa začína kľúčovým slovom
compose. 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
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. 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
|
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:
- 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
|
|
|