[ 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