shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Cores no dialog


From: Julio C. Neves
Subject: Re: [shell-script] Cores no dialog
Date: Thu, 28 Nov 2013 14:05:06 +0000

Mas a resposta do YAD não foi para vc. Foi para alguém que mencionou este sw para resolver o teu problema. Só que o YAD é o que mais avançado existe em interface para shell e tem até diálogo para escolha de cores e foi isso que quis mostrar para a pessoa que te respondeu.

Por outro lado, antes de responder à pergunta dele, respondi a sua, mostrando 2 formas para se fazer isso no Dialog. A 1a. era uma forma definitiva, onde vc alterava o arquivo de configuração, a outra era com --color \Zx, mais ou menos como vc fez. Eu disse mais ou menos, pq a sua está certa pela metade. Falta restaurar a cor default ao final do verde, pois se vc não o fizer, a partir desse ponto tudo será verde.

No outro e-mail eu escrevi o seguinte:
========================================================================
"O diálogo a seguir é meramente didático e serve para mostrar o texto formado pela caixa anterior. Nele, no entanto é interessante destacar o uso da opção genérica --colors e das cadeias \Z1 e \Zn. Esta opção genérica informa que nos textos desse diálogo, tudo que vier seguindo um \Z é um caracter de formatação. Assim sendo, \Z1 passa a cor do texto para vermelho e \Zn restitui a cor padrão. Mas não esquente a cabeça com isso por enquanto que mais a frente isso estará bem detalhado."
=======================================================================

Em vista disso, posso afirmar que vc está usando um arquivo desnecessário. Substitua:
echo "\Z2Verde" >/tmp/verde.log
--infobox "`cat /tmp/verde.log`"
por um simples:
--infobox \Z2Verde\Zn

Mas veja, não é só isso, além de cores, vc tb pode usar outros atributos. Vou colar outro pedaço do livro "Bombando o Shell" que, além do Dialog, tb fala sobre o YAD, o Zenity e o Kdialog.
=======================================================================

Pode parece maluquice ou sujeira, mas no duro, as cadeias iniciadas por \Z, servem como parâmetros de formatação de cor e estilo dos caracteres, desde que a opção genérica --colors seja usada, quando as cores obedecem a seguinte tabela:

Código Z

Valor

0

black

1

red

2

green

3

yellow

4

blue

5

magenta

6

cyan

7

white

Para voltar à cor padrão, usa-se \Zn.

A formatação de estilo pode ser feita de acordo com a seguinte tabela:

Atributo

Liga

Desliga

Ênfase

b

B

Reverso

r

R

Sublinhado

U

U

Os atributos são cumulativos, assim sendo, a cadeia \Zb\Z1 coloca o texto em modo ênfase (bold) e em vermelho e a cadeia \ZB\Zn desfaz ambos.

Como --colors é uma opção genérica, pode ser usada nos textos de todos os diálogos.

​==============================================================================

Abcs,
Julio
A partir de 02/12 estarei ministrando um curso completo de Shell no Rio de Janeiro.
@juliobash
Facebook? Neither that the cow cough...
​ ;)​




Em 28 de novembro de 2013 00:20, <address@hidden> escreveu:
 


Mestre Julio!
Inestimáveis os ensinamentos seus.

Mas o problema é que nem sempre vai ser verde o texto do arquivo (lembre-se que estou danto um "cat" no arquivo).
Mas eu resolvi aqui. Veja:

$ echo "\Z2Verde" >/tmp/verde.log

$ cat /tmp/verde

\Z2Verde

$ dialog --colors --backtitle "Mostrando cores" --title "Mostrando cores" --infobox "`cat /home/nagios/verde.log`" 15 85

Verde

Ou seja: o dialog tem o parâmetro --colors, e antes da string que vai gravar no arquivo, você coloca \Z1, \Z2,..., conforme a cor que você quiser.

PROBLEMA RESOLVIDO!!!!

Grato, mais uma vez.

