Table of Contents

PS1 - Códigos RGB ANSI de 24 bits

1. Códigos de Cores Personalizados

Para definir cores personalizadas, é necessário convertê-las em códigos RGB ANSI de 24 bits, que são suportados por terminais modernos (como o GNOME Terminal).

As cores fornecidas correspondem aos seguintes códigos:

  1. #A150A1 → \[\e[38;2;161;80;161m\] (cor de texto)
  2. #79D485 → \[\e[38;2;121;212;133m\]
  3. #00ACC9 → \[\e[38;2;0;172;201m\]
  4. #ABAEAF → \[\e[38;2;171;174;175m\]

2. Exemplo de PS1 Personalizado

Aqui está um PS1 que utiliza essas cores para diferentes partes do prompt:

PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h \[\e[38;2;0;172;201m\]\w\[\e[0m\] \[\e[38;2;171;174;175m\]\$ "

Explicação dos Componentes:

  1. \[\e[38;2;161;80;161m\]\u: Nome do usuário na cor #A150A1.
  2. \[\e[0m\]: Reseta as cores para evitar que elas vazem.
  3. \[\e[38;2;121;212;133m\]\h: Nome do host na cor #79D485.
  4. \[\e[38;2;0;172;201m\]\w: Diretório de trabalho atual na cor #00ACC9.
  5. \[\e[38;2;171;174;175m\]\$: Prompt final (`$` ou `#`) na cor #ABAEAF.

3. Adicionando ao Bashrc

Para tornar essa configuração permanente, adicione ao arquivo `~/.bashrc`:

echo 'PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h \[\e[38;2;0;172;201m\]\w\[\e[0m\] \[\e[38;2;171;174;175m\]\$ "' >> ~/.bashrc
source ~/.bashrc

4. Resultado Final

Aparência do Prompt: Se você estiver logado como usuário normal:

username@hostname /current/directory $
  1. username em #A150A1.
  2. hostname em #79D485.
  3. Diretório atual em #00ACC9.
  4. `$` em #ABAEAF.

Se for root, o `$` será substituído por `#` automaticamente.

5. Testando Temporariamente

Para testar sem alterar o `.bashrc`, execute diretamente no terminal:

export PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h \[\e[38;2;0;172;201m\]\w\[\e[0m\] \[\e[38;2;171;174;175m\]\$ "

6. Adaptando ao Seu Estilo

Se quiser incluir informações adicionais (como hora ou status do comando anterior), modifique o PS1. Por exemplo:

PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h \[\e[38;2;0;172;201m\]\w \[\e[38;2;171;174;175m\]\$(date +'%H:%M:%S') \$ "

Esse adiciona o horário no formato `HH:MM:SS`.

Outro exemplo

export PS1="\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h \[\e[38;2;0;172;201m\]\w\[\e[0m\] \[\e[38;2;204;174;135m\]\$ \[\e[0m\]"

Cores:

  1. #A150A1
  2. #79D485
  3. #00ACC9
  4. #ABAEAF
  5. #CCAE87

Cores em RGB ANSI 24-bit

\e[38;2;R;G;Bm

Onde:

  1. R, G, B são os valores de vermelho, verde e azul, respectivamente, na escala de 0 a 255.
  2. `38` representa a cor do texto (foreground), e `48` representa o fundo (background).

Representações das cores fornecidas

Conversão das Cores:

  1. RGB: 161, 80, 161
  2. ANSI RGB: `\e[38;2;161;80;161m`
  1. RGB: 121, 212, 133
  2. ANSI RGB: `\e[38;2;121;212;133m`
  1. RGB: 0, 172, 201
  2. ANSI RGB: `\e[38;2;0;172;201m`
  1. RGB: 171, 174, 175
  2. ANSI RGB: `\e[38;2;171;174;175m`
  1. RGB: 204, 174, 135
  2. ANSI RGB: `\e[38;2;204;174;135m`

Exemplo de Uso no PS1: Se você quiser usar todas essas cores em um PS1, por exemplo:

PS1="\[\e[38;2;161;80;161m\]User:\u \[\e[38;2;121;212;133m\]Host:\h \[\e[38;2;0;172;201m\]Dir:\w \[\e[38;2;171;174;175m\]Time:\$(date +'%H:%M:%S') \[\e[38;2;204;174;135m\]$ "

Resumo das Sequências ANSI

Cor RGB ANSI RGB
#A150A1 161, 80, 161 `\e[38;2;161;80;161m`
#79D485 121, 212, 133 `\e[38;2;121;212;133m`
#00ACC9 0, 172, 201 `\e[38;2;0;172;201m`
#ABAEAF 171, 174, 175 `\e[38;2;171;174;175m`
#CCAE87 204, 174, 135 `\e[38;2;204;174;135m`

Urilizado:

export PS1='${debian_chroot:+($debian_chroot)}\[\e[38;2;161;80;161m\]\u\[\e[0m\]@\[\e[38;2;121;212;133m\]\h\[\e[0m\][\[\e[38;2;0;172;201m\]\w\[\e[0m\]]\[\e[38;2;204;174;135m\]\$ \[\e[0m\]'

Outras combinações

Podemos criar outras combinações de cores harmônicas para o prompt PS1 utilizando paletas que seguem princípios de design como análogo, complementar, tríade ou tetrádica. Aqui estão algumas sugestões para você experimentar no seu terminal:

1. Paleta Análoga

Cores próximas no círculo cromático criam uma sensação de harmonia.

PS1='\[\e[38;2;52;152;219m\]\u\[\e[0m\]@\[\e[38;2;41;128;185m\]\h\[\e[0m\][\[\e[38;2;26;82;118m\]\w\[\e[0m\]]\[\e[38;2;72;201;176m\]\$ \[\e[0m\]'

2. Paleta Complementar

Combina cores opostas para um visual vibrante.

PS1='\[\e[38;2;255;87;34m\]\u\[\e[0m\]@\[\e[38;2;33;150;243m\]\h\[\e[0m\][\[\e[38;2;255;235;59m\]\w\[\e[0m\]]\[\e[38;2;76;175;80m\]\$ \[\e[0m\]'

3. Paleta Tríade

Cores equidistantes no círculo cromático, garantindo equilíbrio.

PS1='\[\e[38;2;123;31;162m\]\u\[\e[0m\]@\[\e[38;2;30;136;229m\]\h\[\e[0m\][\[\e[38;2;67;160;71m\]\w\[\e[0m\]]\[\e[38;2;255;112;67m\]\$ \[\e[0m\]'

4. Paleta Tetrádica

Combina duas duplas complementares, criando diversidade.

PS1='\[\e[38;2;244;67;54m\]\u\[\e[0m\]@\[\e[38;2;33;150;243m\]\h\[\e[0m\][\[\e[38;2;76;175;80m\]\w\[\e[0m\]]\[\e[38;2;255;193;7m\]\$ \[\e[0m\]'