Respostas:
Até onde eu sei, não há como consultar as cores do emulador de terminal. Você pode alterá-los 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 hexadecimal da cor RGB) se o seu terminal suportar essa sequência (referência: ctlseqs ).
Mecanismos poderosos de esquema de cores geralmente possuem uma configuração de plano de fundo escuro ou claro que você deve fornecer para indicar se possui um plano de fundo preto ou cinza escuro ou um plano de fundo branco ou cinza claro.
Quando você está configurando para si mesmo, geralmente basta decidir que você sempre usará a mesma cor de fundo.
TERMe, portanto, não podem ser obtido do meio ambiente.
Se você estiver usando o gnome-terminal, poderá obter a cor de fundo de qualquer perfil, neste caso, 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 adequadamente.
Com o xterm, você pode consultar a cor do plano de fundo com a \e]11;?\asequência de escape. Você precisa ler a resposta do terminal. Há um xtermcontrolcomando que faz isso para você:
~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0