Как можно изменить цвет фона на лету для Whiptail. Например, красный, зеленый или желтый, синий швы, чтобы быть отсутствием цвета. Я проверилКак избавиться от фиолетового цвета фона в приложениях Newt?что действительно ломает систему. Если вы хотите постоянный синий, это нормально.
Я знаю, что это можно сделать, так как при установке Ubuntu они меняют цвет фона, когда вы не получаете соответствующие пароли, например. Ни одно из руководств для Whiptail не обсуждает, как это сделать.
Я знаю, что он имеет дело с тритоном, поскольку это его основа, но даже там вам не говорят, как это сделать.
решение1
Внутренняя цветовая палитра whiptail может быть перезаписана при компиляции путем указания пути к файлу, содержащему определения цветов.
В Ubuntu sudo update-alternatives --config newt-palette
предусмотрена возможность выбора между палитрой Ubuntu и оригинальной палитрой.
Местоположение этого файла можно переопределить, указав 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
Добавление к цветам 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