  Frger p Linux-terminaler
  Thorbjrn Ravn Andersen, ravn@dit.ou.dk Svensk versttning
  av Bjrn Lindblom bluesboy@linux.nu, November -98
  v1.4, 7 August 1997

  De flesta Linux-distributioner har ett 'ls' kommando fr att lista
  innehllet i en katalog och presentera det p ett visuellt bttre stt
  genom att anvnda frger - att konfigurera det p ett bra stt, r
  dock inte alltid s ltt. Det hr dokumentet frklarar de olika aspek
  terna och metoderna fr att ndra instllningarna genom att konfigur
  era existerande mjukvara, och ange platser fr alternativ mjukvara som
  vanligtvis inte inkluderas i Slackware eller Redhat och som kan
  anvndas i de flesta versioner av Unix. HTML-versionen finns ocks
  tillgnglig p min egen hemsida p <http://www.mip.ou.dk/~ravn/colour-
  ls>.
  ______________________________________________________________________

  Innehllsfrteckning


  1. Introduktion

  2. Snabbstart fr de otliga

  3. Har jag allt jag behver?

  4. Vilka frger finns det att vlja p?

  5. Hur man konfigurerar frger med ls

  6. Hur man ndrar standardfrgerna vit-p-svart i textlge

     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 frgsatta displayer blivit mycket vanliga, och
  anvndare har brjat utveckla den hr mjligheten med hjlp av program
  som ger frger fr att p detta stt f en visuell effekt p t.ex.
  reserverade ord i programmeringssprk, eller direkt pminnelse om
  felstavade ord.

  Eftersom konsolen i Linux stder frger, modifierades GNU:s ls-
  kommando snabbt fr att visa frger och detta inkluderades i Slackware
  fr.o.m version 2.0. Frbttrade versioner av dessa patchar har nu
  blivit standard i GNU:s distributioner av ls, och numer br detta
  finnas i alla nya versioner av Linux.

  Den hr texten r en uppdatering av det ursprungliga dokumentet, och
  inkluderar information om x-terminaler och hur man "patchar" krnan.

  Informationen i det hr dokumentet har kontrollerats mot Redhat -
  utgva 4.1 och kompilerades ursprungligen med hjlp av version 2.0.2
  av Slackware med krna 1.1.54. Informationen om "patchning" av krnan
  gjordes p en maskin med Slackware 2.2.0 och krnan 1.2.13, med tcsh
  som standard-skal, och har senare kollats mot en 2.0.27-krna.  Om du
  anvnder ngon annan konfiguration, eller annan Unix-version, skulle
  jag uppskatta att du hr av dig med upplysning om ditt operativsystem
  och version, och om std fr frger till ls- kommandot finns som
  standard.


  2.  Snabbstart fr de otliga

  Om du har en ny distribution av Linux, gr fljande frndringar till
  dessa filer i din hemkatalog. De fungerar efter nsta inloggning.



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

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





  Klart!

  Du kanske ocks vill gra en ``eval `dircolors $HOME/.colourrc`'', fr
  att f dina egna frger. Den hr filen skapas med ``dircolors -p
  >$HOME/.colourrc'' och r bra kommenterad s att det r ltt att veta
  hur man sjlv kan ndra i filen.


  3.  Har jag allt jag behver?

  Frst av allt mste du knna till om du har en version avls som kan
  utfra frgsttning p ett riktigt stt. Testa det hr kommandot i en
  Linux text-konsol (funkar ven i xterm):



       % ls --color




  (% r prompten i ditt skal) Om du fr ett felmeddelande som indikerar
  att ls inte knner till vxeln, behver du installera en nyare version
  av GNU:s filtillbehrs-paket. Om du inte har en lmplig uppgraderings-
  version tillhanda, hmta hem den senaste versionen frn din Linux-sida
  och installera.

  Om du inte fr ett felmeddelande, har du ett ls som frstr kommandot.
  Oturligt nog var programmen som medfljde tidiga versioner av
  Slackware buggiga.ls som medfljer Redhat 4.1, r version 3.13 och den
  r bra.



       % ls --version
       ls - GNU fileutils-3.13




  Om du kr kommandot ``ls -- color'' p en textbaserad konsol i Linux,
  skall det ge frgsttning som standard p ditt system, och du kan nu
  bestmma dig fr om du vill ndra p ngonting.

  Om du kr kommandot i xterm, kanske du inte fr ngon frgsttning.
  Som med ls i sig sjlv, stder inte xterm-programmet frger fr
  program som krs i xterm-fnster - senare versioner av xterm stder
  dock frger. Om ditt xterm inte stder frger, br du ladda hem en
  nyare version - se beskrivning i slutet av det hr dokumentet. Under
  tiden kan du vxla till textlge och fortstta drifrn.


  4.  Vilka frger finns det att vlja p?

  Det hr skriptet (tack till alla som snt mig bash-versioner) visar
  standard uppsttning p frgkombinationer i konsolen. Om inga frger
  syns, stder inte konsolen ANSI-frgval.



       #!/bin/bash
       # Visa ANSI-frger.
       #
       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




  Frgrundsfrgens nummer listas till vnster och bakgrundsfrgen i
  rutan. Om du vill ha fetstil, lgger 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 ngot annat n frgrund. Detta r en hrdvaru-
  begrnsning.


  Frgerna r:
          0 - svart    4 - bl            3# r frgrunden
          1 - rd      5 - magenta        4# r bakgrunden
          2 - grn     6 - cyan
          3 - gul      7 - vit            ;1 r fetstil




  5.  Hur man konfigurerar frger med ls

  Om du vill modifiera standarduppsttningen av frger till ls, behver
  du en personlig kopia i din hemkatalog, som du fr med kommandot:



   cd ; dircolors -p > .coloursrc




  Efter att ha modifierat denna vlkommenterade fil, behver du f den
  lst till omgivningsstrngen LS_COLORS. Detta grs vanligtvis med:


       eval `dircolors .colourrc`




  Du mste lgga till den hr raden i din .bashrc/ .cshrc/ .tcshrc
  (beroende p vilket skal du kr), fr att det skall laddas vid inlog
  gningen. Se manual-sidan fr dircolors(1) fr detaljer.



  6.  Hur man ndrar standardfrgerna vit-p-svart i textlge

  Du behver "tala om fr" koden till terminalen att du vill ha en annan
  default. Det finns inget standardiserat stt att gra detta p, men i
  Linux har du setterm-programmet.

  "setterm" anvnder sig av information frn terminalens databas fr att
  stta attributen. Valet grs som


       setterm -foreground black -background white -store




  dr "-store", frutom att ndra frgen gr den nya instllningen till
  default fr nuvarande konsol. Det behvs d att den nuvarande konsolen
  (TERM enviroment-variabeln) beskrivs "bra nog" i termcap:s databas. Om
  setterm av ngon anledning inte fungerar - hr kommer ngra alterna
  tiv:


  6.1.  Xterm


  En av dessa xterms br finnas tillgnglig och tminstone en av dem br
  stda frger.



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




  dr 'color_xterm' stder frgversionen av 'ls'. Detta speciella val
  liknar frgerna som anvnds p en SGI.


  6.2.  Virtuell konsol.



  Du kan modifiera krnan en gng fr alla, likvl som att anvnda en
  "run-time default" fr den virtuella konsolen med en escape-sekvens.
  Jag rekommenderar att modifiera krnan om du tidigare har kompilerat
  din egen krna.

  Kllfilen till krnan r /usr/src/linux/drivers/char/console.c p rad
  1940, dr du skall ndra:



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




  Jag anvnder bl p vit med:


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




  Siffrorna r attributkoderna angivna hexadecimalt och som anvnds av
  grafik-kortet: viktigaste siffran (1:an i exemplet ovan) r bakgrunden
  - den minst signifikativa r frgrunden. 0 = svart, 1 = bl, 2 = grn,
  3 = cyan, 4 = rd, 5 = lila, 6 = brun/gul, 7 = vit. Lgg till 8 fr
  att f "skarpa" frger. Lgg mrke till att, fr det mesta, en ljus
  bakgrund == blinkande bokstver, dovt frgad bakgrund. (Frn
  sjlam1@mda023.cc.monash.edu.au
  <mailto:sjlam1@mda023.cc.monash.edu.au>).


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


               ESC [ 8 ]




  som gr att du fr standardfrger p fr- och bakgrund.  Reset
  Attributes"-strngen (ESC [ m) vljer dessa frger istllet fr vita
  bokstver p svart bakgrund.


  Du r tvungen att "eka" den hr strngen till konsolen varje gng du
  startar om. Beroende p vad du anvnder din Linux-burk till, kan mnga
  olika platser vara lmpliga.


  6.2.1.  /etc/issue


  Det r hr som "Welcome to Linux xx.yy" visas i Slackware, och det hr
  r en bra plats fr fristende utrustning (och blir troligtvis en pest
  fr anvndare som loggar in med telnet). Den hr 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="<Erstt med ett escape-tecken hr>"
         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 hr koden lgger prompten lngst upp till vnster p skrmen,
  byter skrmfrgen (hr vit text p bl bakgrund), sparar det hr valet
  och rensar skrmen frn allt vrigt. Modifieringen brjar fungera
  efter nsta uppstart. Kom ihg att stta in escape-tecknet i filen med
  C-q i Emacs eller Ctrl-v i vi, eftersom skalet som exekverar skriptet
  inte frstr /033 syntaxen.


  6.2.2.  /etc/profile eller .profile



         if [ "$TERM" = "console" ]; then
             echo "\033[37;44m\033[8]" #
       # eller anvnd 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 anvnd setterm.
             setterm -foreground white -background blue -store
         endif





  6.3.  "Remote login"

  Du br kunna anvnda setterm-programmet som visas hr ovan. ter igen,
  det hr krver att fjrrmaskinen knner till din terminal, och att
  terminalemulatorn som skter inloggningen stder frg.  Enligt min
  erfarenhet r den bsta vt100-emulatorn som finns tillgnglig fr
  olika plattformar:


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

    Windows 95/NT:  Kermit/95 (shareware)

    OS/2:           Kermit/95 (shareware).Lgg dock mrke till att
     standard-telnet frstr frger och kan modifieras lokalt.

  Se  <http://www.columbia.edu/kermit/> fr detaljer om Kermit.



  7.  Mjukvara


  All information hr ovan frutstter en GNU/Linux-installation.  Om du
  har ngon annan (som t.ex. en Sun-maskin som kr X), fr du hmta hem
  och kompilera mjukvaran sjlv.

  "Frgversionen" av xterm baseras p standard-xterm-kod med patchar
  tillgngliga p alla X11R6-siter. Xterm som distribueras med R6.3
  skall enligt ryktet innehlla std fr frger, men jag har inte testat
  den versionen.



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




  Se dokumentation om du anvnder en ldre version av X.   Obs: Jag har
  sjlv inte testat den hr.


  frn 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 sjlv lyckats kompilera color-ls p Solaris, SunOS och Irix.


  Jag tar grna emot feedback p den hr texten. Min epost-adress r
  ravn@dit.ou.dk <mailto:ravn@dit.ou.dk>


  --

  Thorbjrn Ravn Andersen
















