Как узнать цвет терминала по умолчанию? (На чистом C.)

Модератор: Модераторы разделов

Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

Собственно, сабж.
Ковыряю ncurses, понадобилось узнать дефолтный цвет фона терминала, но никакой универсальной функции не нашел. Нагуглить не удалось(((
Не подскажете, есть ли какой-либо способ и куда нужно копать?
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

Yaros писал(а):
08.12.2010 14:10
дефолтный цвет терминала
Что это?
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

watashiwa_daredeska писал(а):
08.12.2010 14:42
Yaros писал(а):
08.12.2010 14:10
дефолтный цвет терминала
Что это?

Имеется ввиду цвет фона.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

В общем случае, никак. Нет такого в стандартах. В частных случаях может быть и можно, надо смотреть доки по конкретным терминалам и эмуляторам терминалов.
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

watashiwa_daredeska писал(а):
08.12.2010 15:10
В общем случае, никак. Нет такого в стандартах. В частных случаях может быть и можно, надо смотреть доки по конкретным терминалам и эмуляторам терминалов.
Спасибо. Вобщем, в том-то и проблема, что хотелось универсальности.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать цвет терминала по умолчанию?

Сообщение shotdownsystem »

Yaros писал(а):
08.12.2010 15:22
Спасибо. Вобщем, в том-то и проблема, что хотелось универсальности.

может ncurse решит часть проблем?
puts ("Working, please wait...");while(1);
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

shotdownsystem писал(а):
08.12.2010 18:18
Yaros писал(а):
08.12.2010 15:22
Спасибо. Вобщем, в том-то и проблема, что хотелось универсальности.

может ncurse решит часть проблем?
Пока не смог. Иначе я бы не писал...
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5423
ОС: Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение /dev/random »

Узнать нельзя никак. И никакой ncurses тут не поможет. Кстати, "фон по-умолчанию" не обязан быть цветом. Он может быть, например, изображением, или же прозрачной частью окна.

Когда приложению важно знать, на каком фоне оно выводит данные, оно обычно просто устанавливает свой.
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

/dev/random писал(а):
09.12.2010 17:23
Узнать нельзя никак. И никакой ncurses тут не поможет. Кстати, "фон по-умолчанию" не обязан быть цветом. Он может быть, например, изображением, или же прозрачной частью окна.

Когда приложению важно знать, на каком фоне оно выводит данные, оно обычно просто устанавливает свой.
Спасибо.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать цвет терминала по умолчанию?

Сообщение shotdownsystem »

Yaros писал(а):
09.12.2010 17:06
shotdownsystem писал(а):
08.12.2010 18:18
Yaros писал(а):
08.12.2010 15:22
Спасибо. Вобщем, в том-то и проблема, что хотелось универсальности.

может ncurse решит часть проблем?
Пока не смог. Иначе я бы не писал...

по частью проблем имелось ввиду установить самому, там это сделать можно.

Еще _некоторые_ терминалы могут в окружение писать env vj;yj gjcvjnhtnm

puts ("Working, please wait...");while(1);
Спасибо сказали:
GenchiK
Сообщения: 27

Re: Как узнать цвет терминала по умолчанию?

Сообщение GenchiK »

Хм....А разве так нельзя?

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>

int main()
{
    system("color red");

    return 0;
}


Выведет сообщение о настройках цвета текста и фона) а оттуда уже можно всё сделать))) Если я правильно понял Вас.

Следующая строка сделает фон программы белым а текст чёрным:

Код: Выделить всё

system("color F0");


Удачи!
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

GenchiK писал(а):
27.12.2010 18:27
А разве так нельзя?
Что за команда «color»?
bash: color: command not found
Спасибо сказали:
GenchiK
Сообщения: 27

Re: Как узнать цвет терминала по умолчанию?

Сообщение GenchiK »

watashiwa_daredeska писал(а):
27.12.2010 18:31
GenchiK писал(а):
27.12.2010 18:27
А разве так нельзя?
Что за команда «color»?
bash: color: command not found



color-цвет, хм... у меня всё отлично работает, а у вас какая ос?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

GenchiK писал(а):
27.12.2010 18:27
Следующая строка сделает фон программы белым а текст чёрным:
Хых… Для этого не нужен system(). Есть ncurses — это в разы быстрее (да, для TUI это тоже будет иметь значение, если на каждый чих внешнюю команду дергать).
Спасибо сказали:
GenchiK
Сообщения: 27

Re: Как узнать цвет терминала по умолчанию?

Сообщение GenchiK »

watashiwa_daredeska писал(а):
27.12.2010 18:33
GenchiK писал(а):
27.12.2010 18:27
Следующая строка сделает фон программы белым а текст чёрным:
Хых… Для этого не нужен system(). Есть ncurses — это в разы быстрее (да, для TUI это тоже будет иметь значение, если на каждый чих внешнюю команду дергать).


=) Может и так)))))

Но в этой строчке

Код: Выделить всё

system("help");
Много разных вкусностей =)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

GenchiK писал(а):
27.12.2010 18:33
а у вас какая ос?

work

$ lsb_release -ir Distributor ID: Ubuntu Release: 10.04

home

$ lsb_release -ir Distributor ID: Debian Release: unstable

Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter

Re: Как узнать цвет терминала по умолчанию?

Сообщение shotdownsystem »

Что за команда «color»?

кажись или в ДОСе или в командном Бейсике была такая.
puts ("Working, please wait...");while(1);
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как узнать цвет терминала по умолчанию?

Сообщение watashiwa_daredeska »

GenchiK писал(а):
27.12.2010 18:36
Но в этой строчке

Код: Выделить всё

system("help");
Много разных вкусностей =)
Может, тогда сразу на shell писать? Не?
Спасибо сказали:
GenchiK
Сообщения: 27

Re: Как узнать цвет терминала по умолчанию?

Сообщение GenchiK »

shotdownsystem писал(а):
27.12.2010 18:37
Что за команда «color»?

кажись или в ДОСе или в командном Бейсике была такая.


ДОС)
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Как узнать цвет терминала по умолчанию?

Сообщение Yaros »

GenchiK писал(а):
27.12.2010 18:27

Код: Выделить всё

system("color F0");

Эта строка, как я понял, задает цвет. А мне нужно его просто узнать. Крайне желательно каким-нибудь универсальным способом.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали: