alterando a cor do prompt no bash no konsole

1

Eu altero a cor do meu prompt no console alterando a variável PS1 no meu .bashrc da seguinte forma:

PS1="${debian_chroot:+($debian_chroot)}$COLOR_USER\u@$COLOR_HOST\h:$COLOR_PWD\w>$COLOR_ORDER"

COLOR_ … são variáveis.

Mas ele é substituído pelo esquema de cores do console. Como posso impedir que o console substitua minhas configurações de .bashrc ?

    
por marou 12.02.2017 / 16:11

1 resposta

2

Aplicativos em execução no terminal, como o shell, enviam seqüências de escape para o terminal para alterar a aparência da saída subsequente. A sequência de escape para alterar os atributos de caracteres é CSI Pm m , em que CSI representa a sequência de dois caracteres ESC [ (que pode ser escrita em bash como $'\e[' ) e Pm é uma sequência que determina o que mudar.

Presumivelmente, sua configuração usa as 8 cores padrão, ou seja, $COLOR_USER é algo como $'\e[31m' para obter texto em vermelho. A aparência das cores padrão pode ser escolhida livremente pelo terminal. Se você usar um tema no Konsole, ele poderá ajustar as cores da maneira que lhe agrada. Bons temas simplesmente escolheriam um tom decente, mas alguns temas do Konsole mudam completamente.

Você pode usar uma seqüência de escape que especifica uma cor por seus componentes vermelho-verde-azul: CSI 3 8 ; 2 ; Pr ; Pg ; Pb m (onde Pr , Pg e Pb são os componentes vermelho-verde-azul respectivamente, em uma escala de 0 a 255). Konsole vai respeitar isso. Por exemplo, para obter o nome do usuário em vermelho:

COLOR_USER=$'\e[38;2;128;0;0m'

Como alternativa, use um tema de cores que respeite as cores especificadas pelo aplicativo, em vez de alterá-las completamente.

    
por 13.02.2017 / 01:33