Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

pisanie kolorow na terminal

72 views
Skip to first unread message

Michal

unread,
Dec 5, 2009, 7:14:55 AM12/5/09
to
Pisalem ostatnio program z wykorzystaniem biblioteki curses, niestety
wyglada na to, ze pozwala ona tylko na wykorzystanie osmiu
predefiniowanych kolorow. Niestety to troche malo. Czy sa jakies
rozwiazania, ktore pozwalaly by pisac po terminalu linuxowym wieksza
iloscia kolorow? Da sie napewno to zrobic, poniewaz vim uzywa sporej
ilosci kolorow.

--

Michal

unread,
Dec 5, 2009, 7:26:28 AM12/5/09
to

wyglada na to, ze vim uzywa termcap'a. Czy jest jakis binding do
pythona dla tremcapa. Sam niestety nic nie moge znalezc.

Łukasz Rekucki

unread,
Dec 5, 2009, 9:19:11 AM12/5/09
to
On Dec 5, 1:26 pm, Michal <natural-born-kil...@dontmailme.com> wrote:
> On Sat, 5 Dec 2009 13:14:55 +0100
>

Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
"xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.

Michal

unread,
Dec 5, 2009, 1:15:09 PM12/5/09
to
On Sat, 5 Dec 2009 06:19:11 -0800 (PST)
Łukasz Rekucki <lrek...@gmail.com> wrote:

> Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
> kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
> może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
> "xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
> zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.

kolorow standardowo jest 8(przynajmniej u mnie na terminalu xterm) po
zmianie zmiennej TERM moze byc ich 256. Kolorow na terminalu linuxowym
nie mozna definiowac(trzeba korzystac z takich, ktore juz sa) mozna
natomiast definiowac pary kolorow(kolor napisow, kolor tla).
Pytanie jest czy vim moze definiowac jakos swoje kolory w sposob
dowolny za pomoca termcapa.


--

Łukasz Rekucki

unread,
Dec 5, 2009, 2:19:45 PM12/5/09
to
On Dec 5, 7:15 pm, Michal <natural-born-kil...@dontmailme.com> wrote:
> On Sat, 5 Dec 2009 06:19:11 -0800 (PST)
>
> Łukasz Rekucki <lreku...@gmail.com> wrote:
> > Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
> > kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
> > może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
> > "xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
> > zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.
>
> kolorow standardowo jest 8(przynajmniej u mnie na terminalu xterm) po
> zmianie zmiennej TERM moze byc ich 256. Kolorow na terminalu linuxowym
> nie mozna definiowac(trzeba korzystac z takich, ktore juz sa)
Oczywiście, że można: http://gist.github.com/249812
W szczególności curses.can_change_colors() mówi czy można. Jeśli
zwróci true, to zmiana koloru za pomocą init_color() nie spowoduje
błędu, ale może nie zadziałać (np. mi nie działa pod putty, a pod
xterm jest ok).

> mozna
> natomiast definiowac pary kolorow(kolor napisow, kolor tla).
> Pytanie jest czy vim moze definiowac jakos swoje kolory w sposob
> dowolny za pomoca termcapa.

Tutaj właściwie sobie sam zaprzeczyłeś, bo pierwsze piszesz, że nie
można, a później się pytasz czy można. Tak można, ale terminal nie
musi wiernie odwzorować podanych przez ciebie kolorów.

Michal

unread,
Dec 5, 2009, 4:13:43 PM12/5/09
to
On Sat, 5 Dec 2009 11:19:45 -0800 (PST)
Łukasz Rekucki <lrek...@gmail.com> wrote:


> Oczywiście, że można: http://gist.github.com/249812
> W szczególności curses.can_change_colors() mówi czy można. Jeśli
> zwróci true, to zmiana koloru za pomocą init_color() nie spowoduje
> błędu, ale może nie zadziałać (np. mi nie działa pod putty, a pod
> xterm jest ok).

no wiec u mnie zwraca False, wiec nie moge.

> Tutaj właściwie sobie sam zaprzeczyłeś, bo pierwsze piszesz, że nie
> można, a później się pytasz czy można. Tak można, ale terminal nie
> musi wiernie odwzorować podanych przez ciebie kolorów.

Tak myslalem, ze ktos moze nie zrozumiec. W pierwszym zdaniu chodzilo mi
o to, ze nie mozna definiowac uzywajac curses. W pytaniu natomiast
chodzilo mi o to czy mozna wogole(uzywajac innych operacji niz z
curses) definiowac te kolory. Pytanie, wiec mialo sens i jest dalej
otwarte.


--

Michal

