Чи є спосіб змінити кольори, які використовуються в консолях TTY в Linux?


14

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

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


Термінали не працюють у вигляді шістнадцяткових кольорів - вони використовують кольорові коди, як ті, які містяться у "/ etc / shell-color".
new123456

1
@ new123456 - У мене немає жодного файлу під назвою "кольори оболонки" десь під/
Austin Hyde

Ага. Ви не вказуєте свій розповсюдження тут - я керую Zenwalk, тому ваш розподіл може відрізнятися. Шукайте, color in bashщоб отримати список усіх втеч.
new123456

2
@ new123456 - Я вже згадував, що використовую Arch, і я не шукаю послідовностей bash escape для кольорів, як \e[0;30mдля чорного, я шукаю спосіб налаштувати фактичний колір під кожен названий колір.
Остін Гайд

1. Вибачте - спочатку я розглядаю теги;) 2. Просто інформація, не зовсім відповідна питанням, але стосується домену.
new123456

Відповіді:


3

Команда setterm - це те, що ви шукаєте.

setterm -foreground black -background white

EDIT

Ні, немає способу змінити назви кольорів, як ви просили. На них не посилаються ніде в прокльонах, термінфо або в самому терміналі. Ви можете змінити визначення кольорових індексів (0-15, я думаю), відредагувавши джерело ядра та перекомпілювавши.


Ні, це не те, що я шукаю. Я хочу змінити визначення кольорів, а не кольору переднього плану та фону.
Остін Гайд

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?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.