# &kdm;-håndbogen

Neal
Crook

    nac@forth.org

Steffen
Hansen

    stefh@dit.ou.dk

Udvikler
Lauri
Watts

    lauri@kde.org

Tester
Erik Kjær
Pedersen

    erik@binghamton.edu

Oversætter
2000
Neal Crook
2000-12-12
0.05.02

Dette dokument beskriver &kdm; KDE-skærmhåndtering. &kdm; er også kendt som Login-håndtering.

KDE
kdm
xdm
skærmhåndtering
login-håndtering

## Indledning

&kdm; giver en grafisk grænseflade der lader dig logge ind på et system. Den beder dig om et brugernavn og kodeord, godkender brugeren og begynder kørslen af en 'session'. &kdm; er en "drop-ind" erstatning for xdm, X-skærmhåndteringen, og den er bedre på en del måder.

Brugergrænsefladen til &kdm; er gennem to dialogbokse. Hoveddialogboksen har disse egenskaber:

- Et "Login"-felt for dig til at indtaste dit brugernavn.

- Et "Kodeords"-felt for dig til at indtaste dit kodeord.

- Et område til venstre for "Login" og "Kodeords"felterne som kan bruges til at vise enten et statisk billede eller et analogt ur.

- (Hvis man vil) et grafisk billede af hver bruger (for eksempel, et digitaliseret fotograf). Det at klikke på et billede er ækvivalent til at skrive det tilknyttede brugernavn i "Login"-feltet. (Denne egenslab er en efterligning af login-boksen på IRIX).

- En "sessionstype" drop-ned-boks der tillader &kdm; at blive brugt til at starte sessioner med forskellige vindueshåndteringer eller skrivebordsmiljøer installeret på systemet, inkluderende KDE, KDE2 og GNOME.

- En "Kør!"-knap der kigger efter om brugernavn/kodeords-kombinationen er korrekt og forsøger at starte en session af den valgte type.

- En "Annullér"-knap der rydder teksten fra "Login" og "Kodeords"-felterne.

- (Hvis man vil) en "Luk-ned"-knap der viser "Luk-ned"-dialogboksen.

"Luk-ned"-dialogboksen viser nogle radioknapper der tillader et af følgende at blive valgt:

Luk ned

  Luk systemet ned på en kontrolleret måde, gør parat til at tage strømmen af.

Genstart

  Luk systemet ned og genstart. For systemer der bruger Lilo, vil en valgfri drop-ned-boks tillade dig at vælge en bestemt operativsystem-kerne til at blive brugt ved genstarten.

Genstart X-Server

  Stop og genstart X-serveren. Typisk vil du måske have brug for at bruge dette valg hvis du har ændret din X11-indstilling på en eller anden måde.

Konsol-tilstand

  Stop X-serveren og vend tilbage til systemet i konsoltilstand. Dette opnås ved at bringe systemet ned til køre-niveau 3. Typisk vil systemhåndteringen måske behøve at bruge denne indstilling for opgradering eller re-konfigurering af X11 software.

Tryk på "O.k."-knappen initierer den valgte handling; tryk på "Annullér"-knappen vender tilbage til hoveddialogboksen for &kdm;.

Næste kapitel forklarer hvordan man indstiller &kdm;. De følgende kapitler beskriver hvordan man indstiller sit system for at kunne bruge &kdm;, hvordan man bygger og installerer &kdm; fra kildekode, og hvordan man lærer mere om &kdm; og KDE-projektet.

## Indstilling af &kdm;

I dette kapitel antages det at &kdm; allerede er oppe og kører på dit system, og at du blot ønsker at ændre dens opførsel på en eller anden måde. Hvis dit problem er mere alvorligt, så skip fremad til senere kapitler.

Ved &kdm;'s opstart, læser den sin indstilling fra filen `kdmrc`. Da &kdm; må køre nogen bruger er logget på, er denne ikke knyttet til nogen bestemt bruger. Derfor er det ikkemuligt at have en brugerspecifik `$HOME/share/config/kdmrc`-fil; alle brugere deles om den fælles version af `kdmrc`, placeret i `$KDEDIR/share/config/kdmrc`. Det følger fra dette at indstillingen af &kdm; kun kan ændres af de brugere der har skrive-adgang til `$KDEDIR/share/config/kdmrc` (normalt begrænset til systemadministratorer logget på som "root").

