zmena velikosti kurzoru na konzole nefunguje v Suse 7.x
Petr Olivka
petr.olivka na vsb.cz
Úterý Červen 18 08:42:42 CEST 2002
Dekuji za odpoved.
> > curs_set( 2 ); // large
> > getchar();
>
> Ne - 2 znamená visible. Což se může lišit terminál od terminálu. Co ve
2 znamena "very visible", cili neco vice nez normal.
>
> Funguje znamená opravdu velký kurzor? Potom je v těchto distribucích chyba
> buď v definici použitého terminálu nebo v ncurses.
Prosel jsem si podrobne zdrojove texty ncurses a kernelu a mam vypsane
nastaveni sveho terminalu. Nemyslim si, ze by vsak melo jit o chybu
(viz. zdrojak terminfo), naopak to vypada na nejakou divnou upravu v
instalaci Suse.
Z nastaveni terminalu jsou zajimave asi jen 3 hodnoty:
civis=\E[?25l\E[?1c
cnorm=\E[?25h\E[?0c
cvvis=\E[?25h\E[?8c
Tyhle definice jsou i primo ve zdrojaku terminfo v distribuci ncurses
5.0 i 5.2.
Ncurses pouziva pro nastaveni kurzoru {0,1,2} presne tyto hodnoty v
uvedenem poradi.
V kernelu je podpora pro kurzor typu <0-6>, je to v console_struct.h. No
a pokud je hodnota mimo tento rozsah, tak ve vgacon.c se nastavi kurzor
velikosti aktualniho fontu. A to je presne to co potrebuji
(resp.potrebujeme) - a to je to cislo "8" pro "very visible" cursor.
Takze nyni uz ze znalosti chovani kernelu a nasich pozadavku si s tim
snadno poradim.
poli
Další informace o konferenci Linux