Pages

Wednesday, April 19, 2006

Arquivo ~/.colourrc

Não é difícil descobrir pessoas interessadas em mudar as cores da saída do comando "ls --color=auto". Bem, eu também procurei por isso. Particularmente o Ubuntu (recém instalado no meu computador) não estava destacando em vermelho os arquivos compactados. Como eu gosto dessa configuração, eu fui procurar na rede como personalizar as cores.

Achei um link definitivo. Um HowTo da ibiblio.org, efim, quem quiser pode ir ler a informação original, possui muitos detalhes interessantes que eu não usei e não explico aqui, mas resumidamente o processo constitui em declarar uma variável no sistema: a LS_COLORS.

A forma mais fácil de fazer isso é criando um arquivo ~/.colourrc.
Antes de qualquer coisa precisamos de um arquivo básico (para não criar toda a configuração do zero) e obtemos esse arquivo básico com o comando:

dircolors -p >~/.colourrc

Para me ajudar na explicação, eu reproduzo uma parte do arquivo abaixo

# Configuration file for dircolors, a utility to help you set
# the LS_COLORS environment variable used by GNU
# ls with the --color option.

# The keywords COLOR, OPTIONS, and EIGHTBIT
# (honored by the slackware version of dircolors) are
# recognized but ignored.

# Aqui vem declarado todos os terminais na qual as cores
# funcionam é claro que são mais de dois... eu é que
# cortei o resto desse exemplo
TERM linux
TERM xterm

# Abaixo está algumas dicas de como personalizar as cores
# e estilos.
# Mudar as cores significa modificar os códigos numéricos

# Attribute codes:

# 00=none 01=bold 04=underscore 05=blink
# 07=reverse 08=concealed

# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue
# 35=magenta 36=cyan 37=white

# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue
# 45=magenta 46=cyan 47=white


NORMAL 00
FILE 00

DIR 01;34 # destaque para os diretórios
LINK 01;36 # Link simbólico
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
EXEC 01;32 # com permissão de execução

# Abaixo está um dos itens mais interessantes
# permite personalizar as cores de links inválidos
# abaixo está:
# fundo preto (40) com letras vermelhas (31)
# e em negrito (01)
# eu modifico a cor do fundo para amarelo,
# (43) no lugar de (40)
ORPHAN 40;31;01


# Abaixo as personalizações por tipo de arquivo
# cada extensão está seguida por um código
# que é a cor e estilo que o comando retorna para o arquivo
# Podemos, por exemplo, diferenciar o .deb do .rpm
# verá que a lista gerada pelo comando acima é bem
# maior que essa.
.tar 01;31
.deb 01;31
.rpm 01;31
.jar 01;31

# aqui tem outra coisa interessante,
# imagens, vídeos e arquivos de som tem a mesma cor
# e estilo.

# image formats
# Não está errado, ele chama de "image formats"
# tanto as imagens como os vídeos
.jpg 01;35
.avi 01;35

# audio formats
.mp3 01;35
.wav 01;35

Pode pegar o meu ~/.colourrc para servir de exemplo. Esse não muda muita coisa, mas já é diferente do default.

Bem, agora que temos o ~/.colourrc temos que carregar as variáveis de ambiente e fazemos isso através do comando:

eval $(dircolors ~/.colourrc)

Esse comando deve ser executado cada vez que o shell for aberto, nesse caso, eu coloquei no meu ~/.bashrc (a versão do ~/.bashrc disponível no blog ainda não tem isso incluso)

Considerações gerais:
  • É claro que muita coisa pode ser feita com base nessas idéias, a que eu sempre me lembro é que ao invés de usar um ~/.colourrc eu poderia usar um /etc/colourrc, ou seja, definir cores e estilos para todos os usuários programando o /etc/bashrc.
  • Saiba .wav é diferente .WAV ou de .WaV.
  • Só por curiosidade, depois de "instalar" o seu ~/.colourrc digite "echo $LS_COLORS".
  • O nome do arquivo pode ser outro, um .coresrc ou um .cores, o importante é que a chamada de "eval $(dircolors ~/.colourrc)" referencie o arquivo correto no local correto. Eu diria que é interessante que ele seja oculto, essas coisas podem ficar a critério de cada um.
  • Caso exista um ~/.colourrc na sua distro é melhor fazer um backup do arquivo antes.

Technorati Tags:

1 comment:

  1. Mitre,
    Manda esse .conf ai lá na seção de .Confs! :-)

    Pra eu poder publicar ele e guardar pra eternidade, hehehe. Dica boa essa ai!

    ReplyDelete