Pered tem kak my nachnem nastraivat' razlichnye chasti sistemy, nam nado nastroit' paru prostyh veshchej. Bol'shinstvo utilit, opisyvaemyh nizhe, predpolagayut, chto kirillicheskie shrifty dostupny i pol'zovatel' mozhet vvodit' kirillicheskie simvoly. CHtoby eto dejstvitel'no stalo pravdoj, nam sleduet nastroit' okruzhenie dlya togo chtoby obespechit' i shrifty, i vozmozhnost' vvoda kirillicy.
Linux podderzhivaet dva interfejsa dlya otobrazheniya informacii, dve razlichnye mody. Odna iz nih eto tekstovaya moda, a drugaya graficheskaya, predostavlyaemaya sredstvami X Window. Obe eti mody trebuyut razlichnoj nastrojki, kotorye opisyvaetsya nizhe.
Voobshche, nastrojka tekstovyh rezhimov - samyj prostoj sposob pokazyvat' i vvodit' simvoly kirillicy. Odnako, imeetsya odno znachitel'noe oslozhnenie: tekstovye shrifty i raspolozhenie simvolov na klaviature zavisyat ot realizacii drajvera terminala. Sledovatel'no, ne imeetsya nikakogo obshchego sposoba dlya dostizheniya celi v razlichnyh sistem.
Nizhe, ya opishu sposob kak "spravit'sya" s drajverom Linux konsoli. Poetomu esli vy imeete druguyu sistemu, ne ozhidajte, chto eto budet rabotat'. Vzamen, prokonsul'tirujtes' s rukovodstvom po drajveru terminala i poshlite mne lyubuyu informaciyu, kotoruyu vy najdete. V etom sluchae ya smogu vklyuchit' eto v dal'nejshie versii etogo dokumenta.
Konsol'nyj drajver Linux - dovol'no horosho nastraivaemyj obrazec programmnogo obespecheniya. On mozhet menyat' kak shrifty, tak i raskladki klaviatury. CHtoby sdelat' eto, vam nuzhen paket kbd. Bol'shinstvo distributivov Linux ustanavlivayut kbd kak obyazatel'nuyu chast' sistemy.
Paket kbd soderzhit utility upravleniya klaviaturoj, krome etogo s nim postavlyaetsya shirokij vybor shriftov i raskladok.
Ustanovka kirillicy s pomoshch'yu kbd
obychno sostoit iz:
loadkeys
. Redhat pozvolyaet ustanovit' raskladku klaviatury,
kotoruyu sistema zagruzhaet po umolchaniyu vo vremya zagruzki. |to
konfiguriruetsya s pomoshch'yu programmy /usr/sbin/kbdconfig
.
Ili vy prosto mozhete zapustit' loadkeys
iz vashego
~/.profile
ili sdelav eto rukami.
setfont
. Fajly shriftov nahodyatsya v /usr/lib/kbd/consolefonts
.
VNIMANIE: V staryh versiyah Linux, zapusk programmy setfont
pod X Windows mog zavesit' sistemu. Sejchas v etom sluchae
pechataetsya soobshchenie ob oshibke.
Esli vy yavlyaetes' priverzhencem programm, vypolnyaemyh v tekstovoj mode,
i ispol'zuyushchih dostoinstva PC psevdo - grafiki (takih kak
Midnight Commander), vy mozhite predpochest' ispol'zovat' shrifty
s Alt
kodirovkoj i konsol'noj raskladkoj
(console character map). |to oznachaet,
chto vasha konsol' otobrazhaet Alt shrifty, no vse kirillicheskie
simvoly, sootvetstvuyushchie KOI-8R kodirovki sootvetstvennym obrazom
otobrazhayutsya v Alt
i poetomu otobrazhayutsya pravil'no. Preimushchestvo
etogo metoda zaklyuchaetsya v tom, chto on pozvolyaet ispol'zovat'
psevdograficheskie simvoly Alt
kodirovki.
Koroche, nizhe perechisleny komandy, kotorye pozvolyayut dostich' etogo effekta.
loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16 mapscrn /usr/lib/kbd/consoletrans/koi2alt echo -ne "\033(K" # magicheskaya posledovatel'nost'
Posle vypolneniya etih komand i zagruzki sootvetstvuyushchih fajlov, vy mozhite pereklyuchat' raskladku klaviatury dlya vvoda kirillicheskih simvolov s pomoshch'yu pravogo Control.
Magicheskaya posledovatel'nost' neobhodima dlya perekodirovki vyvoda simvolov na ekran esli vy ispol'zuete Alt shrifty. Ona rabotaet i vam ne sleduet znat' o nej chto-to bol'shee. Odnako, esli vam lyubopytno, to posmotrite v dokumentaciyu k paketu kbd.
V zaklyuchenie, dlya teh estetov, kto ne zhelaet ispol'zovat' Alt kodirovku, ya predlagayu druguyu versiyu opisannoj vyshe zagruzochnoj posledovatel'nosti, ispol'zuyushchej rodnye KOI8-R shrifty.
loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/koi8-8x16
Odnako, ne ozhidajte krasivyh ramok v vashih programmah, ispol'zuyushchih dlya raboty menyushki v tekstovom rezhime.
Teper' vy, veroyatno, hotite proverit' eto.
Skonfigurirujte sootvetstvuyushchim obrazom bash ili tcsh
(smotrite nizhe etot shag neobhodim),
peregruzite ego, zatem nazhmite pravuyu klavishu Control
.
Udostoverites', chto vy mozhite pechatat' na russkom pravil'no.
Klavisha 'q
' dolzhna sootvetstvovat' "j
", 'w
'
sootvetstvuet "c
", i t.d.
Esli u vas voznikli nepredvidennye problemy, to luchshe vsego vernut'sya k rodnoj (to est' US) raskladke. Dlya etogo sdelajte sleduyushchie telodvizheniya:
loadkeys /usr/lib/kbd/keytables/defkeymap.map setfont /usr/lib/kbd/consolefonts/default8x16
VNIMANIE: k sozhaleniyu, konsol'nyj drajver ne sposoben sohranit' eto sostoyanie (po krajnej mere bez izlishnih uhishchrenij), kogda peredaetsya upravlenie X Windows. Sledovatel'no, posle togo, kak vy vyshli iz X (ili pereklyuchaetes' na konsol'), to vy dolzhny perezagruzit' russkij shrift.
Podobno konsol'nomu rezhimu, X Windows takzhe trebuet nekotoroj nastrojki. Nastrojka vklyuchaet v sebya nastrojku vvoda i ustanovku shriftov dlya X Windows. Dannye dejstviya obsuzhdayutsya nizhe.
Prezhde vsego vy dolzhny dostat' shrifty, soderzhashchie izobrazheniya kirillicheskih simvolov v sootvetstvuyushchih mestah.
V konce 1995 goda X Window vklyuchila nabor KOI8-R shriftov razrabotannyh KOI8-R fonts, created by Cronyx. |ti shrifty yavlyayutsya takzhe chast'yu XFree86.
Nesmotrya na eto, nekotorye distributivy ne vklyuchayut kirillicheskie shrifty dlya X Windows v standartnuyu postavku. Odnim iz podobnyh pechal'nyh primerov yavlyaetsya RedHat (oni obeshchali bol'she tak ne delat' i ispravit' eto v RedHat 5.2).
Poetomu, vam sleduet proverit' ustanovleny li eti shrifty v vashej sisteme. Sprosite sistemnogo administratora, ili, esli vy- eto on i est', prover'te vashu sistemu sami, a imenno:
xlsfonts | grep koi8
'. Esli v rezul'tate
vypolneniya komandy poyavitsya spisok shriftov, to vash X server uzhe znaet
ob ih sushchestvovanii.find / -name crox\*.pcf\*dlya togo chtoby najti mestopolozhenie shriftov kirillicy v sisteme. Vy dolzhny budete sdelat' eti shrifty dostupnymi dlya X servera, kak - ya ob®yasnyu nizhe.
Esli vy ne nashli takih shriftov v vashej sisteme, to vy dolzhny ustanovit' ih sami.
Krome opisannogo vyshe sushchestvuet eshche odin nabor kirillicheskih
shriftov Cronyx v seti (po adresu
ftp.kiae.su), izvestnyj, kak paket xrus
(ne putat' eto s
programmoj xruskb
, ranee izvestnoj kak xrus
.
Xrus
imeet men'shij nabor shriftov chem v kollekcii Xfree86
(38 protiv 68).
Imeetsya takzhe bolee staroe reshenie, naprimer paket vakufonts
sozdannyj
Sergeem Vakulenko,
kotoryj stal osnovoj dlya paketa vklyuchennogo v distributiv X
Windows. Ochen' vazhno, chto imena shriftov v staroj kollekcii ne
sovpadayut so standartom polnost'yu. Vakufonts
, v obshchem, neplohoj paket,
no inogda mogut voznikat' razlichnye sverh®estestvennye oshibki.
Naprimer, u menya byli problemy s Maple V dlya Linux, kotoryj padal
po neponyatnym prichinam s paketom vakufonts
, no prekrasno
rabotal so "standartnymi" naborom.
Itak, davajte nachnem so shriftov:
XFree86-cyrillic-fonts
. Ustanovit' ego i
srazu perejti k razdelu, gde ob®yasnyaetsya kak sdelat'
mestopolozhenie shriftov izvestnym X Windows.
/usr/lib/X11/fonts/cyrillic
dlya nastrojki vsej sistemy, ili prosto
sozdajte katalog u sebya tol'ko dlya personal'nogo pol'zovaniya.
*.bdf
fajly),
to vy dolzhny skompilirovat' ih. Dlya kazhdogo shrifta vypolnite:
bdftopcf -o <font>.pcf <font>.bdfEsli vash X server podderzhivaet szhatye shrifty, to sozhmite ih s pomoshch'yu programmy
compress
(dlya poslednih versij XFree86 mozhno
szhat' shrifty s pomoshch'yu programmy gzip
):
compress *.pcf (ili gzip *.pcf)Esli zhe vy vse-taki hotite pomestit' novye shrifty v uzhe sushchestvuyushchij katalog shriftov, to vy dolzhny "srastit'" staryj i novye fajly, s imenem
fonts.alias
v tom sluchae, estestvenno,
esli oni oba sushchestvuyut.
fonts.dir
.
Vy ne dolzhny sozdavat' etot spisok vruchnuyu. Vmesto etogo, sdelajte:
cd <new font directory> mkfontdir .
XF86Config
. CHtoby najti ego raspolozhenie, prosmotrite
chto skazhet startx
pri zapuske (V Redhat etot fajl obychno nahoditsya
v /etc/X11). Bolee podrobno smotrite man XF86Config
(4/5).
xinit
. Dobav'te novyj katalog k
fajlu zapuska xinit
. Bolee podrobno smotrite xinit(1x)
.
~/.xinitrc
(ili ~/.Xclients
, ili
~/.xsession
dlya pol'zovatelej RedHat).
Dobav'te sleduyushchie komandy v etot fajl:
xset +fp <novyj katalog shriftov> xset fp rehashObratite vnimanie, na opciyu '
+fp
'- eto oznachaet, chto novye
shrifty budut dobavleny v nachale spiska direktorij so shriftami. To
est', esli prikladnaya programma zaprashivaet, skazhem, shrift fixed
, to
budet podstavlen fixed font s kirillicheskimi simvolami , chego my
i dobivalis'.
Hotya imeyutsya nekotorye problemy. V distributive shriftov
kirillicy net poluzhirnogo i kursivnogo fixed
shrifta. Moj lyubimyj
shrift - 6x13
, a tak, kak poluzhirnye i kursivnye shrifty etogo
razmera takzhe otsutstvuyut, to ya ne mogu ispol'zovat' Emacs/XEmacs
v polnoj mere. Nadeyus', chto kto - to v konechnom schete sozdast eti
shrifty, i situaciya izmenitsya.
xfontsel(1x)
, chtoby udostoverit'sya chto
vy sposobny vybrat' shrifty kirillicy.CHtoby zastavit' X klienta ispol'zovat' shrifty Kirillicy, Vy
dolzhny ustanovit' sootvetstvuyushchie X resurs. Naprimer, ya delayu
kirillicheskij shrift zadannym po umolchaniyu v moem ~/.Xdefaults
:
*font: 6x13
Tak kak moi shrifty kirillicy pervye v spiske poiska shriftov (smotri
vyvod programmy 'xset q
'), to
oni i podstavlyayutsya esli programma trebuet kakoj-libo shrift s
imenem, sovpadayushchem s kakim-libo iz shriftov, lezhashchih v kirillicheskoj
direktorii.
Vot prostye primery. Esli Vy hotite nauchit' sootvetstvuyushchij X
klient pol'zovat'sya kirillicheskim shriftom , to vy dolzhny uznat'
tip resursa , kotoryj vam nado izmenit' (mozhno eto sdelat'
ispol'zuya editres(1x)
) i opredelit' ego ili v baze dannyh
resursov, ili v komandnoj stroke. Naprimer mozhno sdelat' tak:
$ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*'
...zapusti xterm s neskol'ko urodlivym shriftom;
$ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*'
...ustanovit Cyrillic Times shrift dlya knopki Quit
programmy
xfontsel
.
U tehnologii TrueType, vzyatoj na vooruzhenie operacionnymi sistemami serii Windows (on zhe Mastdie :)), net mnogih nedostatkov, kotorye prisutstvuyut pri rabote so shriftami standartnym obrazom u X. Krome togo sushchestvuet mnozhestvo kirillicheskih TrueType shriftov.
K schast'yu, eti shrifty mozhno ispol'zovat' i v X Windows. Sushchestvuet TrueType server shriftov XFSFT dlya X (govoryat, chto v skorom vremeni podderzhka TrueType budet vklyuchena v distributiv XFree86).
Ustanovochnaya procedura dovol'no prosta - prosto, delajte to, chto skazano v dokumentacii. Sleduet otmetit' odnu veshch', imeyushchuyu otnoshenie k kirillicheskoj nastrojke, eto to, chto vam sleduet ispol'zovat' opciyu perekodirovki:
xfstt ... --encoding koi8-r,windows-1251,iso8859-1
Posle etogo, novye shrifty budut dostupny dlya X Windows - etot fakt vy
mozhete proverit', zapustiv xfontsel
i poigrav s ttf semejstvom
shriftov.
V poslednih vypuskah X (X11R61 i vyshe) imeyutsya dva
"standartnyh" sposoba vvoda s klaviatury: rodnoj sposob,
rabotayushchij cherez utilitu xmodmap
, i novyj, nazyvaemyj Xkb
(X KeyBoard). Pervoe, chto vy dolzhny sdelat', eto otklyuchit' Xkb sposob!.
Ne davajte sebya zagipnotizirovat' ego sposobnost'yu ustanavlivat'
"russian keyboard". |tot sposob, vrode by, ispol'zuet opisanie
simvolov kirillicy opredelennyh v keysymdef.h
. |tot fajl
opredelyaet simvoly dlya mnogih yazykov. Edinstvennaya problema
sostoit v tom, chto dannoe opredeleniya ne pozvolyayut, rabotat' s
rasshirennoj ASCII kodovoj stranicej - ochen' mnogo programm mogut rabotat'
tol'ko s etoj raskladkoj! YA pochti ne znayu programm, kotorye
razbirayutsya s opisaniem simvolov v keysymdef.h
otlichnym ot
standartnogo 8mi bitnogo ASCII. Odnako, nasha glavnaya cel' sostoit
v tom, chtoby zastavit' rabotat' podderzhku KOI8-R. (Primechanie
perevodchika: zdes' avtor nemnogo pogoryachilsya - Xkb vpolne
rabochij sposob, pravda sposobnost' rabotat' s KOI8-R on obnaruzhil
tol'ko v poslednih versiya XFree86. Pol'zovatelyam Redhat sleduet
vzyat' versiyu XFree86-3.3.3-1.)
CHtoby otklyuchit' podderzhku Xkb
, v fajle XF86Config
izuchite razdel Keyboard
i zakomentirujte, vse stroki,
nachinayushchiesya s Xkb (registr ne imeet znacheniya).
Vzamen, dobav'te sleduyushchuyu stroku:
XkbDisable
Programma xmodmap
pozvolyaet nastroit' kody sootvetstvuyushchie
razlichnymi simvolam i ih kombinaciyam. |ta nastrojka osnovana na
fajle, soderzhashchem tablicu perekodirovki.
V predydushchih versiyah etogo dokumenta ya ochen' podrobno opisyval
nastrojku kirillicy osnovannuyu na xmodmap
. |to okazalos'
prakticheski bespoleznym. Obshcheizvestno, chto sposob perekodirovka
vvoda, osnovannyj na xmodmap
, yavlyaetsya, ne-portabel'nym, ploho
nastraivaemym, i ne okonchatel'nym. Vashi nastrojki mogut rabotat'
s odnoj versiej XFree i sboit' pri rabote s drugoj. Bolee togo,
inogda rezul'tat raboty odnoj i toj zhe nastrojki sil'no raznitsya
dlya razlichnyh serverov iz odnogo distributiva.
YA nastoyatel'no sovetuyu vam ne igrat' s xmodmap
, po krajnej mere
dlya nachala. Vy ne poluchite nichego krome golovnoj boli i
razocharovaniya. Vmesto etogo, ya rekomenduyu vam ustanovit' paket
xruskb,
kotoryj pozvolyaet vam skonfigurirovat' bol'shinstvo
vhodnyh parametrov perekodirovki bez neobhodimosti stalkivat'sya s
xmodmap
. Opyat' zhe pol'zovateli Redhat Linux mogut ustanovit'
RPM paket etogo programnogo produkta.
Dlya togo, chtoby zastavit' bash ponyat' 8mi bitnye simvoly,
dolzhny byt' ustanovleny tri peremennye. Luchshe vsego eto
sdelat' iz fajl ~/.inputrc
.
Dolzhny byt' sdelany sleduyushchie ustanovki:
set meta-flag on set convert-meta off set output-meta on
Pomestite v .cshrc
sleduyushchee:
setenv LC_CTYPE iso_8859_5 stty pass8
Esli u vas net POSIX sovmestimogo stty (tol'ko ne v Linux), zamenite poslednyuyu strochku sleduyushchej:
stty -istrip cs8
CHto kasaetsya public domain realizacii ksh
- pdksh
versii 5.1.3 i vyshe, to vy mozhete razreshit' 8mi razryadnyj vvod
tol'ko dlya vi
v rezhime vvoda. Dlya etogo ispol'zujte:
set -o vi
Ustanovite peremennuyu okruzheniya LESSCHARSET
:
export LESSCHARSET=koi8-r
Starye versii less
ne podderzhivali simvoly KOI8-R, no ustanovka
sleduyushchej sistemnoj peremennoj pozvolyala eto obojti:
export LESSCHARSET=latin1
CHtoby razobrat' tekst kirillicy , vyberite opciyu full 8 bits
v
Options/Display
menyu.
Esli u vas problemy v vide urodlivyh okonnyh ramok, to prokonsul'tirujtes' v razdele Linux konsol'.
off-topic: esli vy zahotite chtoby mc
v okne Xterm
byl v cvete:
ustanovite peremennuyu COLORTERM
:
COLORTERM= ; export COLORTERM
Udostoverites', chto shell na meste adresata pravil'no
ustanovlena. Esli vash rlogin
ne rabotaet kak nado po umolchaniyu,
to ispol'zujte 'rlogin -8
'.
Sdelajte to zhe samoe, chto delaetsya dlya csh
(
csh). Fajl inicializacii v etom sluchae - .zshrc
ili
/etc/zshrc
.