Altera a cor do PS1 com base na cor do plano de fundo?

11

Eu aprendi que posso mudar o formato do PS1, especialmente a cor da string. Então, é possível alterar a cor com base na cor de fundo do shell? Ou, como posso detectar a cor de fundo do shell?

    
por prosseek 07.09.2010 / 21:16

3 respostas

4

Até onde eu sei, não há como consultar as cores do emulador de terminal. Você pode alterá-las com \e]4;NUMBER;#RRGGBB\a (onde NUMBER é o número da cor do terminal (0–7 para cores claras, 8–15 para cores brilhantes) e #RRGGBB é um valor de cor RGB hexadecimal) se o seu terminal suportar essa sequência (referência: ctlseqs ).

Mecanismos poderosos de esquema de cores geralmente têm uma configuração de plano de fundo escuro ou claro que você deve fornecer para indicar se você tem um plano de fundo preto ou cinza escuro ou um plano de fundo cinza ou branco.

Quando você está configurando para si mesmo, geralmente é suficiente decidir que sempre usará a mesma cor de plano de fundo.

    
por 08.09.2010 / 00:02
4

Se você está usando o gnome-terminal, você pode obter a cor de fundo para qualquer perfil, neste caso para o perfil padrão como

   $ gconftool-2 --get /apps/gnome-terminal/profiles/Default/background_color
   #E12FE12FC74D

então você pode decidir como definir seu prompt de acordo.

    
por 08.09.2010 / 22:07
2

Com o xterm, você pode consultar a cor de fundo com a sequência de escape \e]11;?\a . Você precisa ler a resposta do terminal. Existe um comando xtermcontrol que faz isso para você:

~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0
    
por 11.09.2012 / 20:41