[ Anterior ]
[ Indice ]
[ Seguinte ]


6. Cómo cambiar o modo texto por defecto de branco sobor de negro

Vas precisar indicarlle ao código de driver do terminal que queres outro predeterminado. Non existen formas estándar de facer isto, mais no caso de Linux tes o programa setterm.

setterm usa a información na base de datos da terminal para aplicar os atributos. As seleccións son feitas da seguinte forma:

setterm -foreground black -background white -store
Onde o -store fai que os cambios actuais sexan os predeterminados para a consola actual. Isto require que o terminal (variable de entorno TERM ) sexa descrito "suficientemente ben" na base de datos de termcap. Se setterm por algunha razón non funciona, aquí hai algunhas alternativas:

6.1 Xterm

Un destes xterms debería estar dispoñible e alomenos un deles soporta cor.
xterm -fg white -bg blue4
color_xterm -fg white -bg blue4
color-xterm -fg white -bg blue4
nxterm -fg white -bg blue4
onde color_xterm soporta a versión a cor de ls. Esta elección particular parecen as cores usadas nun SGI.

6.2 Consola Virtual

Podes modificar o Kernel unha vez e xa está, con darlle uns valores determinados á hora de cargar para as consolas virtuais con secuencias escape. Eu recomendo o parche do kernel se xa compilaches teu propio kernel.

A fonte do kernel esta en /usr/src/linux/drivers/char/console.c sobre a liña 1940 onde deberías modificar:

        def_color       = 0x07;   /* branco */
        ulcolor         = 0x0f;   /* branco negriña */
        halfcolor       = 0x08;   /* gris */
polo apropiado. Eu uso branco sobre azul con:
        def_color       = 0x17;   /* branco */
        ulcolor         = 0x1f;   /* branco negriña */
        halfcolor       = 0x18;   /* gris */
Os números son os atributos de código usados pola tarxeta gráfica en hexadecimal. O díxito máis trascendente (o "1" no exemplo de cores de enriba) é o fondo, e o menos trascendente o primeiro plano. 0 = negro, 1 = azul, 2 = verde, 3 = cian, 4 = vermello, 5 = purpura, 6 = marron / amarelo, 7 = branco. Engade 8 para obter cores "brilantes". Ten en conta que, na maioría dos casos, un fondo brilante == caracteres parpadeantes, fondo pesado. (De sjlam1@mda023.cc.monash.edu.au).

Tamén podes introducir unha nova predeterminación en tempo de execución para unha consola virtual, nun per-display baseado nunha secuencia non estándar ANSI (atopada buscando nas fontes do kernel)

ESC [ 8 ]
que pon o predeterminado coas actuais cores de primeiro plano e fondo. Entón a cadea Reset Atributes (ESC [ m) selecciona estas cores no canto de branco sobre negro.

Vas precisar repetir esta cadea a consola cada vez que reinicies. Dependendo de que para qué uses o teu Linux box, moitos sitios poden ser apropiados:

/etc/issue

Aquí é onde se mostra o "Welcome to Linux xx.yy" en Slackware, e é unha boas elección equipos autónomos (e probablemente unha pestilence para usuarion conectándose con telnet). Este ficheiro créase en tempo de arranque (con Slackware en /etc/rc.d/rc.S; con RedHat en /etc/rc.d/rc.local), e debes modificar as liñas buscando algo así como
echo ""> /etc/issue
echo Benvido a Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue
e trocalo por:
ESCAPE="cambia isto por un caracter escape simple"
echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
echo Benvido a Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue
Este código colocará o cursor, configurará a cor (eiquí branco sobre azul), garda esta selección e limpa o resto da pantalla. A modificación actúa despois de reiniciar o ordenador. Lembra introducior o caracter escape "literal" no arquivo con | C | + | q | en emacs ou | Ctrl | + | v | en vi, porque aparentemente o sh usado normalmente para executar este script non comprende a sintaxe /033.

/etc/profile ou .profile

  if [ "$TERM" = "console" ]; then
      echo "\033[37;44m\033[8]" #
# ou usa setterm.
      setterm -foreground white -background blue -store
  fi

/etc/login ou .login

  if ( "$TERM" == "console" ) then
    echo "\033[37;44m\033[8]"
# ou usa setterm.
      setterm -foreground white -background blue -store
  endif

6.3 Login remoto

Deberías ser capaz de usar o programa setterm como se ensina enriba. Outra vez, isto require que a máquina remota coñeza o sufciente sobre o teu terminal, e que o emulador do terminal que proporcione o login, soporte a cor. Na miña experiencia a mellor emulación vt100 actualmente obtible para outras plataformas son: Ver http://www.columbia.edu/kermit/ para detalles sobre o Kermit.


[ Anterior ]
[ Indice ]
[ Seguinte ]