Du kan se `kdmrc`-filen der er i brug for øjeblikket på dit system (som standard placeret i `$KDEDIR/share/config/kdmrc`), og du kan indstille &kdm; ved at redigere denne fil. Alternativt, kan du bruge det grafiske indstillingsværktøj der kommer med KDE's kontrolcenter (under Programmer System Login-håndtering), som er beskrevet i Kontrolcentrets hjælpefiler.

Resten af dette kapitel beskriver indholdet af `kdmrc`-filen. Hvis du er tilfreds med at bruge det grafiske indstillingsværktøj, er der ikke noget behov for at læse videre.

Der er fire afsnit i `kdmrc`:

### KDM

Nøglerne i dette afsnit er:

    StdFont
    FailFont
    GreetFont
    GreetString
    SessionTypes
    LogoArea
    LogoPixmap
    ShutdownButton
    Shutdown
    Restart
    ConsoleMode
    UserView
    Users
    NoUsers
    SortUsers
    GUIStyle

En kort beskrivelse af nøglerne:

`*Font`

  En skrifttypestreng formateret på denne måde: Courier,12,5,iso-8859-1,50,0.

`GreetString`

  Titlen på &kdm;'s login-vindue.

`SessionTypes`

  En komma-adskilt liste af sessionsargumenter, sædvanligvis brugt til at vælge en bestemt vindueshåndtering. Standard er `Sessionstyper=kde,failsafe`.

`LogoArea`

  Kontrollerer hvad der vises i det nedre venstre hjørne af login-vinduet. Kan være enten `KdmLogo` (i hvilket tilfælde det billede der angives af `Logo-billede` vises) eller `Kdm-ur` (i hvilket tilfælde et ur vises).

`LogoPixmap`

  Angiver det billede der vises i det nedre venstre hjørne af login-vinduet når Logo-område=KdmLogo.

`ShutdownButton`

  Lukned-knap kontrollerer hvornår lukned-knappen vises og kan være en af `Alle`, `Ingen`, `Kun root` og `kun konsol`. Betydningen af `Alle` og `Ingen` er meget klar. Hvis du vælger `Kun konsol` kan du ikke lukke ned udefra. Hvis du vælger `Kun root` vil du blive bedt om at indtaste root-kodeordet før nedlukningen vil gå videre.

`Shutdown and Restart`

  Kommandoerne der skal køres ved henholdsvis nedlukning og genstart. (Standard er henholdsvis: `/sbin/halt` og `/sbin/reboot`.

`ConsoleMode`

  Den kommandostreng der bruges af konsoltilstand-tilvalget for "Lukned"-knappen. (Standard er: `/sbin/init `3``). Denne mulighed er ikke tilgængelig under BSD.

`UserView`

  Hvis dette er sat til "`1`", vil en grafisk visning af brugerne blive vist i &kdm;-vinduet.

`Users`

  En komma-adskilt liste af brugernavne der vil blive vist i den grafiske brugervisning. Hvis `Brugervisning` er sat til "1" og `Brugere`-indgangen mangler, vil &kdm; kigge efter brugere i kodeordsfilen `/etc/passwd`. Brugerne der vises er de der har et rigtigt navn ved siden af deres login-navn, en hjemmemappe og en standard skal - resten springes over. &kdm; vil kigge i `$KDEDIR/share/apps/kdm/pics/users/` for en ikon for hver bruger. Hvis en ikon ved navn `persmed.png` findes, vil &kdm; bruge den til at vise brugeren persmed. Hvis ikke, vil &kdm; bruge `default.png`.

  &kdm; kan håndtere ikoner af forskellige størrelser, men resultatet ser rodet ud. Løsningen på dette er at bruge et program som KDE's Pixie, (eller GNU Image Manipulation Program, (gimp) eller John Bradley's XV,) til at konvertere alle dine billeder til samme størrelse. En størrelse 64x64 skulle give nok opløsning, og passer med de standardikoner der følger med. Disse to programmer kan også bruges til at konvertere billeder fra forskellige formater til png-format.

`NoUsers`

  En komma-adskilt liste af brugernavne der ikke bliver vist. Brug dette til at filtrere "pseudo-brugere" som `sync` og `shutdown` væk fra brugervisningen.

