Есть ли способ изменить цвета, используемые в консолях TTY в Linux?

14

Под «альтер цветов», я имею в виду что - то вроде изменения черного цвета от #000000до #111111, и по «TTY консоли», я имею в виду то , что вы получаете , когда вы делаете Ctrl+ Alt+ F1от X11, а не эмулятор терминала , как xtermили urxvt.

Я использую Arch Linux, но я думаю, что это больше связано с программой, предоставляющей TTY ( agettyя думаю).

Остин Хайд
источник
Терминалы не работают в терминах шестнадцатеричных цветов - они используют цветовые коды, подобные тем, которые находятся в "/ etc / shell-colors".
new123456
1
@ new123456 - У меня нет файлов под названием «цвета оболочки» где-либо под/
Остин Хайд,
Да. Вы не указали свой дистрибутив здесь - я использую Zenwalk, поэтому ваш дистрибутив может отличаться. Ищите, color in bashчтобы получить список всех побегов.
new123456
2
@ new123456 - Я упомянул, что я использовал Arch, и я не ищу bash escape-последовательности для цветов, например, \e[0;30mдля черного, я ищу способ настроить фактический цвет для каждого названного цвета.
Остин Хайд,
1. Извините - я сначала смотрю на теги;) 2. Просто информация, не совсем относящаяся к вопросу, но относящаяся к домену.
new123456

Ответы:

3

Команда setterm - это то, что вы ищете.

setterm -foreground black -background white

РЕДАКТИРОВАТЬ

Нет, нет способа изменить названия цветов, как вы просили. На них так не ссылаются ни в curses, terminfo, ни в самом терминале. Вы можете изменить определения цветовых индексов (я думаю, 0-15), отредактировав исходный код ядра и перекомпилировав.

h0tw1r3
источник
Нет, это не то, что я ищу. Я хочу изменить определения цветов, а не цвета переднего плана и фона.
Остин Хайд
13

Это вполне возможно, и это то, что я делаю в настройках Arch.

Вы можете добавить что-то подобное в сценарий оболочки и запустить его при входе в систему:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

\e]P0К \e]PF(основание 16) являются управляющими последовательностями , которые необходимо установить 16 (8 половину яркого, 8 яркие) цвет. После чего вы положите желаемый цвет замены, например 151515.

Крис Кемпсон
источник
похоже, не работает в Ubuntu 16.04 с bash fwiw
G Gordon Worley III
2

Это лучшая команда, которую я знаю:

setterm -clear all -foreground green -bold -store

Вы можете иметь только 8 разных цветов, насколько я могу судить. Может быть, еще немного, используя яркий перед основной 8?

Шубхам Чаудхари
источник