Hlavní navigace

SVGATextMode aneb textový režim ještě nezemřel

17. 6. 2004
Doba čtení: 3 minuty

Sdílet

Začalo to nevinně. U nás ve škole nainstalovali FreeBSD a já jsem si všiml, že v textovém režimu je blokový neblikající kurzor. Řekl jsem si "já chci taky!" a začal jsem hledat, jak na to.

Jedna z prvních odpovědí, na kterou jsem narazil, byla „v konfiguračním souboru SVGATextMode volba Cursor 0–31“.

Nainstaloval jsem tedy SVGATextMode zprvu kvůli blokovému kurzoru. Ukázalo se, že je užitečná i jeho hlavní funkce – přepínání textového režimu do vyšších rozlišení. Zprvu jsem si myslel, že toto potřebovat nebudu – mám pouze patnáctku monitor – ale když už jsem měl STM nainstalováno, zkoušel jsem experimentovat s přepínáním režimů a po návratu ke klasickému rozlišení 80×25 znaků mi připadalo, že je na obrazovce příliš málo informací a písmena jsou nesmyslně velká. Proto jsem program začal spouštět již při startu systému, aby nastavil příhodnější rozlišení.

S instalací SVGATextMode jsem neměl žádné problémy, použil jsem RPM balíček dodávaný s distribucí. Tento program tedy nemusíte nijak zvlášť shánět, bývá většinou k dispozici přímo v distribuci systému.

Po instalaci je nutné editovat soubor /etc/TextConfig, který obsahuje konfiguraci grafické karty a monitoru. Soubor je velmi podobný souboru XF86Config (tj. souboru pro konfiguraci X Window Systému) a potřebné hodnoty jako typ grafické karty, horizontální a vertikální frekvence monitoru, časování či ClockChip je možno opsat právě odtamtud – alespoň já jsem s tím se svou kartou S3 neměl žádné problémy.

Kromě možností okolo grafické karty lze nastavit ještě několik dalších věcí – zda před přepnutím módu provést sync(2), což je užitečné v případě, kdy se bojíte zatuhnutí systému, jak velký bude kurzor („blikavost“ ani barvu zde bohužel změnit nelze, tak jsem se uchýlil k jinému řešení – přes escape-sekvence nezávisle na SVGATextMode, viz soubor VGA-softcursor.txt v dokumentaci jádra) a který program se má zavolat těsně po změně módu – tzv. ResetProg (zde volám skript, který restartuje myšového démona GPM, aby změnu proporcí obrazovky vzal v úvahu).

Po změně módu se volá program setfont pro nastavení fontu. Jsou zde čtyři možnosti poměru stran fontu, u každé z nich je nějaký font zvolen. Pro české uživatele je příhodné změnit tyto fonty na jejich iso-8859–2 verze. Bohužel na svém počítači nemám český unicode font všech poměrů stran, takže v některých textových módech mohou např. rámečky v mc vypadat divně. Většiny běžných módů se to naštěstí netýká.

Na konci souboru TextConfig jsou řádky obsahující samotné textové módy. Na začátku řádku je vždy řetězec daný mód pojmenovávající. Při zvolení módu program hlídá, zda lze při dané konfiguraci grafické karty daný mód použít, pokud ne, nepovolí vám do něho přepnout.

Program voláme nejčastěji takto:

/usr/sbin/stm <název-módu>

(stm je link na SVGATextMode). Pro správnou funkci (manipulaci s grafickým HW) potřebuje být program spuštěn s rootovskými právy – já jej proto spouštím pomocí sudo(8).

Nejdůležitější volby:

-t <konfigurační-soubor>
volba jiného konfiguračního souboru než /etc/TextConfig
-r
nespouštěj ResetProg (např.: není potřeba restartovat GPM, když jsme na startu systému a GPM ještě vůbec není spuštěn)
-s
vypiš všechny použitelné módy pro danou konfiguraci grafické karty a monitoru

Druhým programem v balíčku je stm-menu. Zobrazí (použitím curses) menu, ve kterém vypíše názvy všech použitelných (stm -s) módů a po vybrání položky v menu do daného módu přepne.

Pokud se něco pokazí, je možno použít program set80, který vás rychle a bezpečně vrátí do starého dobrého standardního módu 80×25.

A které konkrétní módy se líbí mně? Po startu Linuxu se mi spustí stm s parametrem 80×32×9. Pro dobrou orientaci v mc či manuálových stránkách často pouštím moc hezky vypadající mód 100×37… a to je asi vše. Další módy „objevuju“ jen občas pomocí stm-menu.

Jediná věc, kterou bych programu vytknul, je nespolupráce s Xy, ale za to mohou spíše Xy než stm. Zkrátka pokud jste v Xech, přepnete na konzoli, změníte rozlišení stm, přepnete zpět do Xů, tak po přepnutí na konzoli můžete zažít nemilé překvapení.

Jinak se mi program líbí a už si téměř nedovedu představit práci v textovém režimu ve standardním 80×25.

Na závěr odkaz: freshmeat.net/pro­jects/svgatex­tmode

p.s. pokud chcete konkrétně vědět, jak jsem to vyřešil s tím kurzorem, je to echo -ne ‚\033[?17;15;255c‘

Byl pro vás článek přínosný?

Autor článku