F�rger p� Linux-terminaler
 Thorbj�rn Ravn Andersen, [email protected] Svensk �vers�ttning
 av Bj�rn Lindblom [email protected], November -98
 v1.4, 7 August 1997

 De flesta Linux-distributioner har ett 'ls' kommando f�r att lista
 inneh�llet i en katalog och presentera det p� ett visuellt b�ttre s�tt
 genom att anv�nda f�rger - att konfigurera det p� ett bra s�tt, �r
 dock inte alltid s� l�tt. Det h�r dokumentet f�rklarar de olika aspek�
 terna och metoderna f�r att �ndra inst�llningarna genom att konfigur�
 era existerande mjukvara, och ange platser f�r alternativ mjukvara som
 vanligtvis inte inkluderas i Slackware eller Redhat och som kan
 anv�ndas i de flesta versioner av Unix. HTML-versionen finns ocks�
 tillg�nglig p� min egen hemsida p� <http://www.mip.ou.dk/~ravn/colour-
 ls>.
 ______________________________________________________________________

 Inneh�llsf�rteckning


 1. Introduktion

 2. Snabbstart f�r de ot�liga

 3. Har jag allt jag beh�ver?

 4. Vilka f�rger finns det att v�lja p�?

 5. Hur man konfigurerar f�rger med ls

 6. Hur man �ndrar standardf�rgerna vit-p�-svart i textl�ge

    6.1 Xterm
    6.2 Virtuell konsol.
       6.2.1 /etc/issue
       6.2.2 /etc/profile eller .profile
       6.2.3 /etc/login or .login
    6.3 "Remote login"

 7. Mjukvara



 ______________________________________________________________________

 1.  Introduktion

 P� senare �r har f�rgsatta displayer blivit mycket vanliga, och
 anv�ndare har b�rjat utveckla den h�r m�jligheten med hj�lp av program
 som ger f�rger f�r att p� detta s�tt f� en visuell effekt p� t.ex.
 reserverade ord i programmeringsspr�k, eller direkt p�minnelse om
 felstavade ord.

 Eftersom konsolen i Linux st�der f�rger, modifierades GNU:s ls-
 kommando snabbt f�r att visa f�rger och detta inkluderades i Slackware
 fr.o.m version 2.0. F�rb�ttrade versioner av dessa patchar har nu
 blivit standard i GNU:s distributioner av ls, och numer b�r detta
 finnas i alla nya versioner av Linux.

 Den h�r texten �r en uppdatering av det ursprungliga dokumentet, och
 inkluderar information om x-terminaler och hur man "patchar" k�rnan.

 Informationen i det h�r dokumentet har kontrollerats mot Redhat -
 utg�va 4.1 och kompilerades ursprungligen med hj�lp av version 2.0.2
 av Slackware med k�rna 1.1.54. Informationen om "patchning" av k�rnan
 gjordes p� en maskin med Slackware 2.2.0 och k�rnan 1.2.13, med tcsh
 som standard-skal, och har senare kollats mot en 2.0.27-k�rna.  Om du
 anv�nder n�gon annan konfiguration, eller annan Unix-version, skulle
 jag uppskatta att du h�r av dig med upplysning om ditt operativsystem
 och version, och om st�d f�r f�rger till ls- kommandot finns som
 standard.


 2.  Snabbstart f�r de ot�liga

 Om du har en ny distribution av Linux, g�r f�ljande f�r�ndringar till
 dessa filer i din hemkatalog. De fungerar efter n�sta inloggning.



      ~/.bashrc:
          alias ls="ls --color"

      ~/.cshrc:
          alias ls 'ls --color'





 Klart!

 Du kanske ocks� vill g�ra en ``eval `dircolors $HOME/.colourrc`'', f�r
 att f� dina egna f�rger. Den h�r filen skapas med ``dircolors -p
 >$HOME/.colourrc'' och �r bra kommenterad s� att det �r l�tt att veta
 hur man sj�lv kan �ndra i filen.


 3.  Har jag allt jag beh�ver?

 F�rst av allt m�ste du k�nna till om du har en version avls som kan
 utf�ra f�rgs�ttning p� ett riktigt s�tt. Testa det h�r kommandot i en
 Linux text-konsol (funkar �ven i xterm):



      % ls --color




 (% �r prompten i ditt skal) Om du f�r ett felmeddelande som indikerar
 att ls inte k�nner till v�xeln, beh�ver du installera en nyare version
 av GNU:s filtillbeh�rs-paket. Om du inte har en l�mplig uppgraderings-
 version tillhanda, h�mta hem den senaste versionen fr�n din Linux-sida
 och installera.

 Om du inte f�r ett felmeddelande, har du ett ls som f�rst�r kommandot.
 Oturligt nog var programmen som medf�ljde tidiga versioner av
 Slackware buggiga.ls som medf�ljer Redhat 4.1, �r version 3.13 och den
 �r bra.



      % ls --version
      ls - GNU fileutils-3.13




 Om du k�r kommandot ``ls -- color'' p� en textbaserad konsol i Linux,
 skall det ge f�rgs�ttning som standard p� ditt system, och du kan nu
 best�mma dig f�r om du vill �ndra p� n�gonting.

 Om du k�r kommandot i xterm, kanske du inte f�r n�gon f�rgs�ttning.
 Som med ls i sig sj�lv, st�der inte xterm-programmet f�rger f�r
 program som k�rs i xterm-f�nster - senare versioner av xterm st�der
 dock f�rger. Om ditt xterm inte st�der f�rger, b�r du ladda hem en
 nyare version - se beskrivning i slutet av det h�r dokumentet. Under
 tiden kan du v�xla till textl�ge och forts�tta d�rifr�n.


 4.  Vilka f�rger finns det att v�lja p�?

 Det h�r skriptet (tack till alla som s�nt mig bash-versioner) visar
 standard upps�ttning p� f�rgkombinationer i konsolen. Om inga f�rger
 syns, st�der inte konsolen ANSI-f�rgval.



      #!/bin/bash
      # Visa ANSI-f�rger.
      #
      esc="\033["
      echo -n " _ _ _ _ _40 _ _ _ 41_ _ _ _42 _ _ _ 43"
      echo "_ _ _ 44_ _ _ _45 _ _ _ 46_ _ _ _47 _"
      for fore in 30 31 32 33 34 35 36 37; do
        line1="$fore  "
        line2="    "
        for back in 40 41 42 43 44 45 46 47; do
          line1="${line1}${esc}${back};${fore}m Normal  ${esc}0m"
          line2="${line2}${esc}${back};${fore};1m Bold    ${esc}0m"
        done
        echo -e "$line1\n$line2"
      done




 F�rgrundsf�rgens nummer listas till v�nster och bakgrundsf�rgen i
 rutan. Om du vill ha fetstil, l�gger du till "1" till parametrarna, s�
 klarbl� p� vit bakgrund blir "37;44;1". Hela ANSI-sekvensen blir d�

 ESC [ 3 7 ; 4 4 ; 1 m



 Observera: Bakgrunden kan inte vara i fetstil, s� du kan inte ha gul
 (bold brown) som n�got annat �n f�rgrund. Detta �r en h�rdvaru-
 begr�nsning.


 F�rgerna �r:
         0 - svart    4 - bl�            3# �r f�rgrunden
         1 - r�d      5 - magenta        4# �r bakgrunden
         2 - gr�n     6 - cyan
         3 - gul      7 - vit            ;1 �r fetstil




 5.  Hur man konfigurerar f�rger med ls

 Om du vill modifiera standardupps�ttningen av f�rger till ls, beh�ver
 du en personlig kopia i din hemkatalog, som du f�r med kommandot:



  cd ; dircolors -p > .coloursrc




 Efter att ha modifierat denna v�lkommenterade fil, beh�ver du f� den
 l�st till omgivningsstr�ngen LS_COLORS. Detta g�rs vanligtvis med:


      eval `dircolors .colourrc`




 Du m�ste l�gga till den h�r raden i din .bashrc/ .cshrc/ .tcshrc
 (beroende p� vilket skal du k�r), f�r att det skall laddas vid inlog�
 gningen. Se manual-sidan f�r dircolors(1) f�r detaljer.



 6.  Hur man �ndrar standardf�rgerna vit-p�-svart i textl�ge

 Du beh�ver "tala om f�r" koden till terminalen att du vill ha en annan
 default. Det finns inget standardiserat s�tt att g�ra detta p�, men i
 Linux har du setterm-programmet.

 "setterm" anv�nder sig av information fr�n terminalens databas f�r att
 s�tta attributen. Valet g�rs som


      setterm -foreground black -background white -store




 d�r "-store", f�rutom att �ndra f�rgen g�r den nya inst�llningen till
 default f�r nuvarande konsol. Det beh�vs d� att den nuvarande konsolen
 (TERM enviroment-variabeln) beskrivs "bra nog" i termcap:s databas. Om
 setterm av n�gon anledning inte fungerar - h�r kommer n�gra alterna�
 tiv:


 6.1.  Xterm


 En av dessa xterms b�r finnas tillg�nglig och �tminstone en av dem b�r
 st�da f�rger.



      xterm -fg white -bg blue4
      color_xterm -fg white -bg blue4
      color-xterm -fg white -bg blue4
      nxterm -fg white -bg blue4




 d�r 'color_xterm' st�der f�rgversionen av 'ls'. Detta speciella val
 liknar f�rgerna som anv�nds p� en SGI.


 6.2.  Virtuell konsol.



 Du kan modifiera k�rnan en g�ng f�r alla, likv�l som att anv�nda en
 "run-time default" f�r den virtuella konsolen med en escape-sekvens.
 Jag rekommenderar att modifiera k�rnan om du tidigare har kompilerat
 din egen k�rna.

 K�llfilen till k�rnan �r /usr/src/linux/drivers/char/console.c p� rad
 1940, d�r du skall �ndra:



              def_color       = 0x07;   /* white */
              ulcolor         = 0x0f;   /* bold white */
              halfcolor       = 0x08;   /* grey */




 Jag anv�nder bl� p� vit med:


              def_color       = 0x17;   /* white */
              ulcolor         = 0x1f;   /* bold white */
              halfcolor       = 0x18;   /* grey */




 Siffrorna �r attributkoderna angivna hexadecimalt och som anv�nds av
 grafik-kortet: viktigaste siffran (1:an i exemplet ovan) �r bakgrunden
 - den minst signifikativa �r f�rgrunden. 0 = svart, 1 = bl�, 2 = gr�n,
 3 = cyan, 4 = r�d, 5 = lila, 6 = brun/gul, 7 = vit. L�gg till 8 f�r
 att f� "skarpa" f�rger. L�gg m�rke till att, f�r det mesta, en ljus
 bakgrund == blinkande bokst�ver, dovt f�rgad bakgrund. (Fr�n
 [email protected]
 <mailto:[email protected]>).


 Du kan ocks� fixa s� att du k�r en viss display p� valfri konsol, med
 en ickestandard-ANSI-sekvens (som du kan hitta om du tittar i koden
 till k�rnan):


              ESC [ 8 ]




 som g�r att du f�r standardf�rger p� f�r- och bakgrund.  Reset
 Attributes"-str�ngen (ESC [ m) v�ljer dessa f�rger ist�llet f�r vita
 bokst�ver p� svart bakgrund.


 Du �r tvungen att "eka" den h�r str�ngen till konsolen varje g�ng du
 startar om. Beroende p� vad du anv�nder din Linux-burk till, kan m�nga
 olika platser vara l�mpliga.


 6.2.1.  /etc/issue


 Det �r h�r som "Welcome to Linux xx.yy" visas i Slackware, och det h�r
 �r en bra plats f�r frist�ende utrustning (och blir troligtvis en pest
 f�r anv�ndare som loggar in med telnet). Den h�r filen skapas vid
 uppstart (slackware i /etc/rc.d/rc:s - Redhat i /etc/rc.d/rc.local),
 och du kan modifiera filen med raderna

   echo ""> /etc/issue
   echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue




 till


        ESCAPE="<Ers�tt med ett escape-tecken h�r>"
        echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
        echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue




 Den h�r koden l�gger prompten l�ngst upp till v�nster p� sk�rmen,
 byter sk�rmf�rgen (h�r vit text p� bl� bakgrund), sparar det h�r valet
 och rensar sk�rmen fr�n allt �vrigt. Modifieringen b�rjar fungera
 efter n�sta uppstart. Kom ih�g att s�tta in escape-tecknet i filen med
 C-q i Emacs eller Ctrl-v i vi, eftersom skalet som exekverar skriptet
 inte f�rst�r /033 syntaxen.


 6.2.2.  /etc/profile eller .profile



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





 6.2.3.  /etc/login or .login




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





 6.3.  "Remote login"

 Du b�r kunna anv�nda setterm-programmet som visas h�r ovan. �ter igen,
 det h�r kr�ver att fj�rrmaskinen k�nner till din terminal, och att
 terminalemulatorn som sk�ter inloggningen st�der f�rg.  Enligt min
 erfarenhet �r den b�sta vt100-emulatorn som finns tillg�nglig f�r
 olika plattformar:


 �  MS-DOS:         MS-Kermit (gratis, inte en Microsoft-produkt)

 �  Windows 95/NT:  Kermit/95 (shareware)

 �  OS/2:           Kermit/95 (shareware).L�gg dock m�rke till att
    standard-telnet f�rst�r f�rger och kan modifieras lokalt.

 Se  <http://www.columbia.edu/kermit/> f�r detaljer om Kermit.



 7.  Mjukvara


 All information h�r ovan f�ruts�tter en GNU/Linux-installation.  Om du
 har n�gon annan (som t.ex. en Sun-maskin som k�r X), f�r du h�mta hem
 och kompilera mjukvaran sj�lv.

 "F�rgversionen" av xterm baseras p� standard-xterm-kod med patchar
 tillg�ngliga p� alla X11R6-siter. Xterm som distribueras med R6.3
 skall enligt ryktet inneh�lla st�d f�r f�rger, men jag har inte testat
 den versionen.



      ftp://ftp.denet.dk/pub/X11/contrib/utilities/color-xterm-R6pl5-patch.gz




 Se dokumentation om du anv�nder en �ldre version av X.   Obs: Jag har
 sj�lv inte testat den h�r.


 fr�n prep.ai.mit.edu eller p� en av mirror-siterna. Ta hem �tminstone
 version 3.13.



      ftp://ftp.denet.dk/pub/gnu/fileutils-3.XX.tar.gz




 Jag har sj�lv lyckats kompilera color-ls p� Solaris, SunOS och Irix.


 Jag tar g�rna emot feedback p� den h�r texten. Min epost-adress �r
 [email protected] <mailto:[email protected]>


 --

 Thorbj�rn Ravn Andersen