Whiptail Hintergrundfarbe dynamisch von Magenta ändern?

Whiptail Hintergrundfarbe dynamisch von Magenta ändern?

Wie kann man die Hintergrundfarbe für Whiptail spontan ändern? Zum Beispiel rot, grün oder gelb, Blau scheint ein Mangel an Farbe zu sein. Ich habe nachgeprüftWie wird man die violette Hintergrundfarbe in Newt-Apps los?was das System wirklich kaputt macht. Wenn Sie permanentes Blau wollen, ist das OK.

Ich weiß, dass es möglich ist, da bei der Installation von Ubuntu beispielsweise die Hintergrundfarbe geändert wird, wenn keine passenden Passwörter angezeigt werden. In keinem der Handbücher für Whiptail wird erläutert, wie das geht.

Ich weiß, dass es mit Molchen zu tun hat, da dies seine Basis ist, aber selbst dort wird einem nicht gesagt, wie.

Antwort1

Die interne Farbpalette von Whiptail kann bei der Kompilierung überschrieben werden, indem ein Pfad zu einer Datei mit Farbdefinitionen angegeben wird.

In Ubuntu sudo update-alternatives --config newt-palettegibt es eine Möglichkeit, zwischen der Ubuntu-Palette und der Originalpalette auszuwählen.

Der Speicherort dieser Datei kann überschrieben werden, indem der NEWT_COLORS_FILEVerweis auf eine alternative Datei festgelegt wird.

Darüber hinaus können beide vorherigen Überschreibungen durch Festlegen der NEWT_COLORSUmgebungsvariable überschrieben werden.

Der Aufbau der Definitionen ist:

name=[fg],[bg][;|:|\n|\r|\t]name2=[fg],[bg]]...

namekann sein:

root                  root fg, bg
border                border fg, bg
window                window fg, bg
shadow                shadow fg, bg
title                 title fg, bg
button                button fg, bg
actbutton             active button fg, bg
checkbox              checkbox fg, bg
actcheckbox           active checkbox fg, bg
entry                 entry box fg, bg
label                 label fg, bg
listbox               listbox fg, bg
actlistbox            active listbox fg, bg
textbox               textbox fg, bg
acttextbox            active textbox fg, bg
helpline              help line
roottext              root text
emptyscale            scale full
fullscale             scale empty
disentry              disabled entry fg, bg
compactbutton         compact button fg, bg
actsellistbox         active & sel listbox
sellistbox            selected listbox

bgund fgkann sein:

color0  or black
color1  or red
color2  or green
color3  or brown
color4  or blue
color5  or magenta
color6  or cyan
color7  or lightgray
color8  or gray
color9  or brightred
color10 or brightgreen
color11 or yellow
color12 or brightblue
color13 or brightmagenta
color14 or brightcyan
color15 or white

Beispiel für die Anzeige eines Meldungsfelds mit rotem Fensterhintergrund:

#!/bin/sh

NEWT_COLORS='
  window=,red
  border=white,red
  textbox=white,red
  button=black,white
' \
whiptail --msgbox "passwords don't match" 0 0

Anhängen an Ubuntu-Farben:

#!/bin/bash

readarray -t newtcols < /etc/newt/palette

newtcols_error=(
   window=,red
   border=white,red
   textbox=white,red
   button=black,white
)

NEWT_COLORS="${newtcols[@]} ${newtcols_error[@]}" \
whiptail --msgbox "passwords don't match" 0 0

verwandte Informationen