Comment changer la couleur de fond à la volée pour Whiptail? Par exemple, rouge, vert ou jaune, le bleu semble être un manque de couleur. J'ai vérifié Comment se débarrasser de la couleur de fond pourpre dans les applications newt? qui casse vraiment le système. Si vous voulez le bleu permanent c'est OK.
Je sais que cela peut être fait, par exemple, lorsque vous installez Ubuntu, la couleur d'arrière-plan change lorsque vous n'obtenez pas les mots de passe correspondants. Pas des manuels pour Whiptail discuter comment.
Je sais qu’il s’agit de triton, car c’est sa base, mais même là, ils ne vous disent pas comment.
La palette de couleurs interne de whiptail peut être écrasée lors de la compilation en fournissant un chemin d'accès à un fichier contenant des définitions de couleurs.
Dans ubuntu, Sudo update-alternatives --config newt-palette
permet de choisir entre la palette ubuntu et la palette d'origine.
L'emplacement de ce fichier peut être remplacé en définissant le NEWT_COLORS_FILE
pour qu'il pointe vers un autre fichier.
De plus, les deux remplacements précédents peuvent être remplacés en définissant la variable d'environnement NEWT_COLORS
.
La structure des définitions est la suivante:
name=[fg],[bg][;|:|\n|\r|\t]name2=[fg],[bg]]...
name
peut être:
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
bg
et fg
peuvent être:
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
Exemple affichant une boîte de message avec un arrière-plan de fenêtre rouge:
#!/bin/sh
NEWT_COLORS='
window=,red
border=white,red
textbox=white,red
button=black,white
' \
whiptail --msgbox "passwords don't match" 0 0
Ajouter aux couleurs Ubuntu:
#!/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