`SortUsers`

  Hvis dette er sat til "`0`", vil listen af brugere blive vist i den rækkefølge den bliver læst. Standarden er at vise brugerne i sorteret rækkefølge.

`GUIStyle`

  Kan være enten `Motif` eller `Windows`.

### KDMDESKTOP

Dette afsnit er forældet. I tidligere udgaver af &kdm; kunne det bruges til kontrollere en baggrundsskærm før login. Den grafiske indstilling for &kdm; vil måske stadig generere dette afsnit, men det ignoreres af &kdm;.

### Locale

Dette afsnit håndteres af et af KDE's standard-biblioteker. De eneste nøgler som det er sandsynligt har nogen virkning er:

    Country
    Language
    Charset

En kort beskrivelse af nøglerne:

`Country`

  indikerer landet. Kig i `$KDEDIR/share/locale/l10n` for den fuldstændige liste af landekoder understøttet af dit system. Landekoden bruges til at finde filen `$KDEDIR/share/locale/l10n/country_code/entry.desktop` som bruges til at give lokalspecifik information såsom tids- og datoformater og det lokale møntsymbol.

`Language`

  indikerer sproget der bruges &kdm; (standard: `C`, repræsenterende US-engelsk). Denne værdi kan ændres af `KDE_LANG` miljøvariablen.

`Charset`

  indikerer det tegnsæt der bruges (standard: `iso-8859-1`).

Hvis du ændrer nøglerne men al dialogteksten forbliver engelsk, betyder dette formodentlig at du ikke har oversættelser installeret på dit system.

### Lilo

Lilo (Linux Loader) er en opstart-håndtering der ofte bruges på GNU/Linux-systemer. Lilo kommer med ekstensiv dokumentation (se man lilo til en begyndelse). Dette afsnit indstiller mekanismer for genstart af systemet ved brug af Lilo. Nøglerne er:

    Lilo
    LiloCommand
    LiloMap

En kort beskrivelse af nøglerne:

`Lilo`

  Kontrollerer om Lilo bruges til at genstarte systemet (standard: `FALSE`). Når denne nøgle er sat til `TRUE`, vil "lukned"-dialogboksen indeholde en ekstra drop-ned indstillingsboks ved siden af "genstart"-radioknappen. Denne drop-ned tillader dig at vælge det kerne-billede der vil blive brugt når systemet startes igen. Listen af billeder laves ved at spørge Lilo map-filen.

`LiloCommand`

  Placeringen af Lilo-programmet (standard: `/sbin/lilo`).

`LiloMap`

  Placeringen af Lilo-mapfilen. Mapfilen vedligeholdes af Lilo og indeholder en liste af kerner (udgaver af operativsystemet) til opstart (standard: `/boot/map`).

## Indstilling af dit system til at bruge &kdm;

Dette kapitel antager at dit system allerede er indstillet til at køre X-Windows-systemet, og at du kun har behov for at indstille det til at tillade grafisk login.

### Opsætning af &kdm;

Den fundamentale ting der kontrollerer om din computer starter op som en terminal (konsoltilstand) eller en grafisk login-skærm er standard-køreniveauet. Køreniveauet sættes af programmet /sbin/init under kontrol af indstillingsfilen `/etc/inittab`. Standard-køreniveauerne brugt af forskellige &UNIX;-systemer (og forskellige Linux-distributioner) varierer, men hvis du kigger i `/etc/inittab` vil begyndelsen af den se ud som noget i retning af dette:

    # Default runlevel. The runlevels used by RHS are:
    # 0 - halt (Do NOT set initdefault to this)
    # 1 - Single user mode
    # 2 - Multiuser, without NFS
    # 3 - Full multiuser mode
    # 4 - unused
    # 5 - X11
    # 6 - reboot (Do NOT set initdefault to this)

    id:3:initdefault:

Alt undtagen den sidste linje i dette i dette uddrag er kommentarer. Kommentarerne viser at køreniveau 5 bruges til X11 og at køreniveau 3 bruges til multibruger-tilstand uden X11 (konsoltilstand). Den sidste linje angiver at standard-køreniveauet for systemet er 3 (konsoltilstand). Hvis dit system for øjeblikket bruger grafisk login (for eksempel, ved brug af xdm) er dets standard-køreniveau det, der er angivet for X11.

