Next Previous Contents

3. Nastrojka vashego okruzheniya

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.

3.1 Nastrojka tekstovoj mody

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.

Linux konsol'

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:

  1. Zagruzki sootvetstvuyushchej raskladki klaviatury, s pomoshch'yu programmy 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.
  2. Nastrojki ekrannogo shrifta. |to delaetsya s pomoshch'yu programmy 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.

3.2 X Window

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.

SHrifty dlya X Windows.

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:

  1. Vypolnite 'xlsfonts | grep koi8'. Esli v rezul'tate vypolneniya komandy poyavitsya spisok shriftov, to vash X server uzhe znaet ob ih sushchestvovanii.
  2. Ili, naberite
    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:

  1. Vytashchite po ftp sootvetstvuyushchij nabor shriftov. Paket dlya XFree86 mozhno najti na lyubom FTP arhive, gde lezhit distributiv X Windows, naprimer, neposredstvenno na oficial'nom XFree86 FTP arhive. Pol'zovateli Redhat, u kotoryh otsutstvuet etot paket mogut zaglyanut' na ftp.redhat.com, chtoby vytyanut' paket XFree86-cyrillic-fonts. Ustanovit' ego i srazu perejti k razdelu, gde ob®yasnyaetsya kak sdelat' mestopolozhenie shriftov izvestnym X Windows.
  2. Teper', kogda u vas est' shrifty, sozdajte direktoriyu dlya nih. Pomestit' novye shrifty v uzhe sushchestvuyushchij katalog shriftov, myagko govorya, ne ochen' horoshaya ideya. Pomestite ih, naprimer, v /usr/lib/X11/fonts/cyrillic dlya nastrojki vsej sistemy, ili prosto sozdajte katalog u sebya tol'ko dlya personal'nogo pol'zovaniya.
  3. Esli novye shrifty postavlyayutsya v formate BDF (*.bdf fajly), to vy dolzhny skompilirovat' ih. Dlya kazhdogo shrifta vypolnite:
    bdftopcf -o <font>.pcf <font>.bdf
    
    Esli 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.
  4. V kazhdom kataloge shriftov dlya X dolzhen byt' spisok shriftov, nahodyashchihsya v nem. |tot spisok hranitsya v fajle fonts.dir. Vy ne dolzhny sozdavat' etot spisok vruchnuyu. Vmesto etogo, sdelajte:
    cd <new font directory>
    mkfontdir .
    
  5. Teper' Vy dolzhny sdelat' etot katalog shriftov izvestnym dlya X servera. Zdes' u vas est' ryad vozmozhnostej:
    xset +fp <novyj katalog shriftov>
    xset fp rehash
    
    Obratite 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.
  6. A teper' perezapustite vash X Windows. Esli vy vse sdelali pravil'no, to testy, opisannye v nachale razdela, budut projdeny uspeshno. Takzhe, poigrajtes' s 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.

Ispol'zovanie shriftov TrueType

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.

Vvod s klaviatury

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.

3.3 Pervye shagi - kirillizaciya shell

bash

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

csh/tcsh

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

ksh

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

less

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

mc (The Midnight Commander)

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

rlogin

Udostoverites', chto shell na meste adresata pravil'no ustanovlena. Esli vash rlogin ne rabotaet kak nado po umolchaniyu, to ispol'zujte 'rlogin -8'.

zsh

Sdelajte to zhe samoe, chto delaetsya dlya csh ( csh). Fajl inicializacii v etom sluchae - .zshrc ili /etc/zshrc.


Next Previous Contents