Trumpai paaiškinsiu, su kuo turėsime reikalą. Išsamiai konsolės šriftų ir keymap'ų naudojimas aprašytas Keyboard-and-Console-HOWTO. Keymap yra failas, kuriame aprašyta, kokius simbolius kernelis turėtų perduoti i terminalą, kai paspaudžiami kurie nors klavišai. Kitaip tariant, jame aprašytas klaviatūros išdėstymas. Keymap'ai yra įskaitomi ``plika akimi'' ir dėl to, turint noro, norimai susitvarkyti klaviatūros išdėstymą yra labai paprasta.
Norint pakrauti keymapą, reikia įvykdyti:
$ loadkeys <keymap'o_pavadinimas>
Kita failų rūšis - konsolės šriftai. Jie yra tiesiog pabičiui išdėlioti ženklų nuo 0 iki 255 vaizdai. Tokiu būdu, vienas 8x16 dydžio ženklas užima 16 baitų. Visas šrifto failas - 4096. Dar būna PSF formato šriftų failai. Jie turi keturių baitų antraštę, nurodančią šrifto aukštį bei failo dydį, taip pat gali turėti lentelę, nurodančią jos simbolių Unicode atitikmenis.
Norėdami pakrauti konsolės šriftą, rašykite
$ setfont <šrifto_vardas>
Dar yra ir trečia konsolės valdymo failų rūšis - ``transition tables''. Jos būna dviejų rūšių -- Screen Font Map (anksčiau vadinta tiesiog Unicode Mapping Table) ir Application Charset Map (anksčiau vadinta Screen Map). SFM mūsų laikais dažniausiai būna įsiūta į konsolinį šriftą, ir nurodo šrifto glifų Unicode reikšmes (arba tiesiog unikodus). Iš SFM kernelio konsolės draiveris sužino, kokie simboliai yra šrifte. ACM nurodo, koks charset'as norimas konsolėje, tai yra, kokius simbolius turės omeny programos, spausdindamos simbolius į ekraną. Pavyzdys galėtų būti Latin-1, arba Latin-7, arba KOI8-R.
Nustatydami kokį nors ACM, mes užsitikriname, kad konsolės draiveris teisingai supras, kokių simbolių mes norime, spaudintdami ką nors į ekraną ir paskui bandys tuos simbolius atvaizduoti pakrautu šriftu, panaudodamas SFM, kad surastų, kokie būtent glifai reikalingi.
Jei mes norime konsolėje lietuviškų raidžių Latin-7 lentelėje, tai tiesiog pakraunam bet kokį šriftą, kuriame yra lietuviškos raidės, bei jo SFM, o taip pat pakraunam Latin-7 ACM. Kernelis pats per ACM ir SFM suseks, kur šrifte yra lietuviškos raidės jas spausdins ekrane, kada reikės.
kbd-0.99 paketo programos setfont ir mapscrn teoriškai
palaikė šitą schemą, bet man niekaip nepavyko pakrauti norimo ACM
šiomis programomis. Į Red Hat 6.0 ir kitų naujesnių distribucijų
sudėtį vietoj kbd-0.99 įeina paketas console-tools. Pagrindinis
išorinis skirtumas yra tas, kad nebėra programų setfont ir
mapscrn, o vietoj jų atsirado viena programa consolechars.
Ji naudojama taip:
consolechars -f <šrifto_vardas> pakrauna konsolės šriftą
consolechars --acm <map'o_vardas> pakrauna (surprise!!!) ACM
consolechars --sfm <map'o_vardas> pakrauna SFM, jei norima
jį krauti atskirai nuo šrifto.
Visų triju rūšių failus -- šriftus, keymap'us ir transition table'us
-- galite rasti /usr/lib/kbd/ arba /usr/share/kbd/
katalogo pakatalogiuose.
Iš ftp://ftp.vdu.lt/pub/Linux/lt/linux-lith.tgz atsisiunčiau Baltic RIM lentelės šriftus bei keymap'us. Šriftas pieštas pačių, atrodo gana nekaip. Tada aš tiesiog pasidariau šriftą pats. Pasinaudojęs Mariaus Gedmino šriftų grab'inimo utilita, pasiėmiau savo BIOS'o ir LIR'o šriftą KBL lentelėje. Tada savo gamybos programėle išardžiau jį į atskirus ženklus, sudėjau iš kelių šriftų kažką panašaus į Latin-7, ir vėl surinkau savo programėle. Taip gavau 16 pikselių aukščio konsolinį lietuvišką šriftą.
O dėl keymap'o -- atsisiunčiau Mariaus Gedmino paketą lit-con-0.99 ir, pamodifikavęs savaip vieną iš failų, gavau gerą lietuvišką klaviatūros išdėstymą. Beje, minėtame pakete be skirtingų lietuviškų klaviatūros išdėstymų yra ir keletas leituviškų konsolės šriftų.
Tada įrašiau mano šrifto ir keymap'o pakrovimą i
/etc/rc.d/rc.sysinit ir taip gavau lietuviškas raides konsolėje.
Nesenai man krito į akį šriftas 8x14thin... Jame raidės nupaišytos viengubo storio linijomis, kaip X'ų terminaliniuose fontuose. Aš jį išplėčiau, padariau virš 300 simbolių šriftą, kuriame suptilpo visa 437 pseudografika, visi Latin-1 simboliai, rusiškos raidės, lietuviškos raidės ir daugiau. Tą šriftą rinkdamasis neužmiršau padaryti tvarkingą SFM, ir dabar naudoju tą šriftą konsolėje, kai man reikia lietuviškų, rusiškų, ar dar kokių raidžių.