Køreniveauet med grafisk login (xdm) for nogle almindelige Linux-distributions er:

- 5 for Red Hat 3.x og senere, og for Mandrake

- 4 for Slackware

- 3 for S.u.S.E. 4.x og 5.x

Det første skrift ved indstilling af dit system er at du sikrer dig at du kan starte &kdm; fra kommandolinjen. Når det virker kan du ændre din systemindstilling så &kdm; starter automatisk hver gang du genstarter dit system.

For at teste &kdm;, må du først bringe dit system til et køreniveau der ikke kører xdm. For at gøre dette udgiv en kommando som:

    /sbin/init 3

I stedet for taller "`3`" skal du angive det passende køreniveau for konsoltilstand på dit system.

Dernæst skal du finde dit xdm-indstillingskatalog; normalt `/etc/X11/xdm/` eller `/usr/X11R6/lib/X11/xdm/`. Indstillingskataloget indeholder filen `Xsetup_0`. Hvis du bygger &kdm; fra kildekode og `configure`-trinnet ikke kan finde dette katalog, vil det installere en ny udgave af `Xsetup_0` fra en skabelonfil i &kdm;-kildetræet. Du kan inkludere linjen:

    kdmdesktop

I din fil for at vise noget pæn baggrund (billeder og baggrundsfarver). (Jeg er ikke sikker på om dette stadig virker; det er bestemt ikke krævet). Hvis din `KDEDIR` ikke er `/opt/kde` vil du måske skulle ændre stien til `kdmdesktop`.

Hvis dit system bruger 'Pluggable Authentication Modules' (PAM), hvilket er normalt i nyere Red Hat og Mandrake-systemer, skal du tjekke at din PAM-indstilling tillader login gennem den service der hedder `xdm`. Hvis du tidligere brugte xdm med held, skulle du ikke have behov for at lave ændringer på din PAM-indstilling for at bruge &kdm;. `/etc/pam.conf` eller `/etc/pam.d/xdm`. Information om indstilling af PAM går ud over rammerne for denne håndbog, men PAM kommer med omfattende dokumentation (prøv at kigge i `/usr/doc/pam*/html`).

Nu er tiden inde til at teste &kdm; ved at udstede følgende kommando:

    kdm -nodaemon

Hvis du får en &kdm; login-boks og du kan logge på, så er det i orden. Det der hovedsageligt kan gå galt her er at "run-time linker" måske ikke kan finde de delte Qt- eller KDE-biblioteker. Hvis du har en binær distribution af KDE-bibliotekerne, så sørg for at &kdm; er installeret hvor bibliotekerne tror kde er installeret (sædvanligvis `/opt/kde/bin`) og prøv at sætte nogle miljøvariabler til at pege på dine KDE- og Qt-biblioteker. For eksempel:

    export
    KDEDIR=/opt/kde
    export
    QTDIR=/usr/lib/qt2
    export
    PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
    export
    LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib

Hvis det stadig ikke lykkes, så prøv at starte xdm i stedet for, for at sørge for at du ikke lider af et mere alvorligt X-indstillingsproblem.

Når du kan start xdm med held, kan du begynde at erstatte xdm med &kdm;. Dette er igen distributionsafhængigt.

- For Redhat, redigér `/etc/inittab`, kig efter strengen xdm og erstat den med &kdm; (inklusive alle stier).

- For Mandrake starter X11-køreniveauet i `/etc/inittab` skalscriptet `/etc/X11/prefdm`, som er sat op til at vælge blandt adskillige håndteringer, inkluderende &kdm;. Sørg for at alle stierne er rigtige for din installation.

- For S.u.S.E, redigér `/sbin/init.d/xdm` for at tilføje en først linje:

      . /etc/rc.config
      DISPLAYMANAGER=kdm
      export DISPLAYMANAGER

- De fleste andre distributioner er en variation af en af disse.

Hvis du ikke kan lide at ændre `inittab`, er et alternativ at omdøbe `xdm` til `xdm.bak` og gøre `xdm` til et symbolsk link til &kdm;.

Når du er nået hertil kan du teste &kdm; igen ved at bringe dit system til det køreniveau der skal til for at køre &kdm;. For at gøre dette skal du udstede følgende kommandoer:

    /sbin/init 5

