old-www/HOWTO/Slovak-HOWTO/console.html

2789 lines
46 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<HTML
><HEAD
><TITLE
>Nastavenia konzoly</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
"><LINK
REL="HOME"
TITLE="Slovak-HOWTO"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Miestne nastavenia"
HREF="locales.html"><LINK
REL="NEXT"
TITLE="Nastavenia X Window Systemu"
HREF="xwindow.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Slovak-HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="locales.html"
>Predchádzajúci</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="xwindow.html"
>&#270;al&#353;í</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CONSOLE"
>3. Nastavenia konzoly</A
></H1
><P
>Táto kapitola by mala &#269;ítavou, pou&#269;nou a zárove&#328; zábavnou formou pojednáva&#357; o veciach medzi
prstom a okom. Základnou otázkou nech nám je <SPAN
CLASS="QUOTE"
>&#8222;Zmysel &#382;ivota, vesmíru a vôbec.&#8220;</SPAN
>
</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="CONSOLE-FONTS"
>3.1. Sloven&#269;ina na výstupe textovej konzoly</A
></H2
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-FONTS-FONTS"
>3.1.1. Fonty</A
></H3
><P
>Ke&#271; zobudíte o polnoci hocikoho, kto vo svojom &#382;ivote videl po&#269;íta&#269; a opýtate sa ho, ako
rozbeha&#357; slovenské znaky, ur&#269;ite spomenie nie&#269;o ako fonty. Na zobrazovanie znakov na
obrazovku -- &#269;i u&#382; v textovom alebo grafickom re&#382;ime -- slú&#382;ia skuto&#269;ne fonty. Fonty pre
konzolu a programy ur&#269;ené na manipuláciu s nimi sa nachádzajú v balíku
<SPAN
CLASS="APPLICATION"
>kbd</SPAN
>. Po jeho nain&#353;talovaní sú súbory s fontami umiestnené v
adresári <TT
CLASS="FILENAME"
>/usr/lib/kbd/consolefonts/</TT
>.</P
><P
>Pre nás sú dôle&#382;ité najmä súbory, ktoré majú v mene <TT
CLASS="FILENAME"
>iso02</TT
>,
<TT
CLASS="FILENAME"
>lat2</TT
>, <TT
CLASS="FILENAME"
>latin2</TT
> alebo &#269;íslo <TT
CLASS="FILENAME"
>852</TT
>.
To nazna&#269;uje, &#382;e ide o fonty s podporou <EM
>ISO-8859-2</EM
>
(<EM
>latin2</EM
>), prípadne <EM
>DOS codepage 852</EM
>, &#269;o sú
&#353;tandardy aj pre slovenskú diakritiku.</P
><P
>Pozor, pôvodný balík sa volá <SPAN
CLASS="APPLICATION"
>kbd</SPAN
>, ale existuje jeho roz&#353;írená
verzia, ktorá sa objavuje v distribúciách -- <SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>.
Rozdiely medzi nimi sú minimálne, pre <SPAN
CLASS="APPLICATION"
>kbd</SPAN
> budeme pou&#382;íva&#357; príkaz
<B
CLASS="COMMAND"
>setfont</B
>, pre <SPAN
CLASS="APPLICATION"
>console-tools</SPAN
> zase
<B
CLASS="COMMAND"
>consolechars</B
>. Taktie&#382;, názvy dodávaných fontov sa trochu odli&#353;ujú, tak&#382;e
budem uvádza&#357; ekvivalenty pre oba balíky.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-FONTS-THEORY"
>3.1.2. Ako fonty fungujú</A
></H3
><P
>Existuje nieko&#318;ko súborových formátov na ukladanie fontov, princíp je v&#353;ak rovnaký --
súbor obsahuje 256 obrázkov (<I
CLASS="FOREIGNPHRASE"
>glyphs</I
>), z ktorých v&#353;etky majú
rovnaký rozmer (napr. 8x16 bodov -- ve&#318;kos&#357; fontu) a ka&#382;dý zobrazuje jeden znak.</P
><P
>Aby nám tých 256 obrázkov bolo na nie&#269;o dobrých, je treba font zo súboru zavies&#357; do
znakového generátora videokarty. Na to slú&#382;i jeden z príkazov
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <P
><B
CLASS="COMMAND"
>setfont</B
> <TT
CLASS="REPLACEABLE"
><I
>meno-fontu</I
></TT
> </P
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <P
><B
CLASS="COMMAND"
>consolechars</B
> -f <TT
CLASS="REPLACEABLE"
><I
>meno-fontu</I
></TT
> </P
></P
></DD
></DL
></DIV
></P
><P
><TT
CLASS="COMPUTEROUTPUT"
>meno-fontu</TT
>&#382;e by&#357; absolútna alebo relatívna cesta k
súboru s fontom, alebo meno súboru, pokia&#318; sa nachádza v adresári <TT
CLASS="FILENAME"
>/usr/lib/kbd/consolefonts/</TT
>, &#269;i u&#382; s príponou, alebo
bez.</P
><P
>Pre &#318;ah&#353;ie pochopenie tých obrázkov, skúste nahradi&#357;
<TT
CLASS="COMPUTEROUTPUT"
>meno-fontu</TT
> re&#357;azcom <TT
CLASS="COMPUTEROUTPUT"
>t850</TT
> a
sledujte výsledok na v&#353;etkých virtuálnych konzolách.</P
><P
>Naspä&#357; k &#353;tandardnému fontu sa v&#382;dy dostanete jedným z príkazov
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ setfont
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ consolechars -d
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>&#268;o sa presne deje? Program <B
CLASS="COMMAND"
>setfont</B
>/<B
CLASS="COMMAND"
>consolechars</B
>
zavedie v&#353;etkých 256 obrázkov do znakového generátora
<SPAN
CLASS="ACRONYM"
>EGA</SPAN
>/<SPAN
CLASS="ACRONYM"
>VGA</SPAN
> karty. Od tohto momentu sa na v&#353;etkých
konzolách bude znak s <SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> kódom napr. 65 vykreslova&#357; ako &#353;esdesiaty
piaty obrázok z na&#353;eho súboru s fontom. E&#353;te raz pripomínam a dvakrát pod&#269;iarkujem, &#382;e font
je v&#382;dy rovnaký pre v&#353;etky virtuálne konzoly, na ktorých zobrazuje znaky ten istý znakový
generátor <SPAN
CLASS="ACRONYM"
>EGA</SPAN
>/<SPAN
CLASS="ACRONYM"
>VGA</SPAN
> karty.</P
><P
>Dôle&#382;ité je uvedomi&#357; si, &#382;e interne ide naozaj len o obrázky a tvar niektorého znaku vo
fonte nemá ni&#269; spolo&#269;ného s jeho ASCII kódom. Ak by ste si sami vytvorili nejaký font (v
dokumentácii ku <SPAN
CLASS="APPLICATION"
>kbd</SPAN
>/<SPAN
CLASS="APPLICATION"
>console-tools</SPAN
> máte
informácie o v&#353;etkých formátoch), v ktorom by mal ten &#353;esdesiaty piaty obrázok tvar písmena
<TT
CLASS="COMPUTEROUTPUT"
>z</TT
>, po jeho natiahnutí sa vám bude pri zadaní
<B
CLASS="KEYCAP"
>Alt</B
>-<B
CLASS="KEYCAP"
>6</B
>-<B
CLASS="KEYCAP"
>5</B
>, &#269;o je
<SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> kód písmena <TT
CLASS="COMPUTEROUTPUT"
>A</TT
>, zobrazova&#357; znak
<TT
CLASS="COMPUTEROUTPUT"
>z</TT
>. Ale ak tento znak ulo&#382;íte do súboru, v tomto sa bude
nachádza&#357; bajt s hodnotou 65, teda písmeno <TT
CLASS="COMPUTEROUTPUT"
>A</TT
>.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-FONTS-LATIN2"
>3.1.3. Fonty ISO-8859-2</A
></H3
><P
>Toto vyu&#382;íva &#353;tandard <EM
>ISO-8859-2</EM
> (a iné) - spolo&#269;né znaky s
<SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> vykreslí rovnako a znaky &#353;pecifické pre tú ktorú abecedu
<SPAN
CLASS="QUOTE"
>&#8222;namapuje&#8220;</SPAN
> na menej pou&#382;ívané znaky <SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> tabu&#318;ky. Kam
presne ktorá norma umiest&#328;uje znaky s diakritikou, nás zaujíma&#357; nemusí (pokia&#318; nevytvárame
vlastné fonty), hlavné je, &#382;e napr. anglický text je nezmenený (angli&#269;tina má v&#353;etky znaky
spolo&#269;né so sloven&#269;inou) a slovenský text u&#382; viac neobsahuje hlúpe znaky, ktoré so
sloven&#269;inou nemajú ni&#269; spolo&#269;né.</P
><P
>Slovenské (ISO-8859-2) fonty, ktoré sú sú&#269;as&#357;ou balíkov <SPAN
CLASS="APPLICATION"
>kbd</SPAN
>
a <SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
>lat2-{08,10,12,14,16}, lat2a-16, iso02.{08,14,16}</P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
>lat2-{08,10,12,14,16}, lat2u-16, iso02.f{08,14,16}</P
></DD
></DL
></DIV
></P
><P
>Na zavedenie fontu pou&#382;ite príkaz
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ setfont meno-zo-zoznamu
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ consolechars -f meno-zo-zoznamu
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>Odporú&#269;am pou&#382;íva&#357; <TT
CLASS="COMPUTEROUTPUT"
>lat2a-16</TT
>, resp.
<TT
CLASS="COMPUTEROUTPUT"
>lat2u-16</TT
>. Ostatné fonty majú bezchybné zobrazovanie
slovenských znakov, problém v&#353;ak nastáva pri aplikáciách, ktoré vyu&#382;ívajú znaky na kreslenie
rám&#269;ekov (napr. <B
CLASS="COMMAND"
>mc</B
>).</P
><P
>&#268;o sa týka fontov <TT
CLASS="COMPUTEROUTPUT"
>iso02.*</TT
> z balíka
<SPAN
CLASS="APPLICATION"
>kbd</SPAN
>, treba pri nich pou&#382;i&#357; argument príkazu
<B
CLASS="COMMAND"
>setfont</B
> <TT
CLASS="COMPUTEROUTPUT"
>-m latin2u.trans</TT
>. Tak&#382;e celý
príkaz na zavedenie niektorého z týchto fontov je:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ setfont iso02.16 -m latin2u.trans
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ consoletrans -f lat2u-16 -m iso02
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>V súbore <TT
CLASS="FILENAME"
>latin2u.trans</TT
> (<TT
CLASS="FILENAME"
>iso02.acm</TT
>) sa nachádza
tzv. <I
CLASS="FOREIGNPHRASE"
>Aplication-Charset Map</I
> (<SPAN
CLASS="ACRONYM"
>ACM</SPAN
>), akási
prevodná tabu&#318;ka, ktorá obsahuje riadok pre ka&#382;dý znak fontu a jeho podobu v kódovaní
<SPAN
CLASS="ACRONYM"
>UTF-8</SPAN
>.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-FONTS-AUTOLOAD"
>3.1.4. Automatické zavádzanie fontov</A
></H3
><P
> Ak ste si na&#353;li svoj font, ktorý chcete pou&#382;íva&#357; a ma&#357; ho automaticky zavedený v&#382;dy pri
&#353;tarte, nie je ni&#269; &#318;ah&#353;ie. Inicializa&#269;ný skript <TT
CLASS="FILENAME"
>rc.sysinit</TT
> robí asi
toto: skontroluje, &#269;i existuje súbor <TT
CLASS="FILENAME"
>/etc/sysconfig/i18n</TT
> a program
(skript) <TT
CLASS="FILENAME"
>/sbin/setsysfont</TT
>. Ak áno, spustí
<B
CLASS="COMMAND"
>setsysfont</B
>. Ten na&#269;íta <TT
CLASS="FILENAME"
>/etc/sysinfo/i18n</TT
> a pod&#318;a
premenných definovaných v tomto súbore príkazom <B
CLASS="COMMAND"
>consolechars</B
> alebo
<B
CLASS="COMMAND"
>setfont</B
> zavedie font.</P
><P
>Tak&#382;e sta&#269;í nastavi&#357; správne premenné v súbore <TT
CLASS="FILENAME"
>/etc/sysconfig/i18n</TT
>
a skript <TT
CLASS="FILENAME"
>/sbin/setsysfont</TT
> urobí v&#353;etko za nás. Tento skript mo&#382;no
spusti&#357; kedyko&#318;vek chcete zavies&#357; font nastavený ako &#353;tandardný pre systém.</P
><P
>Premenné v súbore <TT
CLASS="FILENAME"
>/etc/sysinit/i18n</TT
> sú (pou&#382;ívajte len mená súborov
bez cesty a bez prípony!):
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>SYSFONT=lat2a-16
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>SYSFONT=lat2u-16
SYSFONTACM=iso02
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>Skriptík <B
CLASS="COMMAND"
>setsysfont</B
> obsahujú oba balíky a kedyko&#318;vek mô&#382;ete zavies&#357;
font nastavený ako systémový v súbore <TT
CLASS="FILENAME"
>/etc/sysinit/i18n</TT
> jednoduchým
zadaním
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ /sbin/setsysfont
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Pod&#318;a toho, &#269;o sme si hovorili o tom, &#382;e pre v&#353;etky virtuálne konzoly mô&#382;e by&#357; nastavený
len jeden spolo&#269;ný font, nemá ve&#318;ký zmysel zavádza&#357; nastavovanie fontu zvlá&#353;&#357; pre ka&#382;dého
u&#382;ívate&#318;a. S tým súvisí aj fakt, &#382;e nastavenie fontu sa vz&#357;ahuje k danému po&#269;íta&#269;u, pri
ktorom práve sedíte a nie k tomu, ku ktorému ste pripojení napr. cez
<SPAN
CLASS="APPLICATION"
>ssh</SPAN
>.</P
><P
>Predsa len si viem predstavi&#357; prípad, ke&#271; niektorý z viacerých pou&#382;ívate&#318;ov jedného
po&#269;íta&#269;a potrebuje odli&#353;ný font. V tom prípade mô&#382;e vlo&#382;i&#357; 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&#357; takto:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="FILENAME"
>~/.bash_profile</TT
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>if tty 2&#62;/dev/null |grep '/dev/tty[0-9]*$' &#38;&#62;/dev/null &#38;&#38; ! [ -f ~/.font ]; then
setfont -o ~/.font gr928a-8x16
fi
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><TT
CLASS="FILENAME"
>~/.bash_logout</TT
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>if tty 2&#62;/dev/null |grep '/dev/tty[0-9]*$' &#38;&#62;/dev/null &#38;&#38; [ -f ~/.font ]; then
setfont ~/.font
rm -f ~/.font
fi
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>Vonkoncom to nie je ideálne rie&#353;enie, ale svoj ú&#269;el splní (minimálne po moment prvého
odhlásenia). Trochu sa s tým pozabávajte, aby sa font (a rozlo&#382;enie kláves) menilo len pri
prvom prihlásení a poslednom odhlásení, tie&#382; setfont pod iXami nemá ve&#318;mi zmysel a tak... V
Tips-HOWTO je uvedený spôsob, ako zisti&#357;, na ko&#318;kých virtuálnych konzolách je e&#353;te u&#382;ívate&#318;
prihlásený.</P
><P
>Iná&#269;, aby bolo jasné, toto vám bude fungova&#357; len na lokálnom stroji - zamyslite sa,
pre&#269;o asi <B
CLASS="COMMAND"
>setfont</B
> (aj <B
CLASS="COMMAND"
>loadkeys</B
>) nefunguje cez
vzdialený terminál a &#269;i by ste z toho nie&#269;o mali, keby to tak nebolo.</P
><P
>Ak to s takýmto rie&#353;ením myslíte vá&#382;ne, tak skôr uva&#382;ujte nad modifikáciou skriptu
<TT
CLASS="FILENAME"
>/etc/profile.d/lang.sh</TT
>, kde by sa kontroloval aj obsah u&#382;ívate&#318;ského
súboru <TT
CLASS="FILENAME"
>~/.i18n</TT
> a pod&#318;a toho by sa zaviedol skript, popis rozlo&#382;enia
kláves, prípadne nejaké premenné...</P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="CONSOLE-KBD"
>3.2. Slovenská klávesnica na textovej konzole</A
></H2
><P
>Ke&#271; je slovenský font na konzole rozbehaný a na&#353;e národné znaky sa zobrazujú správne, máme
so sloven&#269;inou problém &#269;íslo dva - ako tam tie znaky dosta&#357;? Keby ste si chceli tento súbor
len pre&#269;íta&#357; bez potreby následnej nav&#353;tevy psychiatra, sta&#269;ilo by zavies&#357; nejaký font so
slovenskou podporou. Ale ke&#271;&#382;e ste uvedomelý linuxák / uvedomelá linuxá&#269;ka, hne&#271;
chcete do <I
CLASS="CITETITLE"
>Slovak-HOWTO</I
> prispie&#357; a pomocou klávesnice písa&#357; slovenský
text. Na to potrebujete s tou klávesnicou nie&#269;o urobi&#357;.</P
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-KBD-KMAP"
>3.2.1. Popis rozlo&#382;enia kláves (keymap)</A
></H3
><P
>Adresáre <TT
CLASS="FILENAME"
>/usr/lib/kbd/keymaps/i386/qwertz/</TT
> a
<TT
CLASS="FILENAME"
>qwerty/</TT
> obsahujú
po nain&#353;talovaní balíka
<SPAN
CLASS="APPLICATION"
>kbd</SPAN
>/<SPAN
CLASS="APPLICATION"
>console-tools</SPAN
> aj popisy
slovenského rozlo&#382;enia kláves. Pre nás sú zaujímavé súbory
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
><TT
CLASS="FILENAME"
>sk-prog-qwerty.map.gz</TT
></TD
></TR
><TR
><TD
><TT
CLASS="FILENAME"
>sk-qwerty.map.gz</TT
></TD
></TR
><TR
><TD
><TT
CLASS="FILENAME"
>sk-prog-qwertz.map.gz</TT
></TD
></TR
><TR
><TD
><TT
CLASS="FILENAME"
>sk-qwertz.map.gz</TT
></TD
></TR
></TBODY
></TABLE
><P
></P
></P
><P
>Tieto súbory obsahujú definície rozlo&#382;enia kláves pre slovenský jazyk, pri&#269;om rozdiely
medzi nimi sú v umiestnení kláves <B
CLASS="KEYCAP"
>Y</B
> a <B
CLASS="KEYCAP"
>Z</B
> a po&#269;te
slovenských znakov, ktoré pomocou nich mo&#382;no napísa&#357; priamo (bez m&#341;tvych kláves). Najviac sa
na slovenský písací stroj podobá <TT
CLASS="COMPUTEROUTPUT"
>sk-qwertz</TT
>, najmen&#353;ie zmeny
oproti americkej klávesnici sú zase v <TT
CLASS="COMPUTEROUTPUT"
>sk-prog-qwerty</TT
>.
</P
><P
>Súbory v adresári <TT
CLASS="FILENAME"
>/usr/lib/kbd/keymaps/i386/include/
</TT
> obsahujú popis základných rozlo&#382;ení kláves (<TT
CLASS="COMPUTEROUTPUT"
>azerty
</TT
>, <TT
CLASS="COMPUTEROUTPUT"
>qwerty</TT
>, <TT
CLASS="COMPUTEROUTPUT"
>qwertz
</TT
>), prídavných kláves (<TT
CLASS="COMPUTEROUTPUT"
>keypad</TT
>,
<TT
CLASS="COMPUTEROUTPUT"
>windowkeys</TT
>), prípadne problémových kláves (<TT
CLASS="COMPUTEROUTPUT"
> delete</TT
>, <TT
CLASS="COMPUTEROUTPUT"
>backspace</TT
>, <TT
CLASS="COMPUTEROUTPUT"
>ctrl
</TT
>). Súbory <TT
CLASS="FILENAME"
>linux-*.inc.gz</TT
>&#353;pecifické pre linux
(teda nie pre jazyk). Sú to napr. k&#318;ú&#269;e (<B
CLASS="KEYCAP"
>F1</B
>-<B
CLASS="KEYCAP"
>F12</B
>,
kombinovaním s <B
CLASS="KEYCAP"
>Ctrl</B
> a <B
CLASS="KEYCAP"
>Shift</B
> a&#382; po <B
CLASS="KEYCAP"
>F48</B
>),
<B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>PgUp</B
> a <B
CLASS="KEYCAP"
>Shift
</B
>-<B
CLASS="KEYCAP"
>PgDown</B
>, at&#271;.</P
><P
>Keymapy <TT
CLASS="FILENAME"
>*.inc.gz</TT
> nepopisujú kompletné rozlo&#382;enie klávesnice, ale
len niektorých jej &#269;astí. Vyu&#382;ívajú sa pri pripájaní
(<I
CLASS="FOREIGNPHRASE"
>include</I
>) zo súborov <TT
CLASS="FILENAME"
>*.map.gz</TT
>, &#269;o je
výhodné z dôvodu jednoduch&#353;ej konfigurácie klávesnice. Napríklad zmenou jedného riadku v
súbore s rozlo&#382;ením <TT
CLASS="COMPUTEROUTPUT"
>sk-qwerty</TT
>&#382;me dosta&#357; rozlo&#382;enie
qwertz, prípadne (to asi vyu&#382;ijete) jednoducho odstavi&#357; znaky <B
CLASS="KEYCAP"
>euro</B
> a
<B
CLASS="KEYCAP"
>cent</B
>, ktoré (zatia&#318;?) nepotrebujeme a zbyto&#269;ne nám zaberajú znaky
<B
CLASS="KEYCAP"
>E</B
> a <B
CLASS="KEYCAP"
>C</B
>.</P
><P
>Na zavedenie súboru s popisom rozlo&#382;enia kláves slú&#382;i nasledovný príkaz:
<P
><B
CLASS="COMMAND"
>loadkeys</B
> <TT
CLASS="REPLACEABLE"
><I
>nazov</I
></TT
> </P
>
kde <TT
CLASS="COMPUTEROUTPUT"
>nazov</TT
>&#382;e by&#357; absolútna alebo relatívna cesta ku
keymap súboru, alebo meno súboru, pokia&#318; sa nachádza v adresári <TT
CLASS="FILENAME"
> /usr/lib/kbd/keymaps/</TT
>, &#269;i u&#382; s príponou, alebo bez.</P
><P
>&#352;tandardné slovenské popisy rozlo&#382;enia kláves nájdeme vo vy&#353;&#353;ie spomínaných
<TT
CLASS="FILENAME"
>*.map.gz</TT
> súboroch. Ak sa chcete vráti&#357; k &#353;tandardnému rozlo&#382;eniu,
príkaz
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ loadkeys -d
</PRE
></FONT
></TD
></TR
></TABLE
>
zavedie pôvodné, ktoré je ulo&#382;ené v súbore <TT
CLASS="FILENAME"
>defkeymap.map.gz</TT
> niekde
medzi ostatnými keymap súbormi. Predtým ale nikdy nezabudnite zmeni&#357; re&#382;im slovenskej
klávesnice na <SPAN
CLASS="ACRONYM"
>US</SPAN
> znaky, tzn. <B
CLASS="KEYCAP"
>1</B
> dáva
<TT
CLASS="COMPUTEROUTPUT"
>1</TT
> a nie <TT
CLASS="COMPUTEROUTPUT"
>+</TT
> at&#271;. Ak by ste
predsa zabudli, je mo&#382;né, &#382;e klávesy, kde sa nachádzali slovenské znaky, nebudú fungova&#357;
správne (v skuto&#269;nosti budú fungova&#357; správne, ale vám sa to nebude pá&#269;i&#357;). Vtedy znovu
zave&#271;te predchadzájúcu keymapu (na nefunk&#269;né klávesy pou&#382;ite <B
CLASS="KEYCAP"
>AltGr</B
> - pravý
<B
CLASS="KEYCAP"
>Alt</B
>) a klávesou <B
CLASS="KEYCAP"
>Pause/Break</B
> v&#353;etko napravíte. Potom mô&#382;ete
znova zavies&#357; defkeymap.</P
><P
>Pokia&#318; sa vám nepá&#269;i ani jeden zo &#353;tandardných keymap súborov pre sloven&#269;inu, &#269;o je
pravdepodobné v&#271;aka riadku
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>include "euro"
</PRE
></FONT
></TD
></TR
></TABLE
>
v include súboroch <TT
CLASS="FILENAME"
>qwerty-layout.inc.gz</TT
> aj
<TT
CLASS="FILENAME"
>qwertz-layout.inc.gz</TT
>, mô&#382;ete k&#318;udne pozmeni&#357; existujúci súbor s popisom
rozlo&#382;enia kláves, prípadne vytvori&#357; nový. Nebojte sa, je to zlo&#382;ité! Nebudem to tu
rozpisova&#357; v&#353;etko, prezrite si zopár kmap súborov, pre&#269;ítajte manuálovú stránku keymaps(5) a
mali by ste to &#318;ahko pochopi&#357;.</P
><P
>My si povieme len o základných veciach, ktoré nám pomô&#382;u pozmeni&#357; 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&#382;enie kláves pod&#318;a svojho gusta.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-KBD-INCLUDE"
>3.2.2. Include a nesprávna funkcia kláves <B
CLASS="KEYCAP"
>E</B
> a <B
CLASS="KEYCAP"
>C</B
></A
></H3
><P
>Problém s <B
CLASS="KEYCAP"
>E</B
> a <B
CLASS="KEYCAP"
>C</B
> je spôsobený zavedením jednotnej meny
v európskej únii. Na vine nie je ani tak <SPAN
CLASS="ACRONYM"
>EU</SPAN
>, ale niekto, kto symboly pre
<B
CLASS="KEYCAP"
>euro</B
> a <B
CLASS="KEYCAP"
>cent</B
> umiestnil na <B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>E</B
> a <B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>C</B
>, &#269;o sú na&#353;e oby&#269;ajné <B
CLASS="KEYCAP"
>E</B
> a <B
CLASS="KEYCAP"
>C</B
>. Toti&#382;, národné
klávesnice sú vä&#269;&#353;inou rie&#353;ené tak, &#382;e po zavedení súboru na&#271;alej funguje americké
rozlo&#382;enie a na prepínanie do národného re&#382;imu sa pou&#382;íva klávesa <B
CLASS="KEYCAP"
>Pause</B
>,
alebo mô&#382;me zadáva&#357; národné klávesy pri sú&#269;asnom dr&#382;aní klávesy <B
CLASS="KEYCAP"
>AltGr</B
>
(pravý <B
CLASS="KEYCAP"
>Alt</B
>). Súbor <TT
CLASS="FILENAME"
>euro.inc</TT
>, ktorý definuje tieto dva
problémové symboly, je pripojený zo súboru <TT
CLASS="FILENAME"
>qwerty-layout.inc</TT
>, ktorý
zase pripájajú samotné slovenské keymapy (<TT
CLASS="FILENAME"
>sk-qwerty</TT
>,
<TT
CLASS="FILENAME"
>sk-prog-qwertz</TT
>, &#8230;).</P
><P
>Rie&#353;enie je ve&#318;mi jednoduché - zeditujete <TT
CLASS="FILENAME"
>qwerty-layout.inc</TT
> (alebo
<TT
CLASS="FILENAME"
>qwertz-layout.inc</TT
>) a odkomentujete znakom
<TT
CLASS="COMPUTEROUTPUT"
>#</TT
> riadok
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>include "euro"
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-KBD-KEYCODE"
>3.2.3. Keycode a definovanie kláves</A
></H3
><P
>Predchádzajúci problém s eurom mo&#382;no vyrie&#353;i&#357; aj definovaním znakov <B
CLASS="KEYCAP"
>E</B
> a
<B
CLASS="KEYCAP"
>C</B
> v samotnom súbore <TT
CLASS="FILENAME"
>sk-qwerty.kmap.gz</TT
> (alebo inom,
ktorý pou&#382;ívate) pomocou slova <TT
CLASS="COMPUTEROUTPUT"
>keycode</TT
>:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 18 = e
keycode 46 = c
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>V keymap súboroch je pre ka&#382;dú klávesu (alebo aspo&#328; pre ka&#382;dú, ktorú chceme
predefinova&#357;) jeden riadok pribli&#382;ne tohto razenia:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two...
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>&#268;íslo za <TT
CLASS="COMPUTEROUTPUT"
>keycode</TT
> ozna&#269;uje ur&#269;itú klávesu a re&#357;azce za
<TT
CLASS="COMPUTEROUTPUT"
>=</TT
> hovoria o tom, aký znak má ovláda&#269; klávesnice generova&#357;
pri stla&#269;ení tejto klávesy, a to bu&#271; samotnej, alebo v kombinácii so &#353;peciálnymi klávesmi
<B
CLASS="KEYCAP"
>Shift</B
>, <B
CLASS="KEYCAP"
>AltGr</B
>, <B
CLASS="KEYCAP"
>Control</B
>,
<B
CLASS="KEYCAP"
>Alt</B
>, <B
CLASS="KEYCAP"
>ShiftL</B
>, <B
CLASS="KEYCAP"
>ShiftR</B
>,
<B
CLASS="KEYCAP"
>Ctrl</B
> a <B
CLASS="KEYCAP"
>CtrlR</B
>. To nám dáva 256 mo&#382;ných znakov na ka&#382;
klávesu.</P
><P
>&#269;&#353;inou sa pozme&#328;uje len prvých 16 kombinácií modifikátorov. To je význam riadku
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keymaps 0-15
</PRE
></FONT
></TD
></TR
></TABLE
>
na za&#269;iatku kmap súborov.</P
><P
>V nasledujúcom zozname je týchto 16 kombinácií (po riadkoch):
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>&#382;iadny</TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
></TD
><TD
><B
CLASS="KEYCAP"
>AltGr</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>AltGr</B
></TD
></TR
><TR
><TD
><B
CLASS="KEYCAP"
>Control</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>Control</B
></TD
><TD
><B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Control</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Control</B
></TD
></TR
><TR
><TD
><B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
></TR
><TR
><TD
><B
CLASS="KEYCAP"
>Control</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>Control</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Control</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
><TD
><B
CLASS="KEYCAP"
>Shift</B
>-<B
CLASS="KEYCAP"
>AltGr</B
>-<B
CLASS="KEYCAP"
>Control</B
>-<B
CLASS="KEYCAP"
>Alt</B
></TD
></TR
></TBODY
></TABLE
><P
></P
></P
><P
>Z h&#318;adiska slovenskej klávesnice sú dôle&#382;ité len prvé &#353;tyri - prvé dva sú zvy&#269;ajne
nezmenené americké znaky, napr. <TT
CLASS="COMPUTEROUTPUT"
>two at</TT
>, &#269;o je
<B
CLASS="KEYCAP"
>2</B
> <B
CLASS="KEYCAP"
>@</B
>, a druhé dva sú znaky slovenskej abecedy, ktoré bude
ovláda&#269; klávesnice posiela&#357; aplikáciám ak pri stla&#269;ení tejto klávesy budeme sú&#269;asne dr&#382;a&#357;
klávesu <B
CLASS="KEYCAP"
>AltGr</B
> (pravý <B
CLASS="KEYCAP"
>Alt</B
>), napr. <TT
CLASS="COMPUTEROUTPUT"
>lcaron
two</TT
>, &#269;o je na&#353;e <B
CLASS="KEYCAP"
>&#318;</B
> <B
CLASS="KEYCAP"
>2</B
>.</P
><P
>Aby ste mohli vklada&#357; slovenské znaky, nemusíte celý &#269;as pridr&#382;iava&#357;
<B
CLASS="KEYCAP"
>AltGr</B
> nosom, ale mô&#382;ete pou&#382;i&#357; <B
CLASS="KEYCAP"
>Pause/Break</B
>, ktorý v
kontexte s národnými klávesnicami funguje ako <B
CLASS="KEYCAP"
>AltGr Lock</B
>. Chápte to tak, &#382;e
ke&#271; sa prepnete do slovenského re&#382;imu stla&#269;ením <B
CLASS="KEYCAP"
>Pause/Break</B
>, prvé a druhé
dva re&#357;azce v ka&#382;dom riadku keycode sa vymenia, napr.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>two at lcaron two -&#62; lcaron two two at
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Vtedy mô&#382;ete pou&#382;i&#357; <B
CLASS="KEYCAP"
>AltGr</B
> na zadávanie znakov americkej klávesnice,
alebo sa opätovným stla&#269;ením <B
CLASS="KEYCAP"
>Pause/Break</B
> prepnú&#357; spät do
<SPAN
CLASS="ACRONYM"
>US</SPAN
> re&#382;imu.</P
><P
>Riadok pre klávesu s kódom 41 (znaky <B
CLASS="KEYCAP"
>`</B
> a <B
CLASS="KEYCAP"
>~</B
>), má v
súbore <TT
CLASS="FILENAME"
>sk-qwerty.map.gz</TT
> nasledovný tvar:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 41 = grave asciitilde dead_diaeresis dead_circumflex ...
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Mne osobne sa nepá&#269;i, &#382;e sú tu umiestnené m&#341;tve klávesy <B
CLASS="KEYCAP"
>dead_diaeresis</B
>
(dve bodky nad znakom) a <B
CLASS="KEYCAP"
>dead_circumflex</B
> (mäk&#269;e&#328;), preto&#382;e ich nepotrebujem
--- <B
CLASS="KEYCAP"
>ä</B
> aj <B
CLASS="KEYCAP"
>ô</B
> na slovenskej klávesnici predsa je. A keby aj
nebolo, na ich písanie mô&#382;em k&#318;udne pou&#382;i&#357; m&#341;tvy kláves mäk&#269;e&#328;. O tom si bli&#382;&#353;ie povieme v
&#269;asti o compose sekvenciách. Teraz chcem ma&#357; na tomto mieste znaky <B
CLASS="KEYCAP"
>;</B
>
(semicolon) a <B
CLASS="KEYCAP"
>°</B
> (degree) tak, ako je to na popiske mojej klávesnice. Zmením
teda riadok takto:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 41 = grave asciitilde semicolon degree ...
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Iná&#269;, ten stupe&#328; asi nie je stupe&#328;, ale m&#341;tvy znak krú&#382;ku nad písmenom, napr. v &#269;e&#353;tine
nad u, ale taký kláves je nám fakt nani&#269;. Rad&#353;ej budeme písa&#357; stupne.</P
><P
>Názvy znakov, ktoré sa pou&#382;ívajú pri definovaní jednotlivých kláves si mô&#382;ete pre znaky
<SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> zisti&#357; v súbore <TT
CLASS="FILENAME"
>us.map.gz</TT
>. &#268;íselné kódy
v&#353;etkých kláves vám vyp&#318;uje program
<P
><B
CLASS="COMMAND"
>showkey</B
> </P
></P
><P
>Pravidlá pre názvy znakov &#353;pecifických pre sloven&#269;inu v kmap súboroch:
<P
></P
><OL
TYPE="1"
><LI
><P
>Prvé písmeno v názve ur&#269;uje <SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> znak, pre ktorý chceme pou&#382;i&#357;
diakritiku.</P
></LI
><LI
><P
>K nemu pridáme identifikátor diakritického znamienka:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>caron --- mäk&#269;e&#328;</TD
></TR
><TR
><TD
>acute --- d&#314;&#382;e&#328;</TD
></TR
><TR
><TD
>diaeresis --- dve bodky nad</TD
></TR
><TR
><TD
>circumflex --- voká&#328;</TD
></TR
></TBODY
></TABLE
><P
></P
></P
><P
>Napríklad:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>scaron = <B
CLASS="KEYCAP"
>&#353;</B
></TD
></TR
><TR
><TD
>uacute = <B
CLASS="KEYCAP"
>ú</B
></TD
></TR
><TR
><TD
>Ocircumflex = <B
CLASS="KEYCAP"
>Ô</B
></TD
></TR
></TBODY
></TABLE
><P
></P
></P
></LI
></OL
></P
><P
>Názvy &#271;al&#353;ích znakov &#353;pecifických pre sloven&#269;inu:
<P
></P
><TABLE
BORDER="0"
><TBODY
><TR
><TD
>0xa7 --- <B
CLASS="KEYCAP"
>§</B
> (paragraf)</TD
></TR
><TR
><TD
>degree --- <B
CLASS="KEYCAP"
>°</B
> stupe&#328;</TD
></TR
></TBODY
></TABLE
><P
></P
></P
><P
>Pre správnu interpretáciu identifikátorov znakov s diakritikou je nutné na za&#269;iatku kmap
súboru ur&#269;i&#357; kódovú stránku, pre ktorú bude ur&#269;ený tento popis rozlo&#382;enia kláves. Ide o to,
&#382;e ten istý znak mô&#382;e ma&#357; v rôznych kódových stránkach iný <SPAN
CLASS="ACRONYM"
>ASCII</SPAN
> kód.
Implicitná hodnota je <TT
CLASS="CONSTANT"
>iso-8859-1</TT
>, teda pre slovenské keymapy je nutné
vlo&#382;i&#357; riadok:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>charset "iso-8859-2"
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>E&#353;te jeden príklad: ak chcete pou&#382;íva&#357; slovenské rozlo&#382;enie
<TT
CLASS="COMPUTEROUTPUT"
>qwertz</TT
> a americké rozlo&#382;enie
<TT
CLASS="COMPUTEROUTPUT"
>qwerty</TT
>, potrebujete vymeni&#357; znaky <B
CLASS="KEYCAP"
>Y</B
> a
<B
CLASS="KEYCAP"
>Z</B
>:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 21 = y Y z Z
keycode 44 = z Z y Y
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Na prvý poh&#318;ad to mô&#382;e fungova&#357; dobre, ale problém sa prejaví pri zapnutom <B
CLASS="KEYCAP"
>Caps
Lock</B
> - znaky <B
CLASS="KEYCAP"
>Y</B
> a <B
CLASS="KEYCAP"
>Z</B
> sa stále pí&#353;u malými
písmenami. Pri písaní popisov rozlo&#382;ení znakov mo&#382;no takýto problém o&#353;etri&#357; pridaním písmena
<TT
CLASS="COMPUTEROUTPUT"
>+</TT
> pred ka&#382;dé písmeno v keycode riadku danej klávesy.
Písmeno <TT
CLASS="COMPUTEROUTPUT"
>+</TT
> ur&#269;uje nasledovnému písmenu atribút
<I
CLASS="FOREIGNPHRASE"
>letter</I
>, teda sa bude pri stla&#269;enom <B
CLASS="KEYCAP"
>Caps Lock</B
>
písa&#357; ve&#318;ké písmeno. V&#353;etky písmená <B
CLASS="KEYCAP"
>a</B
>-<B
CLASS="KEYCAP"
>z</B
>,
<B
CLASS="KEYCAP"
>A</B
>-<B
CLASS="KEYCAP"
>Z</B
> majú tento atribút priradený automaticky, ale to len v
prípade, &#382;e majú keycode riadok tvaru:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 21 = y
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>V na&#353;om prípade teda musíme priradi&#357; tento atribút v&#353;etkým znakom explicitne. Tak&#382;e,
kone&#269;ná úprava keymapy bude:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>keycode 21 = +y +Y +z +Z
keycode 44 = +z +Z +y +Y
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Pre výmenu písmen toto rie&#353;enie funguje spo&#318;ahlivo, bohu&#382;ia&#318;, e&#353;te stále neexistuje
spôsob, ktorým by sa dalo dosiahnu&#357; napríklad písanie ve&#318;kých písmen s diakritikou pri
zapnutom <B
CLASS="KEYCAP"
>Caps Lock</B
> jednoduchým stlá&#269;aním ich kláves, ako je to v slovenskom
popise rozlo&#382;enia kláves pre <SPAN
CLASS="APPLICATION"
>X Window System</SPAN
>.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-KBD-DEAD"
>3.2.4. M&#341;tve klávesy a sekvencie compose</A
></H3
><P
>S m&#341;tvymi klávesami súvisia v kmap súboroch riadky tvaru
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>compose 'c1' 'c2' to 'c3'
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Predstavme si m&#341;tve znaky ako úplne oby&#269;ajné znaky s tým rozdielom, &#382;e ovláda&#269;
klávesnice ich neposiela aplikáciám, ale zostanú niekde <SPAN
CLASS="QUOTE"
>&#8222;visie&#357;&#8220;</SPAN
>, kým z
klávesnice nepríde &#271;al&#353;í znak. Ovláda&#269; klávesnice nepo&#353;le ani tento, ale pokúsi sa spoji&#357; ho
s predchádzajúcim m&#341;tvym znakom a a&#382; výsledok spojenia pustí &#271;alej. No, a ako má to spojenie
uskuto&#269;ni&#357;, to mu presne hovoria riadky <TT
CLASS="COMPUTEROUTPUT"
>compose</TT
> v keymap
súboroch.</P
><P
>V nasledujúcej tabu&#318;ke je zoznam m&#341;tvych znakov pou&#382;ívaných v sloven&#269;ine, spolu s
významom a znakom, ktorým sa ozna&#269;ujú v compose sekvenciách.
<DIV
CLASS="TABLE"
><A
NAME="CONSOLE-KBD-DEAD.TABLES.DEAD"
></A
><P
><B
>Tabu&#318;ka 2. M&#341;tve klávesy</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Názov</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Význam</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>Compose</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>dead_acute</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>d&#314;&#382;e&#328;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>\'</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>dead_circumflex</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>mäk&#269;e&#328;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>^</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
>dead_diaeresis</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>dve bodky nad</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>"</TD
></TR
></TBODY
></TABLE
></DIV
></P
><DIV
CLASS="PROCEDURE"
><P
><B
>Postup pri písani compose sekvencií</B
></P
><OL
TYPE="1"
><LI
><P
>Ka&#382;dá compose sekvencia sa za&#269;ína k&#318;ú&#269;ovým slovom
<TT
CLASS="COMPUTEROUTPUT"
>compose</TT
>.</P
></LI
><LI
><P
>Nasleduje compose znak m&#341;tvej klávesy (pod&#318;a tabu&#318;ky <A
HREF="console.html#CONSOLE-KBD-DEAD.TABLES.DEAD"
><I
>M&#341;tve klávesy</I
></A
>),
napríklad <TT
CLASS="COMPUTEROUTPUT"
>\'</TT
>.
</P
><P
>Druhý je znak, s ktorým chceme m&#341;tvu klávesu kombinova&#357;, napríklad
<TT
CLASS="COMPUTEROUTPUT"
>A</TT
>.</P
><P
>Za k&#318;ú&#269;ovým slovom <TT
CLASS="COMPUTEROUTPUT"
>to</TT
> nasleduje výsledok spojenia
m&#341;tvej klávesy a znaku bez diakritiky, teda <TT
CLASS="COMPUTEROUTPUT"
>Á</TT
>.</P
></LI
></OL
></DIV
><P
>Je praktické ma&#357; pri vytváraní compose sekvencií zavedený slovenský font, aby ste
výsledok mohli hne&#271; kontrolova&#357;. Ve&#318;kou pomocou je tie&#382; mo&#382;nos&#357; príkazu
<B
CLASS="COMMAND"
>loadkeys</B
> &#269;íta&#357; zo &#353;tandardného vstupu. Napríklad:
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ loadkeys
include "/usr/lib/kbd/keymaps/i386/include/windowkeys.map.gz"
keycode 41 = grave asciitilde semicolon dead_diaeresis
compose '"' 'a' to 'ä'
# ukon&#269;enie zadávania: EOF - Ctrl-D
sh$
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Popis aktuálneho rozlo&#382;enia kláves mô&#382;ete ulo&#382;i&#357; do súboru príkazom
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ dumpkeys &#62; subor
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Ak nemáte zavedený slovenský popis rozlo&#382;enia kláves, musíte zadáva&#357; tieto znaky ako
<B
CLASS="KEYCAP"
>Alt</B
> sekvencie, poprípade vklada&#357; ich hex kódy v tvare
<SPAN
CLASS="KEYCODE"
>0xed</SPAN
> pre <B
CLASS="KEYCAP"
>í</B
>. Výpis znakov aktuálneho fontu spolu s ich
hex kódmi vám urobí program
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <P
><B
CLASS="COMMAND"
>showfont</B
> </P
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <P
><B
CLASS="COMMAND"
>showcfont</B
> </P
></P
></DD
></DL
></DIV
></P
><P
>E&#353;te raz na&#353;a compose sekvencia a nejaké navy&#353;e:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>compose '\'' 'A' to 'Á' # dlhé A cez d&#314;&#382;e&#328;
compose '^' 'O' to 'Ô' # O s voká&#328;om cez mäk&#269;e&#328;
compose '^' 'a' to 'ä' # &#353;iroké a cez mäk&#269;e&#328;,
compose '^' 'A' to 0x84 # ...preto nepotrebujeme dead_diaeresis
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Mimochodom, v súbore <TT
CLASS="FILENAME"
>/usr/lib/kbd/keymaps/compose/compose.latin2</TT
>
máte zoznam compose sekvencií pre normu <SPAN
CLASS="ACRONYM"
>ISO-8859-2</SPAN
>.</P
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="CONSOLE-KBD-AUTOLOAD"
>3.2.5. Automatické zavádzanie keymap súboru</A
></H3
><P
>Na nastavenie rozlo&#382;enia klávesnice, ktoré chceme zavies&#357; pri &#353;tarte systému, nám slú&#382;i
súbor <TT
CLASS="FILENAME"
>/etc/sysconfig/keyboard</TT
>. Pre Slováka ako repa by mal vyzera&#357;
minimálne takto:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>KEYTABLE=sk-qwerty # zavedie rozlo&#382;enie kláves sk-qwerty
KBCHARSET=iso-8859-2 # ...a spomínaný súbor compose.latin2
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Nastavenie klávesnice pri &#353;tarte má na starosti skript <B
CLASS="COMMAND"
>keytable</B
>,
ktorý je volaný priamo z <TT
CLASS="FILENAME"
>rc.sysinit</TT
>, tak&#382;e netreba vytvára&#357; linky v
adresároch pre runlevel <TT
CLASS="CONSTANT"
>3/multiuser</TT
>, prípadne <TT
CLASS="CONSTANT"
>5/X</TT
>.
</P
><P
>V dokumentácii k <SPAN
CLASS="APPLICATION"
>initscripts</SPAN
> sa pí&#353;e: <SPAN
CLASS="QUOTE"
>&#8222;Ak ulo&#382;íte popis
rozlo&#382;enia kláves (pou&#382;itím <B
CLASS="COMMAND"
>dumpkeys</B
>) do súboru
<TT
CLASS="FILENAME"
>/etc/sysconfig/console/default.kmap</TT
>, zavedie sa pri &#353;tarte systému e&#353;te
pred pripájaním/kontrolou súborových systémov. To mô&#382;e by&#357; u&#382;ito&#269;né, ak potrebujete zada&#357;
heslo roota v prípade problémov. Musí to by&#357; <SPAN
CLASS="QUOTE"
>&#8218;dumpnutý&#8216;</SPAN
> popis rozlo&#382;enia kláves
a nie skopírovaný súbor z <TT
CLASS="FILENAME"
>/usr/lib/kbd/keytables/</TT
>,
preto&#382;e tie &#269;asto e&#353;te vkladajú (include) iné popisy z tejto adresárovej
&#353;truktúry.&#8220;</SPAN
></P
><P
>Po pripojení súborových systémov, v prípade, &#382;e existuje spustite&#318;ný súbor
<TT
CLASS="FILENAME"
>/etc/rc.d/init.d/keytable</TT
> a adresár
<TT
CLASS="FILENAME"
>/usr/lib/kbd/keymaps/</TT
>, vykoná sa príkaz
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh# /etc/rc.d/init.d/keytable start
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Tento u&#382; zavedie popis rozlo&#382;enia kláves tak, ako to máte ur&#269;ené premennými v súbore
<TT
CLASS="FILENAME"
>/etc/sysconfig/keyboard</TT
>, preto nemusíte vytvára&#357; odkazy v jednotlivých
<TT
CLASS="FILENAME"
>rc[1-5].d/</TT
> adresároch.</P
><P
>To, &#269;o sme si hovorili o zmene fontu pri prihlásení nejakého u&#382;ívate&#318;a na virtuálnej
konzole, sa dá aplikova&#357; aj na rozlo&#382;enie kláves. Úplne najjednoduch&#353;ie rie&#353;enie (ktoré sa
pri prvom odhlásení po&#353;le do kríkov) je asi takéto:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="FILENAME"
>~/.bash_profile</TT
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>if tty 2&#62;/dev/null |grep '/dev/tty[0-9]*$' &#38;&#62;/dev/null &#38;&#38; ! [ -f ~/.keymap ]; then
dumpkeys &#62; ~/.keymap
loadkeys gr.map
fi
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><TT
CLASS="FILENAME"
>~/.bash_logout</TT
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>if tty 2&#62;/dev/null |grep '/dev/tty[0-9]*$' &#38;&#62;/dev/null &#38;&#38; [ -f ~/.keymap ]; then
loadkeys ~/.keymap
rm -f ~/.keymap
fi
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="CONSOLE-SUMMARY"
>3.3. Zhrnutie nastavení konzoly</A
></H2
><P
>Pokia&#318; som sa niekde nesekol, tak minimálne v distribúciách
<SPAN
CLASS="SYSTEMITEM"
>RedHat</SPAN
> a
<SPAN
CLASS="SYSTEMITEM"
>Mandrake</SPAN
> by po týchto zmenách mala do pohody za&#353;lapa&#357;
slovenská podpora (fonty + klávesnica).
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><TT
CLASS="FILENAME"
>/etc/sysconfig/i18n</TT
>:</DT
><DD
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>SYSFONT=lat2a-16
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>SYSFONT=lat2u-16
SYSFONTACM=iso02
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></DD
><DT
><TT
CLASS="FILENAME"
>/etc/sysconfig/keyboard</TT
>:</DT
><DD
><P
> <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="PROGRAMLISTING"
>KEYTABLE=sk-qwertz
KBCHARSET=iso-8859-2
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>Tie&#382;, ak zadávate rootovské heslo s pou&#382;itím iného rozlo&#382;enia kláves ako je &#353;tandardné
(<TT
CLASS="COMPUTEROUTPUT"
>us</TT
>), vlo&#382;te si jeho popis do súboru
<TT
CLASS="FILENAME"
>/etc/sysconfig/console/default.kmap</TT
>. Pozor, nesmiete len tak skopírova&#357;
súbor, alebo vytvori&#357; link! Ak chcete pou&#382;i&#357; napríklad rozlo&#382;enie
<TT
CLASS="COMPUTEROUTPUT"
>sk-qwertz</TT
>, urobte to takto:
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ loadkeys sk-qwertz
sh# dumpkeys &#62;/etc/sysconfig/console/default.kmap
</PRE
></FONT
></TD
></TR
></TABLE
></P
><P
>Ak chcete nastavi&#357; slovenský font a klávesnicu len jednorazovo, tieto príkazy by to mali
dokáza&#357;:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ setfont lat2a-16
sh$ loadkeys sk-qwertz
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ consolechars -f lat2u-16 -m iso02
sh$ loadkeys sk-qwertz
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
><P
>...a naspä&#357; na &#353;tandardné nastavenia:
<P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
><SPAN
CLASS="APPLICATION"
>kbd</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ setfont
sh$ loadkeys -d
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
><DT
><SPAN
CLASS="APPLICATION"
>console-tools</SPAN
>:</DT
><DD
><P
> <TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>sh$ consolechars -d
sh$ loadkeys -d
</PRE
></FONT
></TD
></TR
></TABLE
></P
></DD
></DL
></DIV
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="locales.html"
>Predchádzajúci</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Domov</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="xwindow.html"
>&#270;al&#353;í</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Miestne nastavenia</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Nastavenia X Window Systemu</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>