Apakah ada cara untuk mengubah warna yang digunakan dalam konsol TTY di Linux?

14

Dengan "mengubah warna", maksud saya sesuatu seperti ganti hitam dari #000000menjadi #111111, dan dengan "konsol TTY", maksud saya apa yang Anda dapatkan ketika Anda melakukan Ctrl+ Alt+ F1dari X11, bukan emulator terminal seperti xtermatau urxvt.

Saya menggunakan Arch Linux, tapi saya pikir ini lebih berkaitan dengan program yang menyediakan TTY ( agetty, saya pikir).

Austin Hyde
sumber
Terminal tidak beroperasi dalam warna hex - mereka menggunakan kode warna seperti yang ditemukan di "/ etc / shell-colors".
new123456
1
@ new123456 - Saya tidak punya file yang disebut "shell-colors" di mana saja di bawah/
Austin Hyde
Hah. Anda tidak menyatakan distribusi Anda di sini - Saya menjalankan Zenwalk, jadi distribusi Anda dapat bervariasi. Cari untuk color in bashmendapatkan daftar semua pelarian.
new123456
2
@ new123456 - Saya memang menyebutkan bahwa saya menggunakan Arch, dan saya tidak mencari urutan bash escape untuk warna, seperti \e[0;30muntuk hitam, saya mencari cara untuk menyesuaikan warna aktual untuk setiap warna yang disebutkan.
Austin Hyde
1. Maaf - Saya melihat tag terlebih dahulu;) 2. Hanya informasi, tidak sepenuhnya berkaitan dengan pertanyaan tetapi berkaitan dengan domain.
new123456

Jawaban:

3

The setterm perintah apa yang Anda cari.

setterm -foreground black -background white

EDIT

Tidak, tidak ada cara untuk mengubah nama warna seperti yang Anda minta. Mereka tidak dirujuk seperti itu di mana saja dalam kutukan, terminfo, atau terminal itu sendiri. Anda dapat mengubah definisi indeks warna (saya kira 0-15) dengan mengedit sumber kernel dan mengkompilasi ulang.

h0tw1r3
sumber
Tidak, bukan itu yang saya cari. Saya ingin mengubah definisi warna, bukan warna foreground dan background.
Austin Hyde
13

Ini sepenuhnya mungkin dan sesuatu yang saya lakukan pada pengaturan Arch saya.

Anda bisa menjatuhkan sesuatu seperti ini di skrip shell dan menjalankannya saat masuk:

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

The \e]P0to \e]PF(base 16) adalah urutan pelarian yang Anda perlukan untuk mengatur 16 (8 setengah terang, 8 cerah) warna. Setelah itu Anda meletakkan warna pengganti yang Anda inginkan misalnya 151515.

Chris Kempson
sumber
sepertinya tidak berfungsi di ubuntu 16.04 dengan bash fwiw
G Gordon Worley III
2

Ini adalah perintah terbaik yang saya tahu:

setterm -clear all -foreground green -bold -store

Sejauh ini saya hanya dapat memiliki 8 warna berbeda. Mungkin lebih dengan menggunakan bright di depan basic 8?

Shubham Chaudhary
sumber