I stedet for tallet "`5`" skal du angive det passende køreniveau for at køre X11 på dit system.

Det afsluttende trin er at redigere `initdefault`-indgangen i `/etc/inittab` for at angive det passende køreniveau for X11.

Før du laver denne ændring bør du sørge for at du har en måde at opstarte dit system hvis der opstår et problem. Dette kan være en "redde"-floppy-disk der kommer med dit operativsystems distribution elle en specielt designet "redde"-floppy-disk, såsom `tomsrtbt`. Ignorér blot dette råd hvis du tør!.

Når du genstarter dit system, skulle du ende op med den grafiske &kdm;-login-boks.

Hvis dette ikke lykkes er det mest sandsynlige problem at omgivelserne brugt på opstartstidpunktet er anderledes end omgivelserne der bruges til test på kommandolinjen. Tjek filer såsom `/etc/X11/xdm/Xsetup_0` (og alle de scripter som det starter) for at sørge for at din sti ikke bliver ændret uden at du ved det. Hvis du prøver at få to udgaver af KDE til at sameksistere, skal du passe særligt meget på at den opsætning du bruger for dine `PATH` og `LD_LIBRARY_PATH`-miljøvariabler er konsistente, og at opstarts-scripterne ikke ændrer dem på en eller anden måde.

### Understøttelse af flere vindueshåndteringer

Hoveddialogboksen for &kdm; inkludereren "sessionstype" dropned-boks, som tillader dig at vælge en vindueshåndtering til brug for din session. Dette kapitel beskriver de ændringer du må gøre på dine indstillingsfiler for at kunne understøtte denne egenskab.

De valg der viser sig i "sessionstype" dropned-boksen er indstillede af indgange i `KDM`-afsnittet af `kdmrc`.

Når du logger på ved hjælp af &kdm;, vil skal-scriptet `Xsession` blive kørt. Den sessionstype du vælger vil blive givet videre som et kommandolinje-argument. (`Xsession` findes i `/etc/X11/xdm/` for Redhat og Mandrake, og i `/usr/X11R6/lib/X11/xdm/` for S.u.S.E.). Mens du fejlretter, vil du måske finde det nyttigt at tilføje denne linje til `Xsession`:

    echo "$0 || $1 || $2"
    > $HOME/.Xsession_args

Hvordan du går videre afhænger af hvordan dit system sædvanligvis starter vindueshåndteringer. Her er to forskellige metoder, med eksempler på de ændringer som du skal lave:

- Vindueshåndteringen bliver startet af kommandoer indeni `Xsession`. I dette tilfælde kan du tilføje et 'tilfælde-udsagn' for at starte den ønskede vindueshåndtering. Linux Mandrake bruger denne metode; her er et uddrag fra `Xsession`:

      # now, we see if xdm/gdm/kdm has asked for a specific environment
      case $# in
      1)
          case $1 in
              kde)
              source /opt/kde2/bin/kde1
              exec startkde
              ;;
              kde2)
              source /opt/kde2/bin/kde2
              exec startkde
              ;;
          	failsafe)
      	exec xterm -geometry 80x24-0-0
      	;;
      	default)
      	;;
      	*)
      	exec /bin/sh -c "$(/usr/sbin/chksession -x=$1)"
      	;;
           esac
      esac

