Nastrojka tekstovogo rezhima - samyj prostoj sposob pokazyvat' i vvodit' simvoly kirillicy.
Nizhe ya opishu sposob, kak "spravit'sya" s drajverom Linux konsoli. Poetomu, esli vy pytaetes' rusificirovat' konsol' v drugoj sisteme, to ne ozhidajte, chto opisannye priemy budut tam 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.
Dlya specificheskoj informacii kasayushchejsya vashego distributiva vam sleduet obratit'sya v razdel Kirillizaciya distributivov.
Konsol'nyj drajver Linux - prekrasnyj obrazec horosho nastraivaemogo programmnogo obespecheniya. On mozhet menyat' kak shrifty, tak i raskladki klaviatury. Dlya specificheskoj informacii kasayushchejsya vashego distributiva vam sleduet obratit'sya v razdel Kirillizaciya distributivov.
CHtoby nastroit' konsol', vy mozhete vospol'zovat'sya odnim iz dvuh opisannyh nizhe paketov: console-tools (Sm. razdel consoletools) ili kbd (Sm. razdel kbd).
V rannih versiyah Linux al'ternativy kbd
net, no v svezhih distributivah vmesto kbd sejchas modno ispol'zovat'
paket consoletools.
|tot paket kardinal'no otlichaetsya
ot svoego predshestvennika - paketa kbd (naprimer v nem net
komandy setfont
- dlya sovmestimosti ispol'zuetsya emuliruyushchij skript).
CHtoby proverit', kakoj iz dvuh paketov prisutstvuet v vashej sisteme,
sleduet poprobovat'
vypolnit' komandu consolechars
. Esli ona uspeshno vypolnilas'
togda u vas est' paket console-tools, ezhe li net, to u vas
skoree vsego imeetsya komanda setfont
i znachit installirovan
paket kbd.
Vam budet polezno znat' obshchuyu shemu raboty konsol'nogo drajvera. Kogda nekotoraya pol'zovatel'skaya programma zaprashivaet konsol'nyj drajver vyvesti na ekran simvol imeyushchij kod A, to konsol'nyj drajver snachala ishchet kod A v tablice ACM (Application Charset Map). Iz tablicy on uznaet kakoj kod B soglasno kodirovki Unicode sootvetstvuet kodu A. Vy opredelyaete ispol'zuemuyu vami kodirovku posredstvom tablicy ACM. Dalee konsol'nyj drajver ishchet kod B v tablice SFM Screen Font Map. Tablica SFM opredelyaet kodirovku ispol'zuemogo shrifta podobno tomu kak ACM opredelyaet vashu kodirovku. Ot SFM konsol'nyj drajver uznaet kakoj simvol aktivnogo shrifta imeet kod B soglasno Unicode i nuzhno vyvesti na ekran.
Sushchestvuyut dve vazhnye modifikacii etoj shemy.
Apparatnye ogranicheniya sovremennyh komp'yuterov ne pozvolyayut ispol'zovat'
shrifty imeyushchie bolee 512 simvolov. Otsyuda ochevidno, chto inogda
konsol'nyj drajver ne smozhet najti kod B v SFM. Togda emu na
pomoshch' prihodit, tak nazyvaemaya, fallback tablica. |ta tablica
opredelyaet dlya koda B vozmozhnye ego approksimacii B1, B2,... Naprimer
esli B yavlyaetsya kod simvola "levaya dvojnaya uglovaya kavychka", to
vozmozhno B1 budet kodom simvola "levaya odinarnaya uglovaya kavychka", a B2
budet prosto kod simvola "<". Drugoe chasto ispol'zuemoe primenenie
fallback tablicy yavlyaetsya approksimaciya psevdograficheskih simvolah
posredstvom drugih. Naprimer esli ispol'zuemyj shrift ne imeet
psevdograficheskih simvolah i vy skazhete konsol'nomu drajveru
ispol'zovat' tablicu graph.fallback
, to on nachnet chertit'
okna podobno sleduyushchej kartinke:
+==================. | Glavnoe menyu | +------------------+ | 1. tekst | | 2. grafika | .==================.
Na ekrane eto vyglyadit ne tak uzh i ploho.
Vtoraya vazhnaya modifikaciya obshchej shemy raboty konsol'nogo drajvera
yavlyaetsya rezhim Unicode. Opisannaya vyshe shema otnositsya k
8mi bitovomu rezhimu raboty drajvera. Kogda zhe on nahoditsya v
rezhime Unicode, to on ozhidaet, chto pol'zovatel'skie programmy ispol'zuyut
Unicode i ozhidaet poluchat' ot nih kody simvolov soglasno Unicode.
Poetomu v etom rezhime ACM ne ispol'zuetsya. Vy vsegda mozhete
pereklyuchat' konsol'nyj drajver iz 8mi bitovogo rezhima v Unicode i
obratno posredstvom komandah unicode_start
i
unicode_stop
.
Vozmozhno u vas poyavilsya sleduyushchij vopros: a zachem nuzhna vsya
eta slozhnaya procedura? CHto esli ya ispol'zuyu shrifty imeyushchie tu zhe
samuyu ispol'zuemuyu mnoyu kodirovku? |to vozmozhno, no voznikayut
nekotorye oslozhneniya. Vam nuzhno skazat' programmam, chto
psevdograficheskie simvoly v shrifte uzhe nahodyatsya na drugih mestah. I
dazhe esli vy uhitrites' sdelat' eto posredstvom special'nogo
terminal'nogo tipa (kak naprimer linux-koi8r
), to poyavitsya
vtoraya (uzhe nerazreshimaya) problema - iz-za apparatnyh svojstv VGA,
gorizontal'naya psevdografika poluchitsya s razryvami, esli simvoly
psevdografiki v shrifte ne raspolozheny na teh zhe poziciyah, chto i v
kodirovke cp437 (Raspolozhenie psevdografiki v cp866 identichno
cp437). Poetomu
rekomenduetsya ispol'zovat' shrifty imeyushchie kodirovku na osnove cp437
(cp866).
Prezhde chem pristupit' k delu, v nachale razberemsya s
8-bitovym rezhimom. Ne vsegda konsol'nyj drajver Linux
umel rabotat' s Unicode. Konechno togda ne sushchestvovali takzhe i ACM, i
SFM. Vmesto nih ispol'zovalas' 8-bitovaya ekrannaya tablica
perekodirovki (screen map). |to byla prosto tablicu dlya
perevoda ot odnoj kodirovki (ispol'zuemoj
programmoj) v druguyu (kodirovku shrifta). Naprimer koi2alt.trans
perevodit kody KOI8-R v kody cp866. Dlya sovmestimosti, teper'
8-bitovyj screen map emuliruetsya s pomoshch'yu special'noj tablicy ACM.
Ustanovka kirillicy s pomoshch'yu paketov console-tools
i kbd
obychno sostoit iz:
consolechars
(paket console-tools
) ili
setfont
i mapscrn
(paket kbd
).loadkeys
.Bol'shinstvo distributivov pozvolyaet ustanavlivat' kirillicu po umolchaniyu vo vremya zagruzki.
Fajly shriftov obychno nahodyatsya v /usr/share/consolefonts
ili
/usr/lib/kbd/consolefonts
, tablicy ACM, SFM i fallback v
/usr/share/consoletrans
, klaviaturnye raskladki v
/usr/share/keymap/i386/qwerty
.
Nizhe opisano kak ustanovit' russkuyu klaviaturnuyu
raskladku. Zdes' ne ispol'zuetsya SFM i
fallback tablic, a vmesto ACM ispol'zuetsya 8-bitovaya ekrannaya tablica
perekodirovki. |to v osnovnom iz za togo, chto u imeyushchihsya v kbd
i
console-tools
shrifty dlya cp866 net tablic SFM. Esli vy
hotite vospol'zovat'sya vsemi vozmozhnostyami konsol'nogo drajvera
Linux i radovat'sya horoshim shriftam, to ispol'zujte paket
console-tools-cyrillic Viktora Vagnera.
Sam paket mozhno najti po adresu console-tools.
V sluchae, esli vash distributiv ispol'zuet paket consoletools, to vypolnite sleduyushchie dejstviya (estestvenno, eti komandy ne sleduet vypolnyat' doslovno):
foo="/mesto/gde/lezhat/vashi/konsol'nye/shrifty" loadkeys $foo/ru.map consolechars -v -f $foo/Cyr_a8x16 -m $foo/koi2alt
Posle vypolneniya etih komand i zagruzki sootvetstvuyushchih fajlov vy mozhete pereklyuchat' raskladku klaviatury dlya vvoda kirillicheskih simvolov s pomoshch'yu pravogo Control (inogda pereklyuchenie po umolchaniyu "veshaetsya" na Alt ili ).
K sozhaleniyu shrifty i klaviaturnye raskladki postavlyaemye vmeste s etimi paketami ne pozvolyayut vospol'zovat'sya vsemi vozmozhnostyami konsol'nogo drajvera. Poetomu ya rekomenduyu vam ispol'zovat' paket console-tools-cyrillic Viktora Vagnera.
Dovol'no mnogo distributivov Linux ustanavlivayut kbd kak obyazatel'nuyu chast' sistemy. Sam paket dostupen po adresu kbd.
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
. Prakticheski v kazhdom distributive mozhno ustanovit'
raskladku klaviatury, kotoruyu sistema zagruzhaet po umolchaniyu vo
vremya zagruzki, s pomoshch'yu sootvetstvuyushchej programmy nastrojki
(naprimer dlya Redhat eto /usr/sbin/kbdconfig
).
Vy takzhe mozhete prosto zapustit' loadkeys
iz vashego
~/.profile
ili sdelat' eto rukami.
setfont
. Fajly shriftov nahodyatsya v /usr/lib/kbd/consolefonts
.
VNIMANIE: V staryh versiyah Linux zapusk programmy setfont
pod X-Window mog zavesit' sistemu. Sejchas v etom sluchae
pechataetsya soobshchenie ob oshibke.
Esli vy yavlyaetes' priverzhencem programm, rabotayushchih v tekstovoj mode
i ispol'zuyushchih dostoinstva PC psevdografiki (takih kak
Midnight Commander), vy mozhete 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 KOI8-R kodirovki, sootvetstvennym obrazom
otobrazhayutsya v Alt
i poetomu vyglyadyat pravil'no. Preimushchestvo
etogo metoda zaklyuchaetsya v tom, chto on pozvolyaet ispol'zovat'
psevdograficheskie simvoly Alt
kodirovki.
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 # nizhe idet magicheskaya posledovatel'nost' echo -ne "\033(K"
Pri rusifikacii vseh konsolej pri zagruzke sistemy vmesto strochki
echo -ne "\033(K"
sleduet ispol'zovat' strochku
for i in 1 2 3 4 5 6 7; do echo -ne "\033(K" > /dev/tty$i; done
- eto rusificiruet vse terminaly
Magicheskaya posledovatel'nost' neobhodima dlya perekodirovki vyvoda simvolov na ekran, esli vy ispol'zuete Alt shrifty. Ona rabotaet, i etogo dlya spokojnoj zhizni dostatochno. Odnako, esli vam lyubopytno, to posmotrite v dokumentaciyu k paketu kbd.
Teper' vy, veroyatno, hotite proverit' pravil'nost' kirillizacii konsoli.
Skonfigurirujte sootvetstvuyushchim obrazom bash (razdel
bash)
ili tcsh (razdel
tcsh)
- etot shag neobhodim,
peregruzite ego, zatem nazhmite pravuyu klavishu Control
.
Udostoverites', chto vy mozhete pravil'no pechatat' po russki.
Klavisha 'q
' dolzhna sootvetstvovat' "j
", 'w
'
sootvetstvuet "c
", i t.d (qwerty->jcuken
).
Po toj prichine, chto na dannyj moment sushchestvuet mnozhestvo samyh
raznyh distributivov Linux, to klavisha pereklyucheniya
v konsoli mozhet byt' drugoj - obychno eto pravyj Alt
ili
Caps Lock
- eto zavisit ot raskladki klaviatury.
Esli u vas voznikli nepredvidennye problemy, to luchshe vsego vernut'sya k rodnoj (to est' US) raskladke. Dlya etogo vypolnite sleduyushchie dejstviya:
loadkeys /usr/lib/kbd/keytables/defkeymap.map setfont /usr/lib/kbd/consolefonts/default8x16
VNIMANIE: V staryh versiyah Linux konsol'nyj drajver ne sposoben sohranit' eto sostoyanie, kogda peredaetsya upravlenie X-Window. Sledovatel'no, posle togo, kak vy vyshli iz X (ili pereklyuchaetes' na konsol'), vy dolzhny perezagruzit' russkij shrift.
Skoree vsego na konsol' byl skopirovan kakoj-to dvoichnyj fajl, gde sluchajno vstretilas' pereklyuchayushchaya ESC-posledovatel'nost'. Togda:
Sbros terminala :
$ echo -ne "\033c"
nabrat' vslepuyu, ili s rabotayushchej konsoli:
# echo -ne "\033c" >/dev/ttyX
Pereklyuchenie na downloaded font
$ echo -ne "\033(K"
(vozmozhno, eshche pridetsya peregruzit' shrifty, no eto smotrya kak konsol' sorvalo...)
Esli vyvalilas' kakaya-to programma, kotoraya ispol'zuet curses, to proshche
$ stty sane
V RedHat vse eto delayut reset; setsysfont <ctrl-j>
reset
- iz ncurses
Sm. 'man console_codes' i 'man stty'