Kirjoittaja Aihe: PROMPTiin väriä?  (Luettu 2220 kertaa)

SuperOscar

  • Käyttäjä
  • Viestejä: 4059
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
PROMPTiin väriä?
« : 14.08.08 - klo:18.28 »
Näinkin tyhmiä sitä ajattelee aikansa kuluksi:

Olisiko mahdollista saada komentokehote erottumaan värillään muusta konsolin tekstistä?

Lihavoinnit yms. tiedän (%B...%b jne., vai menikö se toisinpäin), mutta pääte-emulaattorin ikkunassa niiden erottuvuus on huono. Ilmeisesti pitäisi saada aikaiseksi jotain VT100-komentosarjoja, mutta... eeh...?
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

SuperOscar

  • Käyttäjä
  • Viestejä: 4059
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: PROMPTiin väriä?
« Vastaus #1 : 14.08.08 - klo:18.36 »
Vastaan taas itselleni :)

Bashissa homma sujuisi näin (turkoosi kehote, joka erottuu aika hyvin):

Koodia: [Valitse]
export PS1="\e[36;40m\u@\h [\w]$\e[0m "
...mutta harmikseni käyttämässäni Zsh:ssa \e ei toimikaan. Täytyy jatkaa harjoituksia.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

anttimr

  • Käyttäjä
  • Viestejä: 1625
    • Profiili
Vs: PROMPTiin väriä?
« Vastaus #2 : 14.08.08 - klo:18.37 »
Lainaus
Olisiko mahdollista saada komentokehote erottumaan värillään muusta konsolin tekstistä?

On mahdollista ja minusta jopa hyödyllistä. Vaikkapa cat tulosteita vierittämällä selatessa näkee heti, miltä riviltä tuloste alkaa.

Internets sisältää tähänkin ohjeet paremmat ohjeet kuin voin ikinä muistaa, mutta laitanpa malliksi kuinka saadaan keltainen prompti.
...
Hmm... vai toiminta on erilaista eri shelleissä.
Tässä kuitenkin relevantti rivi .bashrc:stä

Koodia: [Valitse]
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h\[\033[01;33m\]:\[\033[01;33m\]\w\[\033[01;33m\]\[\033[00m\]$ '
« Viimeksi muokattu: 14.08.08 - klo:18.43 kirjoittanut anttimr »
Ubuntu 12.10 Quantal Quetzal

SuperOscar

  • Käyttäjä
  • Viestejä: 4059
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: PROMPTiin väriä?
« Vastaus #3 : 14.08.08 - klo:18.55 »
Hmm... vai toiminta on erilaista eri shelleissä.

Joo, valitettavasti TODELLA erilaista. Zsh:llekin löytyy ohjeen tapaisia guuglaamalla, mutta vietävän mutkikkaita. Tässä esimerkki:

Lainaus
With these lines you get variables for each color:

autoload colors zsh/terminfo
if [[ "$terminfo[colors]" -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
(( count = $count + 1 ))
done

PR_NO_COLOR="%{$terminfo[sgr0]%}"

So for example with PR_GREEN you get a nice green color.

(Lähde: http://blogs.noname-ev.de/commandline-tools/archives/6-Pimping-zsh-prompt-with-colors.html)

Totta kyllä, tuon jälkeen esim. PROMPT=$PR_YELLOW vaihtaa komentokehotteen (sekä siihen kirjoitettavan tekstin, mitä en halua) värin keltaiseksi, mutta kehote itsessään on tyhjä. Ääh.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

SuperOscar

  • Käyttäjä
  • Viestejä: 4059
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: PROMPTiin väriä?
« Vastaus #4 : 14.08.08 - klo:19.11 »
Okei, tämmöinen kammotus tungettuna .zshrc:hen toimii (mutta ei kehotteesta kokeiltuna ilmeisesti ”escapejen” takia):

Koodia: [Valitse]
### COLORS ###
fg_green=$'%{\e[0;32m%}'
fg_blue=$'%{\e[0;34m%}'
fg_cyan=$'%{\e[0;36m%}'
fg_red=$'%{\e[0;31m%}'
fg_brown=$'%{\e[0;33m%}'
fg_purple=$'%{\e[0;35m%}'

fg_light_gray=$'%{\e[0;37m%}'
fg_dark_gray=$'%{\e[1;30m%}'
fg_light_blue=$'%{\e[1;34m%}'
fg_light_green=$'%{\e[1;32m%}'
fg_light_cyan=$'%{\e[1;36m%}'
fg_light_red=$'%{\e[1;31m%}'
fg_light_purple=$'%{\e[1;35m%}'
fg_no_colour=$'%{\e[0m%}'

fg_white=$'%{\e[1;37m%}'
fg_black=$'%{\e[0;30m%}'

### PROMPT ###
PS1="${fg_light_cyan}%n@%m [%3~]% "

Tuosta uskaltaa tietysti jättää kaikki itselleen turhat värit ennen pitkää määrittelemättä :) mutta muuten ei parane enempi koskea. Lähde: bsdforums.org.

Tässäkin versiossa myös kehotteeseen kirjoitettava teksti on kehotteen väriä, mutta... olkoon.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

SuperOscar

  • Käyttäjä
  • Viestejä: 4059
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: PROMPTiin väriä?
« Vastaus #5 : 14.08.08 - klo:19.19 »
Ja vielä yksi postaus...

Turvallisempi versio, joka nollaa värimuutokset kehotteen lopuksi:

Koodia: [Valitse]
PS1="${fg_light_green}%n@%m [%3~]\$${fg_no_colour} "
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11