Whiptail muda a cor de fundo dinamicamente de magenta?

1

Como alguém mudaria a cor de fundo na hora para o Whiptail? Por exemplo, vermelho, verde ou amarelo, Azul parece ser falta de cor. Eu verifiquei Como se livrar da cor de fundo roxo em aplicativos newt? que realmente quebra o sistema. Se você quiser azul permanente, tudo bem.

Eu sei que isso pode ser feito quando você instala o Ubuntu eles mudam a cor de fundo quando você não consegue senhas correspondentes, por exemplo. Não dos manuais de Whiptail discutem como.

Eu sei que ele lida com newt como esta é a sua base, mas mesmo lá eles não dizem como.

    
por Eric 24.05.2016 / 15:03

1 resposta

3

A paleta de cores interna do whiptail pode ser sobrescrita na compilação, fornecendo um caminho para um arquivo contendo definições de cores.

No ubuntu sudo update-alternatives --config newt-palette fornece uma maneira de selecionar entre a paleta do ubuntu e a paleta original.

A localização deste arquivo pode ser substituída configurando o NEWT_COLORS_FILE para apontar para um arquivo alternativo.

Além disso, as substituições anteriores podem ser substituídas configurando a variável de ambiente NEWT_COLORS .

A estrutura das definições é:

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

name pode ser:

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 e fg podem ser:

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

Exemplo de exibição de uma caixa de mensagem com fundo vermelho na janela:

#!/bin/sh

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

Anexando a cores do 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
    
por user448115 02.06.2016 / 22:01