Whiptail динамически меняет цвет фона с пурпурного?

Whiptail динамически меняет цвет фона с пурпурного?

Как можно изменить цвет фона на лету для 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

Связанный контент