Dito

De: Julio C. Neves < address@hidden >
Enviada: Quarta-feira, 27 de Novembro de 2013 13:03
Para: address@hidden < address@hidden >
Assunto: Re: [shell-script] Cores no dialog

 

Pô, no YAD é covardia. No YAD, vc pode até exibir uma palheta de cores para

o usuário escolher a cor desejada.

Veja esse texto, que tb copiei do Livro Bombando o Shell, que além do YAD,

tb mergulha (muito) fundo no Dialog, Zenity e no Kdialog.

Diálogo --color

Esse dialogo, que não existe no *Zenity*, serve para a escolha de uma cor.

Suas principais opções são:

*Opção*

*Efeito*

*--init-color=COR*

Estabelece COR como o padrão (*default*) abrindo a caixa com este valor

*--extra*

Dobra a quantidade de informações sobre a cor na saída

*--palette[=ARQUIVO]*

Usa uma palheta de cores descrita em ARQUIVO. O padrão (*default*) é o

arquivo /etc/X11/rgb.txt.

Vamos analisar o seguinte comando executado diretamente no *prompt:*

*$ yad --color \*

*--init-color gray50 \*

*--extra*

#7f7f7f7f7f7f

[image: Imagem inline 1]

Repare agora uma pesquisa no arquivo /etc/X11/rgb.txt

*$ grep gray50 /etc/X11/rgb.txt*

127 127 127 gray50

Conforme você pode ver pelo grep acima, o padrão RGB para a cor gray50

é127 127 127 e

é exatamente isso que apareceu como valor inicial na palheta de cores, já

que usamos a opção --init-color gray50 (observe também o ponteiro do mouse

mostrando a área pré definida).

A saída do diálogo seria a cor selecionada no formato #rrggbb, onde rr é um

hexadecimal que varia de 00 a ff (de zero a 256 em decimal) e define a

intensidade do vermelho (*R*ed). O mesmo raciocínio poderia ser usado para

gg (verde → *G*reen) e bb (azul → *B*lue). Ora, assim sendo a saída deveria

ser #7F7F7F - que é o valor apresentado na caixa Color *n*ame - no entanto

obtivemos na saída #7f7f7f7f7f7f . Isso se dá devido ao uso da opção--extra.

Outra informação que podemos tirar deste diálogo é que a caixa Color

*n*ameapresenta o valor#7F7F7F, no

entanto obtivemos na saída #7f7f7f7f7f7f . Isso se dá devido ao uso da

opção--extra.

Abcs,

Julio

A partir de 02/12 estarei ministrando um curso completo de Shell no Rio de

Janeiro <http://edx.srv.br/treinamento/shell-script/>.

*@juliobash*

*Facebook? Neither that the cow cough... ​ ;)​*

Em 27 de novembro de 2013 14:06, Cléoson Barreto

escreveu:

>

>

> Olá!

>

> No dialog não sei se tem como. No yad dá pra fazer assim:

>

> $ cat /tmp/verde.log

> VERDE

>

> $ yad --title "Mostrando cores" --text-info --fore=green

> --filename=/tmp/verde.log

>

>

>

>

> Em 27 de novembro de 2013 10:28, nerobarrabas escreveu:

>

>>

>>

>> Mestres,

>>

>> $ echo -e " \033[0;32m Verde \033[0m" > /tmp/verde.log

>>

>> $ cat /tmp/verde.log

>>

>> Verde

>>

>> $ dialog --backtitle "Mostrando cores" --title "Mostrando cores"

>> --infobox "`cat /tmp/verde.log`" 15 85

>>

>> Ao invés de retornar Verde na caixa de diálogo, retorna:

>>

>> ^[[0;32m Verde ^[[0m

>>

>> Teriam idéia de como fazer prá retornar Verde?

>>

>> Grato desde já.

>>

>> Nero

>>

>>

>>

>>

>

>

> --

> []'s

> Cléoson.

>

>

>

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]