unread,
Dec 5, 2009, 4:19:13 PM12/5/09
to
On Sat, 5 Dec 2009 22:13:43 +0100
Michal <natural-b...@dontmailme.com> wrote:

>
> Tak myslalem, ze ktos moze nie zrozumiec. W pierwszym zdaniu chodzilo mi
> o to, ze nie mozna definiowac uzywajac curses. W pytaniu natomiast
> chodzilo mi o to czy mozna wogole(uzywajac innych operacji niz z
> curses) definiowac te kolory. Pytanie, wiec mialo sens i jest dalej
> otwarte.

sprawdzilem wlasnie co zwraca funkcja can_change_color przy ustawionej
zmiennej TERM na terminal 256 colorowy i zwraca true, przy 8 kolorach
zwracala false i stad wzial sie caly watek. Pytanie, wiec jest juz nie
aktualne. Dzieki za wszelka pomoc.

Radomir Dopieralski

unread,
Dec 6, 2009, 4:39:21 AM12/6/09
to

Domyslnie masz 8 kolorow, jak doliczysz do tego bold to masz 16.


--
Radomir Dopieralski, http://sheep.art.pl

Artur M. Piwko

unread,
Dec 7, 2009, 3:57:23 AM12/7/09
to
In the darkest hour on Sat, 5 Dec 2009 19:15:09 +0100,
Michal <natural-b...@dontmailme.com> screamed:

>> Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
>> kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
>> może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
>> "xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
>> zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.
>
> kolorow standardowo jest 8(przynajmniej u mnie na terminalu xterm)

Po dodaniu do koloru | A_BOLD masz kolejne osiem. Ale jeśli o tło
chodzi - nadal osiem.

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:234B ]
[ 09:56:32 user up 12279 days, 21:51, 1 user, load average: 0.13, 0.38, 0.77 ]

I like work: it fascinates me. I can sit and look at it for hours.

Michal

unread,
Dec 7, 2009, 12:34:41 PM12/7/09
to
On Mon, 7 Dec 2009 09:57:23 +0100
"Artur M. Piwko" <milusi.p...@buziaczek.pl> wrote:

> In the darkest hour on Sat, 5 Dec 2009 19:15:09 +0100,
> Michal <natural-b...@dontmailme.com> screamed:
> >> Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
> >> kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
> >> może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
> >> "xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
> >> zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.
> >
> > kolorow standardowo jest 8(przynajmniej u mnie na terminalu xterm)
>
> Po dodaniu do koloru | A_BOLD masz kolejne osiem. Ale jeśli o tło
> chodzi - nadal osiem.

not to mozesz dodac jeszcze A_UNDERLINE. wtedy masz kolejne kombinacje.


>
> --
> [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:234B ]
> [ 09:56:32 user up 12279 days, 21:51, 1 user, load average: 0.13, 0.38, 0.77 ]
>
> I like work: it fascinates me. I can sit and look at it for hours.


--

Gustaw L.

unread,
Dec 7, 2009, 6:45:45 PM12/7/09
to

Ja polecam zamiast curses użycie biblioteki Urwid
W najnowszej wersji 0.9.9 obsługuje paletę 256 kolorów.
Przykłady:
http://excess.org/urwid/examples.html

Oprócz kolorów pozwala na wiele fajnych sztuczek z wykorzystaniem UTF-8.

Artur M. Piwko

unread,
Dec 11, 2009, 3:39:31 AM12/11/09
to
In the darkest hour on Mon, 7 Dec 2009 18:34:41 +0100,

Michal <natural-b...@dontmailme.com> screamed:
>> >> Ale skąd właściwie pomysł, że curses potrafi wyświetlić tylko 8
>> >> kolorów? Przeciętny terminal potrafi wyświetlić 16 kolorów i curses
>> >> może je wszystkie wyświetlić. Jak się zmieni typ terminalu na np.
>> >> "xterm-256color", to jest nawet 256 kolorów.To że jest standardowo
>> >> zdefiniowane 8 par, to nie znaczy, że nie możesz zdefinować więcej.
>> >
>> > kolorow standardowo jest 8(przynajmniej u mnie na terminalu xterm)
>>
>> Po dodaniu do koloru | A_BOLD masz kolejne osiem. Ale jeśli o tło
>> chodzi - nadal osiem.
>
> not to mozesz dodac jeszcze A_UNDERLINE. wtedy masz kolejne kombinacje.
>

Ale A_BOLD faktycznie zmienia barwę kolorów. ZTCP nic podobnego
nie obserwowałem z A_UNDERLINE...

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:231B ]
[ 09:38:43 user up 12283 days, 21:33, 1 user, load average: 0.63, 0.04, 0.98 ]

Windows: the ultimate triumph of marketing over technology.

0 new messages