Как можно было бы изменить цвет фона на лету для Whiptail. Например, красные, зеленые, или желтые, Синие швы, чтобы быть отсутствием цвета. Я проверил, Как избавиться от фиолетового цвета фона в приложениях тритона? который действительно повреждает систему. Если Вы хотите постоянный синий, он в порядке.
Я знаю, что это может быть сделано как тогда, когда Вы устанавливаете Ubuntu, они изменяют цвет фона, когда Вы не получаете соответствие паролям, например. Не руководств для Whiptail обсуждают как.
Я действительно знаю, что это имеет дело с тритоном, поскольку это - его основа, но даже там они не говорят Вам как.
Внутренняя цветовая палитра whiptail может быть перезаписана при компиляции путем обеспечения пути к файлу, содержащему определения цветов.
В человечности sudo update-alternatives --config newt-palette
дает возможность выбора между палитрой человечности и исходной палитрой.
Местоположение этого файла может быть переопределено путем установки NEWT_COLORS_FILE
указать на альтернативный файл.
Кроме того, оба предыдущих переопределения могут быть переопределены путем установки NEWT_COLORS
переменная среды.
Структура определений:
name=[fg],[bg][;|:|\n|\r|\t]name2=[fg],[bg]]...
name
может быть:
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
и fg
может быть:
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
Пример, отображающий окно сообщения с красным фоном окна:
#!/bin/sh
NEWT_COLORS='
window=,red
border=white,red
textbox=white,red
button=black,white
' \
whiptail --msgbox "passwords don't match" 0 0
Добавление к цветам человечности:
#!/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