Slovak-HOWTO | ||
---|---|---|
Predchßdzaj·ci | Ďalšφ |
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
setfont meno-fontu
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
sh$ setfont |
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.
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:
lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}
lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}
Na zavedenie fontu použite prφkaz
sh$ setfont meno-zo-zoznamu |
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:
sh$ setfont iso02.16 -m latin2u.trans |
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!):
SYSFONT=lat2a-16 |
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:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.font ]; then setfont -o ~/.font gr928a-8x16 fi |
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
sh$ loadkeys -d |
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" |
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
include "euro" |
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 |
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:
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.
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
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
showfont
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:
if tty 2>/dev/null |grep '/dev/tty[0-9]*$' &>/dev/null && ! [ -f ~/.keymap ]; then dumpkeys > ~/.keymap loadkeys gr.map fi |
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).
SYSFONT=lat2a-16 |
SYSFONT=lat2u-16 SYSFONTACM=iso02 |
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ť:
sh$ setfont lat2a-16 sh$ loadkeys sk-qwertz |
sh$ consolechars -f lat2u-16 -m iso02 sh$ loadkeys sk-qwertz |
...a naspΣť na štandardnΘ nastavenia:
sh$ setfont sh$ loadkeys -d |
sh$ consolechars -d sh$ loadkeys -d |
Predchßdzaj·ci | Domov | Ďalšφ |
Miestne nastavenia | Nastavenia X Window Systemu |