sunnuntai 19. helmikuuta 2023

Linux-konsolin värit

Asensin äskettäin mutt-sähköpostiohjelman Linux-konsoliin. Samalla huomasin, miten ohjelman värit vaihtuivat käyttämästäni päätteestä ja sen asetuksista riippuen: graafisella työpöydällä Tildan ja Tmuxin alla ajettuna värit olivat kirkkaamman kuin Linux-konsolissa!

Linux-konsolin värikartta sisältää 16 väriä tekstille ja 8-väriä taustalle:

Linux-konsolin värikarttaa ei voi muokata kääntämättä omaa Linux-ydintä! Sen sijaan Tilda ja muut päätteet sisältävät useita erilaisia värikarttoja ja antavat auliisti vaihtaa värikartan toiseen. Tildan värikartoista Linux console vastaa Linux-konsolia:

XFCE4-päätteessä vihreä mustalla vastaa Linux-konsolia:

Värikartan lisäksi tekstin oletusväri voi aiheuttaa värieroja. Oletusväriä käytetään kaikessa tekstissä, mitä ei ole erikseen maalattu tietyllä värillä. Jos oletusväriä ei ole asetettu samaksi, niin tavallisten Linux-komentojen tulosteet näyttävät eri värisiltä eri päätteillä!

Tekstin oletusvärin saa korjattua täsmälleen samaksi Tildan ja XFCE4-päätteen asetuksissa syöttämällä RGB-värikoodin. Suosittelen valitsemaan oletusvärin alla olevasta Linux-konsolin värikartasta:

Nro Väri RGB-koodi
0 Musta 000000
1 Punainen AA0000
2 Vihreä 00AA00
3 Ruskea AA5500
4 Sininen 0000AA
5 Violetti AA00AA
6 Turkoosi 00AAAA
7 Vaaleanharmaa AAAAAA
8 Tummanharmaa 555555
9 Kirkkaanpunainen   FF5555
10 Kirkkaanvihreä 55FF55
11 Keltainen FFFF55
12 Vaaleansininen 5555FF
13 Vaaleanvioletti FF55FF
14 Vaaleanturkoosi 55FFFF
15 Valkea FFFFFF

Linux-konsolissa oletusväri on vaaleanharmaa (väri 7), mutta värin voi vaihtaa ANSI-koodilla. Linux-konsolissa oletusvärin voi asettaa kaikille käyttäjille muokkaamalla /etc/issue tiedostoa tai itselleen muokkamalla .bashrc-tiedostossa komentokehotteen esimerkiksi muotoon:

PS0='\[\033[00;32;40m\033[8]\]'
PS1='\[\033[97m\]\u@\h\[\033[00m\] \[\033[97m\]\W\[\033[92m\]> '

PS0-kehote tulostuu juuri ennen suoritettavaa komentoa. Kehotteessa koodi \033[00;32;40m vaihtaa tekstin väriksi tummanvihreän (väri 2) ja koodi \033[8] asettaa sen oletusväriksi. PS1-kehote sisältää varsinaisen komentokehotteen, joka tulostaa käyttäjänimen (\u), palvelimen nimen (\h) ja nykyisen työhakemiston (\W) valkealla värillä (\033[97m). Lopuksi PS1-kehote valitsee kirkkaanvihreän tekstin (\033[92m), jolla varsinainen komento syötetään.

Jos käytät Linux-consolissa Tmuxia, niin muuta vielä .dircolors tiedostoon rivi:

RESET 00;32;40 # reset to "normal" color

Tämä varmistaa, että valitsemasi oletusväri (tässä vihreä) säilyy myös Tmuxin alla.

Kun rakennat teemoja konsoliohjelmille, niin ota huomioon, että Linux-konsolista poiketen Tilda ja XFCE4-terminaali tukevat kirkkaita taustavärejä:

Omissa teemoissa kannattaa valita taustaväri 0-7, jotta ohjelman värit ovat samanlaisen Linux-konsolissa ja graafisessa ympäristössä!