- Vindueshåndteringen startes af et andet script der startes af `Xsession`. I dette tilfælde må du sørge for at parameteren der bliver givet til `Xsession` bliver givet videre til dette andet script. For eksempel, hvis vindueshåndteringen blev startet sådan:

      exec $startup

  vil du blive nødt til at ændre det til:

      exec $startup $@

  Når du har lavet denne ændring, må du spore vejen gennem opstarten for at finde stedet hvor vindueshåndteringen bliver startet. En metode bruger `xinitrc` til at starte vindueshåndteringen; dette tillader brugen af en systemomfattende fil `/etc/X11/xinit/xinitrc` eller en brugerspecifik fil `$HOME/.xinitrc`. Hvis du redigerer `$HOME/.xinitrc`, vil du måske ønske at gemme en kopi i `/etc/skel`, så den vil genereret automatisk i hver brugerkonto du opretter fra nu af. Her er et eksempel `xinitrc` på et system der bruger denne metode:

      #!/bin/bash
      #
      # .xsession/.xinitrc
      #
      # choose a window manager
      #

      defaultwm=kde
      #set the window manager to $1 if it was supplied
      windowmgr=${1:-$defaultwm}

      #start the respective window managers
      case ${windowmgr} in
        kde|kwm|kdestart)
      	WINDOWMANAGER=startkde
      	;;
        fvwm|fvwm2)
      	WINDOWMANAGER=fvwm2
      	;;

        fvwm95)
      	WINDOWMANAGER=fvwm95
      	;;

        *)    WINDOWMANAGER=windowmgr   # default for unknown wm's

      esac

      #
      # load resources
      #

      if [ -f /usr/X11R6/lib/X11/Xmodmap ]; then
          xmodmap /usr/X11R6/lib/X11/Xmodmap
      fi

      if [ -f ~/.Xmodmap ]; then
          xmodmap ~/.Xmodmap
      fi

      if [ -f ~/.Xdefaults ]; then
          xrdb -merge ~/.Xdefaults
      fi

      if [ -f ~/.Xresources ]; then
          xrdb -merge ~/.Xresources
      fi
      #
      # finally start the window manager
      #
      exec $WINDOWMANAGER

## Bygning og installering af kdm

&kdm; er en del af KDE-projektet. De forskellige komponent-dele af KDE-projektet er brudt op i afdelinger, kaldet pakker. &kdm; er en del af pakken der hedder kdebase. Du kan få KDE kildekoder fra forskellige Linux og BSD distributions-CD'er, eller ved at tage dem ned fra www.kde.org eller dets spejle. Hvis du har et forældet kildekodetræ, kan du bruge en af KDE's cvsup-servere til at opdatere det ved brugen af den minimale netværksbåndbredde.

Før du bygger kdebase, skal du have bygget og installeret (i denne rækkefølge) version 2 af qt-biblioteket og KDE-pakkerne kde-qt-addon, kdesupport og kdelibs.

For at bygge en af de ovenstående, må du allerede have X Window-systemet installeret, sammen med en C++ compiler og GNU-indstillingsværktøjerne configure, automake og autoconf.

Hvis de sidste få paragraffer føltes som et fremmedsprog, så er du enten gået ind i en upassende afdeling af denne håndbog, elle du er ved at undergå en fantastisk lære-oplevelse.

Hvis du klarede at tilfredsstille alle forudsætningerne, er det usandsynligt at du vil få problemer med at bygge og installere kdebase. &kdm; bliver installeret i din "`$KDEDIR/bin`"-mappe.

`make `install`` vil overskrive din tidligere `kdmrc`.

## Andre kilder til information

Idet &kdm; er afledt fra xdm, vil xdm man page måske give nyttig baggrundsinformation. For X-relaterede problemer prøv man-siderne X og startx. Hvis du har spørgsmål om &kdm; der ikke er besvarede i denne håndbog, kan du tage fordel af det faktum at &kdm; er udgivet under betingelserne iGNUgnu > Public License: kig på kildekoden.

## Medvirkende og licens

&kdm; er afledt fra, og inkluderer kode fra, xdm.

&kdm; 0.1 blev skrevet af Matthias Ettrich. Alle senere udgaver blev skrevet af Steffen Hansen.

Ophavsretten (c) til Xdm 1990, X Consortium.

Andre dele af &kdm; koden tilhører ophavsretsligt deres forfattere, og licensen er under betingelserne i GNU GPL. Enhver har lov til at ændre &kdm; og redistribuere resultatet når blot navnene på forfatterne bliver nævnt.

&kdm; kræver Qt-biblioteket ,hvis ophavsret tilhører Troll Tech AS.

Bidragydere til dokumentationen:

- Dokumentation skrevet af Steffen Hansen stefh@dit.ou.dk

- Dokumentation udvidet af Gregor Zumsteinzumstein@ssd.ethz.ch. Sidste opdatering 1998/07/09

- Dokumentation revideret for KDE2 af Neal Crooknac@forth.org. Sidste opdatering 2000/07/06

Dokumentation ophavsret Steffen Hansen, Gregor Zumstein og Neal Crook.

Dansk oversættelse ved Erik Kjær Pedersen erik@binghamton.edu

&underFDL; &underGPL;