Áno, môžete čítať tento dokument, a to aj na komerčné učely!
Toto je „free“ dokument --- môžete ho šíriť a/alebo modifikovať v súlade s podmienkami licencie GNU Free Documentation Licence, ktorej znenie nájdete na adrese http://www.gnu.org/licenses/fdl.html.
Autorom pôvodného Slovak-HOWTO je Ján Ondrej (SAL). Tento dokument z neho obsahuje: názov a návody pre Joe, MC a Sambu. Všetko bolo ukradnuté so súhlasom autora.
Priania, sťažnosti a ponuky na sobáš: judas@linux.sk
Na túto adresu sa tiež obracajte, ak máte niečo, čo by nemalo chýbať v Slovak-HOWTO.
Nadácia Pomôž a skonaj prispela na dopísanie časti o klávesnici v iXoch sama sebe čiastkou 500 000,- Sk, v televízii Pomôž a skonaj i v rovnomennom časopise boli zverejnené inzeráty, politická strana PAS nekompromisne trvá na kompromise a všetci pijú minerálku Pomôž a skonaj. Tigre, nosorožce a lúčne koníky boli pokrstené, a predsa sa s kapitolou o klávesnici v iXoch nič nedeje. Mimochodom, sme najčítanejšie Slovak-HOWTO na svete!
Pri prispievaní sa skúste riadiť nasledovnými pravidlami:
Pre tých, ktorí majú vážny záujem podieľať sa na písaní Slovak-HOWTO, je možný CVS prístup priamo k zdrojovým kódom dokumentu na serveri cvs.linuxdoc.org v adresári /cvsroot/LDP/howto/docbook/Slovak-HOWTO/. Bližšie informácie o získaní CVS konta a webovskom rozhraní k CVS serveru nájdete v LDP Autor Guide.
Opravy robte vždy vo formáte SGML (DTD DocBook, verzia 4.0), ktorý je primárnym formátom pri tvorbe tohto dokumentu. Je tiež možné posielať čistý text. Príspevky píšte, pokiaľ možno, s diakritikou v norme ISO-8859-2.
Ak je to niečo väčšie, dajte mi najskôr vedieť, čo chystáte, pretože je možné, že už na tom niekto maká a teda buď na to zabudnete, alebo to skúsite dorobiť s danou osobou. (Vzhľadom na to, že zatiaľ sa do tohto dokumentu dostalo asi 20 riadkov cudzieho textu, zdá sa mi predchádzajúca veta maximálne smiešna. Ha-ha, zasmial som sa...)
Vaše meno a adresa budú automaticky zverejnené spolu s vašim príspevkom. Ak si to neželáte, musíte o to výslovne požiadať. Takisto, autor príspevku už jeho zaslaním implicitne súhlasí s aplikáciou licencie tohto dokumentu na časť, ktorej je autorom.
V Czech-HOWTO sa hovorí: „Když už někdo podobný dokument čte, dělá to z nutnosti a ne pro své pobavení.“ Musíme však zobrať do úvahy, že v Čechách je vyššia životná úroveň a oni až toľko srandy nepotrebujú...
Mená autorov návodov na lokalizáciu konkrétnych aplikácií sa nachádzajú priamo v kapitole Poslovenčovanie konkrétnych aplikácií, prípadne Fintičky so slovenčinou.
Ján 'judas' Tomka -- Zodpovedný vedúci.
Ľubomír 'salo' Sedláčik -- ksh/csh/tcsh, grammar bugfixes.
Nastavenie premennej prostredia sa robí pomocou príkazu shellu
bash$ export LC_PREMENNA=sk tcsh$ setenv LC_PREMENNA sk |
LC_PREMENNA je jedna z nasledujúcich:
bash$ export LC_COLLATE=sk tcsh$ setenv LC_COLLATE sk |
![]() | Vždy si buďte stopercentne istí, že máte túto premennú nastavenú (buď cez LC_ALL, LANG alebo priamo), lebo inak nemá zmysel čítať ďalej! Ono „klasifikácia a prevod znakov“ neznie nejako lákavo, ale vedzte, že je to sakramentsky dôležité pre život slovenských písmeniek vo vašom Linuxe! |
S prekladom hlásení programov, hlavne s umiestnením súborov s preloženými reťazcami, súvisí premenná NLSPATH. Mala by obsahovať dvojbodkami oddelený zoznam adresárov, v ktorých sa budú hľadať .mo súbory pre miestne nastavenia dané premennou LC_MESSAGES. Premennú NLSPATH je však potrebné nastavovať len vo výnimočných prípadoch, pretože aplikácie hľadajú preklady svojich hlásení v štandardných adresároch pre tieto súbory.
Okrem týchto premenných bolo implementovaných niekoľko ďalších, ktoré zatiaľ nie sú zdokumentované (The GNU C Library Reference Manual). Ich význam je zrejmý z názvu, takže uvediem aj svoju dedukciu.
LC_PAPER --- Formát papiera. V našich zemepisných šírkach sa napríklad používa formát A4, v Amerike je to Letter, atď. Pozor, táto premenná neobsahuje priamo názov formátu, ale (tak, ako všetky LC_ premenné), skratku miestneho nastavenia, teda u nás to bude sk. Ak by sme chceli používať formát Letter, museli by sme túto premennú nastaviť na kód miestneho nastavenia niektorej z krajín, ktorá používa takýto formát, napríklad us. V tomto prípade je nutné nainštalovať balík s miestnymi nastaveniami pre túto krajinu (locales-us).
LC_NAME --- Formát mena a priezviska. U nás má každý dve mená, píšu sa v poradí meno, priezvisko. V Rusku majú zase tri mená v poradí meno, otcovo-meno, priezvisko. V Maďarsku majú dve mená tak ako u nás, ale píšu sa v opačnom poradí. O tom je táto premenná. Asi...
LC_ADDRESS --- Spôsob zápisu adresy. Poradie ulice a popisného čísla domu, ZIP kód, PSČ apod.
LC_TELEPHONE --- Formát telefónnych a faxových čísel. Určuje zoskupovanie číslic, ich oddelovanie, počet čísel predvoľby, ...
LC_MEASUREMENT --- Miery. Jednotky hmotnosti, objemu, teploty a dĺžky, používané v tej ktorej krajine. Program napísaný v USA bude pravdepodobne počítať s galónmi vody, ale ak je správne napísaný, s premennou LC_MEASUREMENT nastavenou na „sk“ bude zobrazovať litre v správnom pomere. To isté platí napríklad pre prevod teploty vo Fahrenheitovej stupnici na stupne Celsia.
LC_IDENTIFICATION --- Az apád, tak toto neviem. Rodné číslo? Číslo sociálneho poistenia? Číslo topánok?
![]() | Premenná LANGUAGE ovplyvňuje len premennú LC_MESSAGES! Pre správnu funkciu je nutné nastaviť aj ostatné premenné (minimálne LC_CTYPE). |
bash$ export LINGUAS="sk cz" bash$ ./configure bash$ make install |
bash$ export RPM_INSTALL_LANG=sk tcsh$ setenv RPM_INSTALL_LANG "sk" |
Ak sa vám nebodaj stane taká vec, že nainštalujete celý operačný systém a až potom sa dozviete o tejto premennej (tak, ako sa to stalo aj mne), skúste skript uvedený v časti RPM4.
Miestne nastavenia sa určujú zo spomenutých premenných, pričom tieto sa vyhodnocujú v tomto poradí:
LANGUAGE --- ovplyvňuje len LC_MESSAGES |
LC_ALL |
LC_* |
LANG |
jazyk[_územie[.kódovanie]][@modifikátor] |
Tabuľka 1. Príklady kódov miestnych nastavení
sk_SK.ISO-8859-2 | sk_SK | sk | |
cs_CZ.ISO-8859-2 | cs_CZ@-ch | cs@-ch | cs |
en_GB.iso8859 | en_GB | en@euro | en |
ja_JP.ujis | ja_JP.EUC | ja_JP | ja |
C --- nastavenia podľa štandardu ISO C. |
POSIX --- nastavenia podľa štandardu POSIX. V súčasnosti je to alias pre nastavenia C. |
V prípade problémov s miestnymi nastaveniami sa držte predchádzajúcich troch krokov.
sh$ localedef -i sk_SK -f ISO-8859-2 sk_SK |
sk sk_SK.ISO-8859-2 slovak sk_SK.ISO-8859-2 |
![]() | Ale na aliasy typu slovak si dávajte bacha! Niektoré aplikácie, ktoré v súvislosti s miestnymi nastaveniami nevyužívajú služby libc, totiž na aliasy kašľú a zaujímajú ich len prvé dva znaky nastavených premenných. A tak sa zo slovak stane sl, čo je Slovinsko. Pozitívne je, že pre slovenčinu môžete nastaviť premennú napríklad na hodnotu skaderukaskadenoha. |
Vypnúť nejaké nastavenie je možné príkazom
sh$ unset LC_MESSAGES LANG |
Tým sa zrušia nastavenia daných premenných (a použije sa štandardné locale C alebo POSIX).
![]() | export/setenv |
---|---|
Neodpustím si malú poznámku k príkazu export. Je to vstavaná funkcia všetkých shellov kompatibilných s klasickým sh (teda aj bash). Pre shelly typu tcsh je ekvivalentom príkaz setenv. Je dôležité uvedomiť si, čo presne tento príkaz robí s premennými. V dokumentácii k bashu sa hovorí, že export označí premennú, aby bola odovzdaná detským (child) procesom v rámci prostredia (environment). To znamená asi toľko, že keď spustíte napr. iXy z materského procesu bash, ktorý pri štarte exportoval premennú LANG=sk, všetky aplikácie v prostredí X Window System budú dediť toto nastavenie a teda (ak to sami podporujú) budú fungovať po slovensky. Ak budete chcieť spustiť aplikáciu bez slovenských nastavení, musíte v xterme zadať príkaz unset LANG (unsetenv LANG pre tcsh), čím pre všetky detské procesy xtermu (presnejšie shellu, ktorý je v ňom spustený), zrušíte nastavenie premennej LANG. Potom aplikácie spustené priamo z tohto xtermu budú fungovať bez podpory slovenčiny. Trochu sa s tým pohrajte. |
bash$ export TZ="Europe/Bratislava" tcsh$ setenv TZ "Europe/Bratislava" |
LC_CTYPE=sk |
LANGUAGE=sk:cs LANG=sk |
LANGUAGE=hu:sk:cs LC_COLLATE=sk LC_TIME=cs LANG=hu LINGUAS="hu cs sk" |
Naspäť k štandardnému fontu sa vždy dostanete jedným z príkazov
sh$ setfont |
sh$ consolechars -d |
Slovenské (ISO-8859-2) fonty, ktoré sú súčasťou balíkov kbd a console-tools:
Na zavedenie fontu použite príkaz
sh$ setfont meno-zo-zoznamu |
sh$ consolechars -f meno-zo-zoznamu |
sh$ setfont iso02.16 -m latin2u.trans |
sh$ consoletrans -f lat2u-16 -m iso02 |
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 |
sh$ /sbin/setsysfont |
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 |
sk-prog-qwerty.map.gz |
sk-qwerty.map.gz |
sk-prog-qwertz.map.gz |
sk-qwertz.map.gz |
Na zavedenie súboru s popisom rozloženia kláves slúži nasledovný príkaz:
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.
keycode 18 = e keycode 46 = c |
keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two... |
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 |
two at lcaron two -> lcaron two two at |
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 ... |
keycode 41 = grave asciitilde semicolon degree ... |
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áň |
scaron = š |
uacute = ú |
Ocircumflex = Ô |
Názvy ďalších znakov špecifických pre slovenčinu:
0xa7 --- § (paragraf) |
degree --- ° stupeň |
charset "iso-8859-2" |
keycode 21 = y Y z Z keycode 44 = z Z y Y |
keycode 21 = y |
keycode 21 = +y +Y +z +Z keycode 44 = +z +Z +y +Y |
S mŕtvymi klávesami súvisia v kmap súboroch riadky tvaru
compose 'c1' 'c2' to 'c3' |
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í
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.
KEYTABLE=sk-qwerty # zavedie rozloženie kláves sk-qwerty KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2 |
sh# /etc/rc.d/init.d/keytable start |
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 |
SYSFONT=lat2a-16 |
SYSFONT=lat2u-16 SYSFONTACM=iso02 |
KEYTABLE=sk-qwertz KBCHARSET=iso-8859-2 |
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 |
LC_CTYPE=sk |
Čo to znamená a ako sa to nastavuje, tak o tom pojednáva kapitola Miestne nastavenia.
/usr/share/fonts/ISO8859-2/misc |
/usr/share/fonts/ISO8859-2/75dpi |
/usr/share/fonts/ISO8859-2/100dpi |
/usr/share/fonts/ISO8859-2/Type1 |
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 |
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, … |
Section "Files" FontPath "unix/:7100" EndSection |
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 |
sh# killall -USR1 xfs |
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 |
Zoznam fontov v súbore, ktorý načítava X server aj xfs, vytvoríte nasledovne:
sh# cd /usr/share/fonts/ttf/win sh# mkfontdir |
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 |
-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
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:
FontPath "unix/:7100" |
Po zmenách v konfiguračných súboroch X Window Systemu alebo X Font Serveru je nutný reštart alebo znovunačítanie nastavení:
sh$ xset fp rehash |
sh# killall -USR1 xfs |
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
sh$ rpm -q XFree86 |
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
sh$ su -c'rm -fr /' |
Section "Keyboard" ... XkbLayout "czsk" XkbVariant "us_sk_qwertz" XkbOptions "grp:ctrl_shift_toggle" EndSection |
Section "InputDevice" ... Option "XkbLayout" "czsk" Option "XkbVariant" "us_sk_qwertz" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection |
XkbLayout "czsk" |
Option "XkbLayout" "czsk" |
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
XkbVariant "..." |
Option "XkbVariant" "..." |
Options "grp:..." |
Option "XkbOptions" "grp:..." |
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 |
V XKB popisoch rozloženia kláves majú riadky takýto formát:
key <TLDE> { [ quoteleft, asciitilde ], [ semicolon, degree ] }; |
name[Group1] = "US/ASCII"; name[Group2] = "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.
Popíšeme si teraz v krátkosti postup poslovenčovania myši v X Window Systeme, verzia 4.0.1 a vyššie:
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 }; }; |
sh# cd /usr/src/linux sh# loadkeys --mktable sk-qwerty > drivers/char/defkeymap.c |
CONFIG_NLS_CODEPAGE_852 --- Codepage 852 |
CONFIG_NLS_ISO8859_2 --- ISO 8859-2 (Latin 2) |
Pri pripájaní FAT/VFAT môžete potom uviesť voľbu codepage=852.
Ján 'judas' Tomka, <judas@linux.sk>
Bash máva nepravidelne problém pri zmene premennej LC_CTYPE a zvykne sa stať, že znaky s diakritikou sa nevypisujú napriek správnemu nastaveniu tejto premennej. Zatiaľ sa mi nepodarilo zistiť, kde je chyba, lebo napríklad Vim spustený z takéhoto Bashu funguje správne... Zatiaľ to riešim príkazom
bash$ exec bash |
Aktuálny shell sa nahradí novým, ktorý už premennú LC_CTYPE pochopí správne a je už možné zadávať aj znaky s diakritikou.
Ján Ondrej (SAL), <ondrejj@salstar.shadow.sk>
Ak chcete používať národné prostredie, potrebujete mať nainštalovanú slovenskú klávesnicu, slovenský font a navyše musíte povoliť zobrazovanie znakov s ASCII kódom 128-255 tak, ako sú (as is). To môžete spraviť zmazaním medzery pred voľbou -asis v konfiguračnom súbore joerc. Najčastejšie ho nájdete v adresári /usr/lib/joe/, v Debiane je v adresári /etc/. Ďalšou možnosťou je pridanie parametra -asis pri spúšťaní programu.
Ján 'judas' Tomka, <judas@linux.sk>
V konfigurácii Lynxu sa lokalizácie týkajú hlavne tieto nastavenia:
Display character set (CHARACTER_SET) --- kódovanie znakov na výstupe. Toto hovorí o tom, do akej znakovej sady sa budú prevádzať znaky pred zobrazením na vašej obrazovke. Ak máte štandardne nastavený slovenský font, môžete mať toto vždy nastavené na ISO-8859-2.
Assumed document character set (ASSUME_CHARSET) --- aká znaková sada sa má použiť, ak html dokument neobsahuje informáciu o svojom kódovaní a nastavenie Raw 8-bit je vypnuté. HTTP štandardom je ISO-8859-1 takže tak. Väčšinou majú dokumenty s iným kódovaním ako ISO-8859-1 informáciu o svojej znakovej sade, vtedy sa toto nastavenie neberie do úvahy. Ak chcete, aby sa dokumenty, ktoré nemajú explicitne danú sadu znakov, považovali za súbory s kódovaním Latin 2, nastavte si túto premennú. Možno ju nastaviť len v súbore /etc/lynx.cfg (teda nie pre každého užívateľa zvlášť).
Raw 8-bit --- s týmto sa veľmi trápiť nemusíte, len v prípade, že sa slovenské znaky nezobrazujú správne, sa vždy uistite, že to máte zapnuté (klávesovou skratkou @).
Konfiguračný súbor /etc/lynx.cfg upravte, aby obsahoval minimálne prvý riadok z
CHARACTER_SET:iso-8859-2 ASSUME_CHARSET:iso-8859-2 |
...alebo, pre užívateľský konfiguračný súbor ~/.lynxrc:
character_set=Eastern European (ISO-8859-2) |
Ján 'judas' Tomka, <judas@linux.sk>
export NLSPATH=/usr/share/locale/%l/%N |
V prípade, že nemôžete meniť /etc/profile, vložte si do svojho ~/.profile riadok
unset NLSPATH |
Ján Ondrej (SAL), <ondrejj@salstar.shadow.sk>
Jeho lokalizácia je jednoduchá, pretože ju priamo podporuje. Klávesou F9 vyvoláte menu Options->Display bits... a zapnite voľby:
(*) Full 8 bits output [x] Full 8 bits input |
Po tomto kroku bude MC vypisovať diakritické znaky správne a bude ich možné aj zadávať z klávesnice. Ak sa pri vstupe do niektorých adresárov bude zobrazovať hláška „Warning: Couldn't change to ...“, tak potrebujete lokalizovať knižnicu readline (iba pre staršie RedHat systémy).
Rámčeky v MC (judas). Ak používate console-tools, pre správnu funkciu rámčekov v Midnight Commander a podobných textových aplikáciách nastavte font s application charset map. U mňa funguje jedine táto kombinácia:
sh$ consolechars --font lat2u-16 --acm iso02 |
Ján 'judas' Tomka, <judas@linux.sk>
Miestnych nastavení sa týkajú v konfiguračnom súbore ~/.muttrc nasledovné premenné:
ascii_chars -- Ak je nastavená, Mutt použije znaky ASCII pri zobrazovaní vláken stromov pripojených súborov, namiesto znakov ASC. To odporúčam, ak máte nastavený starší font bez podpory app-charset-map a namiesto čiar a šípiek sa vám zobrazujú znaky s diakritikou, alebo tieto znaky blikajú ap.
charset -- Znaková sada, ktorú používa váš terminál na zobrazovanie a vkladanie textových dát. Nastaviť na kód znakovej sady fontu, ktorý máte nastavený na konzole alebo v XTerme, atď.
send_charset --
Ján 'judas' Tomka, <judas@linux.sk>
V súbore s globálnymi nastaveniami /etc/inputrc alebo vo svojom užívateľskom súbore ~/.inputrc je pre správnu interpretáciu osembitových znakov nastaviť tieto premenné:
convert-meta --- Ak je nastavená na `on', Readline konvertuje znaky s nastaveným ôsmym bitom na sekvenciu znakov ASCII odstránením ôsmeho bitu a pridaním znaku Esc na začiatok.
input-meta --- Ak je nastavená na `on', Readline umožní osembitový vstup (neodstráni ôsmy bit z prečítaných znakov) bez ohľadu na to, či to terminál podporuje. Meno meta-flag je synonymom pre túto premennú.
output-meta --- Ak je nastavená na `on', Readline bude zobrazovať znaky s nastaveným ôsmym bitom priamo a nie ako escape sekvencie.
Takže, do jedného zo spomínaných súborov vložte takéto nastavenia:
set convert-meta off set input-meta on set output-meta on |
Ján 'judas' Tomka, <judas@linux.sk>
Tento malý skriptík „doinštaluje“ slovenské preklady všetkých aplikácií, ktoré máte nainštalované. Môžu vám chýbať, ak ste pri inštalácii operačného systému nezvolili slovenský jazyk.
export RPM_INSTALL_LANG=sk cd /mnt/cdrom/Mandrake/RPMS/ for i in *.rpm; do j=$(rpm -q --queryformat "%{NAME}" -p $i) if rpm -q $j; then rpm -Uvh --replacepkgs $i fi done |
Už nikdy nezabudnite nastaviť premennú RPM_INSTALL_LANG!
Ján 'judas' Tomka, <judas@linux.sk>
Náprava toho, že Rxvt vypisuje mŕtvy kláves priamo a nečaká na ďalší znak, s ktorým by ho skombinoval, je otázka jedného argumentu pri konfigurovaní:
sh$ ./configure --enable-xim sh$ make sh$ su -c'make install' |
Týmto sa Rxvt skompiluje s podporou pre XIM (X Input Method) protokol. Ten umožňuje alternatívne metódy vstupu (napr. kinput2) a tiež správne nastavenia pre ľudí, čo používajú mŕtve klávesy.
Ján Ondrej (SAL), <ondrejj@salstar.shadow.sk>
Po nastavení lokalizácie dokáže automaticky prekódovať znaky s diakritikou z kódovania 852 na ISO-8859-2. Nastavuje sa to v konfiguračnom súbore /etc/smb.conf pridaním nasledujúcich riadkov do sekcie [global]:
character set = iso8859-2 client code page = 852 |
http://www.kotelna.sk/keso/unix/vim.html
Ak nemôžete, alebo nechcete používať rozloženie kláves pre slovenčinu, ale potrebujete zadať pár našich znakov vo Vim, dá sa to urobiť pomocou príkazu imap. Jeho formát je
:imap {lhs} {rhs} |
{lhs} je postupnosť znakov, po ktorých zadaní (v krátkom časovom intervale) sa vypíše {rhs}.
Pre slovenčinu by sa dali využiť imap definície znakov typu
:imap =a á :imap +c č |
Ako vidno, je to niečo podobné ako compose sekvencie z kapitoly o klávesnici na konzole. Po zadaní týchto príkazov môžete aj so štandardným rozložením kláves zadávať vo vim znaky s diakritikou. Tu je kompletný zoznam imap definícií pre slovenskú diakritiku. Uložte ho do súboru napríklad sk.vim a vo Vim ho načítate príkazom
:source sk.vim |
imap =a á imap =A Á imap +a ä imap +A Ä imap +c č imap +C Č imap +d ď imap +D Ď imap =e é imap +e ě imap =E É imap +E Ě imap =i í imap =I Í imap =l ĺ imap =L Ĺ imap +l ľ imap +L Ľ imap +n ň imap +N Ň imap =o ó imap =O Ó imap +o ô imap +O Ô imap "o ö imap "O Ö imap =r ŕ imap =R Ŕ imap +r ř imap +R Ř imap +s š imap +S Š imap +t ť imap +T Ť imap =u ú imap =U Ú imap +u ů imap +U Ů imap "u ü imap "U Ü imap =y ý imap =Y Ý imap +z ž imap +Z Ž |
Ján 'judas' Tomka, <judas@linux.sk>
V prípade, že potrebujete z textového súboru odstrániť diakritické znamienka, môžete použiť program sed, pomocou ktorého nahradíte výskyt znaku s diakritikou jeho ekvivalentom bez nej.
Ak chcete odstrániť diakritiku úplne, musíte nahradiť výskyt všetkých znakov s diakritikou. Ak ale chcete len to, aby sa súbor zobrazoval správne pri prezeraní bez zavedeného fontu latin 2, stačí nahradiť len tie znaky, ktoré sa nezobrazujú správne pre štandardný font (spravidla latin 1).
Toto je príkaz, ktorý možno použiť pri vytváraní verzie súboru úplne bez diakritiky:
sed -e "s:á:a:g" -e "s:Á:A:g" -e "s:ä:a:g" -e "s:Ä:A:g" \ -e "s:č:c:g" -e "s:Č:C:g" -e "s:ď:d:g" -e "s:Ď:D:g" \ -e "s:é:e:g" -e "s:É:E:g" -e "s:ě:e:g" -e "s:Ě:E:g" \ -e "s:í:i:g" -e "s:Í:I:g" -e "s:ĺ:l:g" -e "s:Ĺ:L:g" \ -e "s:ľ:l:g" -e "s:Ľ:L:g" -e "s:ň:n:g" -e "s:Ň:N:g" \ -e "s:ó:o:g" -e "s:Ó:O:g" -e "s:ô:o:g" -e "s:Ô:O:g" \ -e "s:ö:o:g" -e "s:Ö:O:g" -e "s:ŕ:r:g" -e "s:Ŕ:R:g" \ -e "s:ř:r:g" -e "s:Ř:R:g" -e "s:š:s:g" -e "s:Š:S:g" \ -e "s:ť:t:g" -e "s:Ť:T:g" -e "s:ú:u:g" -e "s:Ú:U:g" \ -e "s:ů:u:g" -e "s:Ů:U:g" -e "s:ü:u:g" -e "s:Ü:U:g" \ -e "s:ý:y:g" -e "s:Ý:Y:g" -e "s:ž:z:g" -e "s:Ž:Z:g" \ "Slovak-HOWTO.sgml" > "Slovak-HOWTO-nodiac.sgml" |
Ján 'judas' Tomka, <judas@linux.sk>
Existuje aj program recode, ktorý pravdepodobne tiež slúži na zmeny v kódovaní súborov. Určite ho použijete na tento cieľ, ak sa predtým nestane niektorá z nasledujúcich vecí:
Prídete o oči pri čítaní man stránky, info manuálu a všetkého čo je o tomto -- inak určite užitočnom programe -- popísané.
Prídete o nervy pri skúšaní všetkých možných kombinácií parametrov, volieb či argumentov pre tento nesmierne užitočný program.
Prídete o počítač, keďže ho vyhodíte z okna po dvoch týždňoch psychického utrpenia, ktoré zažijete pri pokusoch s týmto extrémne užitočným programom.
Podľa všetkého by mal stačiť nasledovný príkaz:
recode l2 subor.txt |