[ LUGOS ] latin2 & "IBM box drawing" znaki
Andrej Komelj
andrej.komelj na guest.arnes.si
Pon Okt 4 22:39:49 CEST 1999
Sestavil sem latin2 font za VGA konzolo, ki ima na praznih mestih v
razporedu (od 128 do ne_vem_več_koliko) "IBM box drawing" znake. Le-te sem
skopiral iz fonta, ki je v ROM-u moje grafične kartice. Vsebuje pa
naslednje znake (iz terminfo.5):
Glyph Name ACS Name Ascii Default VT100 Name
------------------------------------------------------------------------
upper left corner ACS_ULCORNER + l
lower left corner ACS_LLCORNER + m
upper right corner ACS_URCORNER + k
lower right corner ACS_LRCORNER + j
tee pointing right ACS_LTEE + t
tee pointing left ACS_RTEE + u
tee pointing up ACS_BTEE + v
tee pointing down ACS_TTEE + w
horizontal line ACS_HLINE - q
vertical line ACS_VLINE | x
large plus or crossover ACS_PLUS + n
scan line 1 ACS_S1 ~ o
scan line 9 ACS_S9 _ s
diamond ACS_DIAMOND + `
checker board (stipple) ACS_CKBOARD : a
degree symbol ACS_DEGREE \ f
plus/minus ACS_PLMINUS # g
bullet ACS_BULLET o ~
arrow pointing left ACS_LARROW < ,
arrow pointing right ACS_RARROW > +
arrow pointing down ACS_DARROW v .
arrow pointing up ACS_UARROW ^ -
board of squares ACS_BOARD # h
lantern symbol ACS_LANTERN # I
solid square block ACS_BLOCK # 0
V čem je sploh smisel mojega početja? Če se kje še nahaja kašen revež, ki
vse svoje delo opravlja v konzoli (ne pod X-i), mu bo omenjeni font morda
prišel prav. Ncurses knjižnico se da namreč prepričati, da za zgoraj
naštete znake uporablja znake na določenih mestih v fontu. Vse, kar je
torej potrebno storiti, je spremeniti acsc= polje v terminfo knjižnici. V
tgz datoteki, ki jo dobite na
<http://marvin.fmf.uni-lj.si/~komelj/linux/latin2-line_graphics.tar.gz>
je poleg fonta tudi datoteka acsc-latin2-line_graphics.txt, ki vsebuje
popravljeno acsc= polje. Najnovejša beta različica programa w3m tabele
prikazuje tako naravnost "enkratno". Za nepoznavalce: w3m je WWW
brskljalnik, podoben lyxnu, vendar podpira (v pravem pomenu besede)
okvirje ter tabele. <http://freshmeat.net>
Postopek za namestitev pa je odvisen od vaših želja. Če želite imeti
"system default" nove nastavitve, ves postopek izvedite kot root, drugače
pa kot uporabnik, za katerega naj nastavitve veljajo.
1. Naredite si backup kopijo starega "linux" terminfo opisa:
$ infocmp > linux-old.tinfo
$ cp linux-old.tinfo linux-new.tinfo
2. Popravite datoteko linux-new.tinfo in namesto starega acsc= polja
vpišite novega (iz acsc-latin2-...txt).
3. Namestite novi terminfo opis:
$ tic linux-new.tinfo
4. Naložite nov font -- postopek za izvedbo le-tega pa se razlikuje od
sistema do sistema. Na sistemih s paketom kbd-???.tar.gz se v ta namen
uporablja ukaz "setfont <ime_datoteke.f16>". Na "novejših" sistemih, ki
imajo console-tools, je postopek drugačen (kako?). Prav tako je postopek
spet nekaj posebnega, če uporabljate program SVGATextMode.
Pa še opozorili, da me ne bo kdo takoj "popravil". Font je velikosti 8x16,
zato se v "navadnem" 80x25 načinu znaki za črte ne izrisujejo čisto
pravilno. Za 80x25 način grafična kartica uporabi poseben trik in iz 8x16
znakov naredi 9x16 celice, tako da se črte dotikajo. Pri ročnem nalaganju
posebnih fontov se to ne zgodi, zato so vodoravne črte prekinjene. Žal
nimam niti najmanjše ideje, kako bi se to dalo odpraviti (hm, pri meni na
144x44 (font: 8x16) -- SVGATextMode -- deluje enkratno).
In še eno OPOZORILO (!!!) nimam niti najmanjše ideje, kaj se dogaja z VGA
fonti "pod" VGA framebufferjem, zato ne nalagajte fontov, če imate novejše
sisteme in ne veste čisto natančno, kaj počnete.
Aja, SVGATextMode nalaga fonte po svoje -- setfont ne deluje.
$ man stm
--
Andrej.
... Length of a meeting is square the number of people there.
Dodatne informacije o seznamu Starilist