# Manuál pro &kdm;

## Úvod

&kdm; poskytuje grafické rozhraní, které umožňuje přihlášení do systému. Čeká na zadaní loginu (uživatelského jména) a hesla, ověří uživatele a spustí jeho "sezení". &kdm; je náhrada za xdm, X Display Manager a je ve více směrech výrazně lepší.

Uživatelské rozhraní &kdm; má dva dialogy. Hlavní okno má tyto funkce:

- Pole "Přihlášení" kam máte zadat uživatelské jméno.

- Pole "Heslo" pro zadání vašeho hesla.

- Oblast vlevo od "Přihlášení" a "Heslo" se dá použít pro zobrazení statického obrázku nebo analogových hodin.

- (Nepovinný) obrázek pro každého uživatele (například naskenovaná fotografie). Kliknutí na obrázek je stejné jako zadaní uživatelského jména do pole Přihlášení. (Toto je imitace přihlášení na systému IRIX).

- Typ relace umožňuje vybrat v &kdm;, aby spustil relaci s různými správci oken nebo prostředími, které máte nainstalované, včetně KDE, KDE2 a GNOME.

- Tlačítko Start ověří kombinaci jméno/heslo a pokusí se spustit relaci podle vybraného typu.

- Tlačítko Zrušit vymaže texty z polí Přihlášení a Heslo.

- (Nepovinné) tlačítko Vypnout zobrazí dialog Vypnout.

Dialog Vypnout zobrazuje skupinu voleb, které umožňují vybrat jednu z těchto akcí:

Vypnout

- Vypne systém bezpečným způsobem.

Restart

- Restartuje počítač. Pro systémy, které používají Lilo umožňuje nepovinný seznam vybrat operační systém, který se má po restartu použít.

Restart X Serveru

- Zastaví a potom restartuje X-server. Toto typicky potřebujete v případě změny nastavení v X11.

Konzolový režim

- Vypne X server a vrátí se do režimu konzole. To se dosáhne zapnutím úrovně 3. Typicky je nutné tuto volbu použít při aktualizaci nebo změně konfigurace softwaru X11.

Stisknutím OK spustíte vybranou akci, stisknutí Zrušit vrátí hlavní dialog &kdm;.

Následující kapitola vysvětluje nastavení &kdm;. Ostatní potom popisují, jako nainstalovat a přeložit &kdm; ze zdrojového kódu a jak se naučit více o &kdm; a projektu KDE.

## Nastavení &kdm;

Tato kapitola předpokládá, že &kdm; už běží na vašem systému a že jen chcete změnit jeho chování. Pokud máte vážnější problém, přejděte na další kapitoly.

Při startu &kdm; načítá nastavení ze souboru `kdmrc`. Protože &kdm; musí běžet předtím, než se přihlásí uživatel, není s ním asociovaný žádný uživatel. Proto není možné použít `$HOME/share/config/kdmrc` ale všichni uživatelé sdílejí společnou verzi `kdmrc` v `$KDEDIR/share/config/kdmrc`. Z toho vyplývá, že nastavení &kdm; může změnit pouze ten, kdo má práva pro zápis do `$KDEDIR/share/config/kdmrc` (normálně to může být pouze administrátor systému "root").

Momentálně používaný soubor je `kdmrc` (obvykle `$KDEDIR/share/config/kdmrc`) a úpravou tohoto souboru můžete &kdm; nastavovat. Nebo lze použít grafický nástroj pro nastavení pomocí Ovládacího centra KDE (v Aplikace Systém Správce přihlášení), které je popsané v pomocných souborech pro KControl.

Zbytek této kapitoly popisuje obsah souboru `kdmrc`. Pokud raději používáte grafické nástroje, už nemusíte číst dále.

V `kdmrc` jsou čtyři části:

### KDM

Klíče v této části jsou:

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

Krátký popis klíčů:

`*Font`

- Řetězec písma formátovaný jako: Courier,12,5,iso-8859-2,50,0.

`GreetString`

- Titulek přihlašovacího okna &kdm;.

`SessionTypes`

- Čárkami oddělený seznam sezení, obvykle používaný pro výběr správce oken. Standardně je to `SessionTyp=kde,failsafe`.

`LogoArea`

- Určuje to, co se zobrazuje v levém dolním rohu okna přihlášení. Může to být buď `KdmLogo` (v tom případě je obrázek zadaný v `LogoPixMap`) nebo `KdmClock` (v tom případě jsou zobrazeny hodiny).

`LogoPixmap`

- Určuje obrázek zobrazený v levém dolním rohu přihlašovacího okna při použití LogoArea=KdmLogo.

`ShutdownButton`

- ShutdownButton ovládá to, jak se má zobrazit tlačítko pro vypnutí. Může to být `All`, `None`, `RootOnly` a `ConsoleOnly`. Význam `All` a `None` je jasný. Pokud použijete `ConsoleOnly`, nemůžete vzdáleně vypnout počítač. Pokud použijete `RootOnly`, musíte zadat heslo roota, aby jste počítač vypnuli.

`Shutdown a Restart`

- Příkazy, které se mají spustit při vypnutí nebo restartu systému. (Standardně: `/sbin/halt` a `/sbin/reboot`).

`ConsoleMode`

- Příkaz, který se použije v možnosti konzolového režimu tlačítka Vypnout. (Standardně `/sbin/init `3``). Tato volba není je dostupná v BSD.

`UserView`

- Pokud je nastaveno na `1`, v okně &kdm; bude zobrazen grafický pohled na uživatele.

`Users`

- Čárkami oddělený seznam jmen uživatelů, kteří budou zobrazeni v grafickém pohledu. Pokud je nastavené `UserView` na `1` a chybí `Users`, &kdm; bude hledat seznam v souboru `/etc/passwd`. Zobrazení jsou tu uživatelé, kteří mají nastavené také reálné jméno, domovský adresář a standardní shell - ostatní se přeskočí. &kdm; bude v `$KDEDIR/share/apps/kdm/pics/users/` hledat ikony pro jednotlivé uživatele. Pokud existuje ikona pojmenovaná `jannovak.png`, &kdm; ji použije pro uživatele jannovak. Pokud neexistuje, &kdm; použije se `default.png`.

  &kdm; dokáže zpracovat ikony různých velikostí, ale výsledek může vypadat divně. Řešením je použít například Pixie (nebo GNU Image Manipulation Program, (gimp) nebo XV od Johna Bradleyho) pro převedení všech obrázků na stejnou velikost. Dostatečná by měla být velikost 64x64 bodů a je stejná, jako mají standardní ikony. Tyto dva programy můžete použít i pro převádění obrázků z různých formátů do png.

`NoUsers`

- Čárkami oddělený seznam uživatelů, kteří nebudou zobrazeni. Použijte ho pro odfiltrování "pseudo-uživatelů" jako `sync` a `shutdown`.

`SortUsers`

- Pokud je nastaveno na `0`, seznam uživatelů bude zobrazen v pořadí, jak bude načten. Standardně se uživatelé zobrazují setříděni.

`GUIStyle`

- Může být buď `Motif` nebo `Windows`.

### KDMDESKTOP

Tato část je zastaralá. Starší verze &kdm; dokázala ovládat pozadí při přihlašování. Grafický konfigurátor &kdm; tuto část stále ještě generuje, ale &kdm; ji ignoruje.

### Locale

Tato část používá standardní knihovnu KDE. Jediné klíče, které mají nějaký efekt, jsou:

    Country
    Language
    Charset

Krátký popis klíčů:

`Country`

- určuje zem. Úplný seznam kódů najdete v `$KDEDIR/share/locale/l10N`. Kód země se používá pro nalezení souboru `$KDEDIR/share/locale/l10n/kod_zeme/entry.desktop`, který obsahuje informace jako je formát času a datumu a symbol lokální měny.

`Language`

- určuje použitý jazyk &kdm; (standardně: `C` pro americkou angličtinu). Hodnotu je možné předefinovat proměnnou `KDE_LANG`.

`Charset`

- určuje použitou znakovou sadu (standard: `iso-8859-2`).

Pokud změníte klávesy, ale všechny texty v dialogu zůstanou anglické, asi to znamená, že nemáte nainstalované překlady.

### Lilo

Lilo (Linux Loader) je správce spouštění, který se často používá na systémech GNU/Linux. Lilo obsahuje podrobnou dokumentaci (pro začátek si přečtěte man lilo). Tato část nastavuje mechanismy pro restart systému pomocí Lilo. Klíče jsou:

    Lilo
    LiloCommand
    LiloMap

Krátký popis klíčů:

`Lilo`

- Ovládá to, zda se použije Lilo pro restartování systému (standardně: `FALSE`). Pokud je tento klíč nastaven na `TRUE`, dialog pro vypnutí obsahuje extra nastavení vedle volby "restartovat". Umožňuje vybrat operační systém, který se má použít při dalším startu systému. Jejich seznam je vytvořen z mapového souboru Lilo.

`LiloCommand`

- Umístění programu Lilo (standardně `/sbin/lilo`).

`LiloMap`

- Umístění mapového souboru pro Lilo. Spravuje ho Lilo a obsahuje seznam verzí jader operačních systémů, které je možné spustit (standard: `/boot/map`).

## Nastavení systému pro použití &kdm;

Tato kapitola předpokládá, že už máte správně nastavený X Window System, ale musíte ho jen změnit tak, aby umožnil grafické přihlášení.

### Nastavení &kdm;

Základní věc, která ovládá to, zda váš počítač spustí terminálové přihlášení (konzolový mód) nebo grafické přihlášení, se nazývá výchozí úroveň (runlevel). Nastavuje ji program /sbin/init v konfiguračním souboru `/etc/inittab`. Výchozí úroveň používaná v různých systémech (a různých distribucích Linuxu) je různá, ale pokud se podíváte do `/etc/inittab`, mělo by tam být něco takovéto:

    # 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:

Všechno kromě posledního řádku jsou komentáře. Ukazují, že úroveň 5 se používá pro X11 a že úroveň 3 se používá pro víceuživatelský mód bez X11 (konzolový mód). Poslední řádek určuje, že výchozí úroveň systému je 3 (konzolový mód). Pokud váš systém momentálně používá grafické přihlášení (například pomocí xdm), výchozí úroveň bude ta, která je určena pro X11.

Úrovně pro grafické přihlášení (xdm) pro některé známé distribuce jsou:

- 5 pro Red Hat 3.x a novější a pro Mandrake

- 4 pro Slackware

- 3 pro S.u.S.E. 4.x a 5.x

Prvním krokem je nastavení systému tak, aby spustil &kdm; z příkazového řádku. Pokud to funguje, můžete změnit nastavení systému tak, že se &kdm; spustí automaticky při každém restartu vašeho počítače.

Pro otestovaní &kdm; nejprve musíte váš systém přivést do úrovně, která nespouští xdm. Použijte takovýto příkaz:

    /sbin/init 3

Místo čísla `3` by jste měli použít správnou úroveň pro konzolový režim na vašem systému.

Dále musíte najít konfigurační adresář xdm, obvykle `/etc/X11/xdm/` nebo `/usr/X11R6/lib/X11/xdm/`. Ten obsahuje soubor `Xsetup_0`. Pokud jste přeložili &kdm; ze zdrojového kódu a krok `configure` nedokázal tento adresář najít, musíte nainstalovat novou verzi `Xsetup_0` ze šablony ve zdrojovém stromě &kdm;. Můžete přidat řádek:

    kdmdesktop

aby váš systém zobrazoval nějaké pěkné pozadí (obrázky a barvy). (Nevím určitě, zda to funguje, ale určitě to není nutné). Pokud `KDEDIR` není `/opt/kde`, budete muset změnit cestu ke `kdmdesktop`.

Pokud váš systém používá Pluggable Authentication Modules (PAM), které jsou přítomny v nových systémech Mandrake a Red Hat, měli by jste ověřit, že nastavení PAM umožňuje přihlášení pomocí služby `xdm`. Pokud jste předtím úspěšně používali xdm, nemělo by být třeba dělat žádné změny ve vašem nastavení PAM, aby jste mohli používat &kdm;. `/etc/pam.conf` nebo `/etc/pam.d/xdm`. Informace o nastavení PAM je mimo rozsah tohoto manuálu, ale PAM obsahuje podrobnou dokumentaci (zkuste hledat v `/usr/doc/pam*/html`).

Nyní je čas otestovat &kdm; pomocí tohoto příkazu:

    kdm -nodaemon

Pokud jste dostali přihlašovací dialog &kdm; a můžete se přihlásit, je to dobře. Hlavní věc, která se tu může pokazit je, že se při běhu nenajdou sdílené knihovny Qt nebo KDE. Pokud máte binární distribuci knihoven KDE, ověřte, že &kdm; je nainstalované tam, kde si to myslí knihovny (obvykle `/opt/kde/bin`) a zkuste nastavit některé proměnné prostředí tak, aby ukazovali na knihovny KDE a Qt. Například:

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

Pokud se vám stále nedaří, zkuste spustit xdm pro ověření toho, že nemáte nějaký vážný problém v nastavení X.

Pokud se vám &kdm; podaří spustit, můžete se pokusit nahradit xdm &kdm;. Toto je zase závislé na distribuci.

- Pro RedHat upravte `/etc/inittab`, hledejte xdm a nahraďte ho &kdm; (včetně celé cesty).

- Pro Mandrake je úroveň X11 uložena v `/etc/inittab` a spustí shellový skript `/etc/X11/prefdm`, který je určený na to, aby se vybralo z více správců obrazovek včetně &kdm;. Ověřte, že máte správně nastavené všechny cesty.

- Pro S.u.S.E upravte `/sbin/init.d/xdm` a přidejte jako první řádek:

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

- Většina distribucí je nějaká variace těchto postupů.

Pokud se vám nelíbí změna souboru `inittab`, můžete přejmenovat `xdm` na `xdm.bak` a nastavit `xdm` jako symbolický odkaz na &kdm;.

V tomto momentě můžete znovu otestovat &kdm; spuštěním vašeho systému v úrovni, která má &kdm; spustit. Použijte na to příkaz:

    /sbin/init 5

Místo čísla `5` použijte správnou úroveň pro spuštění X11 na vašem systému.

Poslední krok je upravit položku `initdefault` v `/etc/inittab` zadáním správné úrovně pro běh X11.

Před touto změnou ověřte, že máte možnost v případě problémů systém restartovat. Možná se vám bude hodit záchranná disketa pro váš operační systém, nebo nějaká speciální záchranná distribuce jako je `tomsrtbt`.

Po restartu systému by se mělo objevit grafické okno &kdm; pro přihlášení.

Pokud nebyl tento krok úspěšný, problém je asi v tom, že prostředí použité při startu systému je jiné než prostředí, které jste použili při testování z příkazové řádky. Ověřte, že soubory `/etc/X11/xdm/Xsetup_0` (a skripty, které spouští) nejsou změněné a že cesty jsou nastavené správně. Pokud se pokoušíte použít naráz dvě verze KDE, dávejte si pozor hlavně na proměnné `PATH` a `LD_LIBRARY_PATH` tak, aby byly konzistentní a startovací skripty je nepřepisovaly.

### Podpora více správců oken

Hlavní dialog &kdm; obsahuje seznam typ sezení, který umožňuje vybrat správce oken, který chcete použít pro sezení. Tato kapitola popisuje změny, které musíte udělat v konfiguračních souborech, aby vám toto fungovalo.

Možnosti v seznamu typ sezení jsou nastavené položkami v části `KDM` souboru `kdmrc`.

Po přihlášení pomocí &kdm; se spustí skript `Xsession`. Vybraný typ sezení se předává jako argument příkazového řádku. (`Xsession` najdete v `/etc/X11/xdm` pro Red Hat a Mandrake a v `/usr/X11R6/lib/X11/xdm` pro S.u.S.E). Při ladění se vám může hodit přidání tohoto řádku do `Xsession`.

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

To, jak budete teď pokračovat, závisí na tom, jak váš systém obvykle startuje správce oken. Existují dva různé přístupy s příklady, co musíte udělat:

- Správce oken se spouští příkazy v `Xsession`. V tomto případě můžete přidat další možnost pro spuštění správného správce oken. Linux Mandrake používá tento způsob, tady je ukázka z `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

- Správce oken se spouští jiným skriptem spuštěným z `Xsession`. V tomto případě musíte ověřit, že parametr předaný `Xsession` se předává i tomuto skriptu. Například se může správce oken spustit takto:

      exec $startup

  musíte ho změnit na:

      exec $startup $@

  Po této změně musíte najít místo v procese startu, kde se spouští správce oken. Jeden přístup používá soubor `xinitrc`. To umožňuje použít systémový soubor `/etc/X11/xinit/xinitrc` nebo uživatelský `$HOME/.xinitrc`. Pokud upravíte `$HOME/.xinitrc`, možná si budete chtít jeho kopii uložit v `/etc/skel`, takže se bude automaticky generovat pro každý nově vytvořený účet. Zde je příklad souboru `xinitrc`:

      #!/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

## Překlad a instalace kdm

&kdm; je součástí projektu KDE. Různé části projektu KDE jsou rozdělené do balíků. &kdm; je část balíku kdebase. Zdrojové kódy KDE získáte z různých distribucí Linuxu a BSD, nebo je můžete stáhnout z www.kde.org a jeho mirrorů. Pokud máte starý strom kódu, můžete použít některý ze serverů cvsup, aby jste ho aktualizovali co nejjednodušeji.

Před překladem kdebase musíte přeložit a nainstalovat (v tomto pořadí) verzi 2 knihovny qt a balíků KDE kde-qt-addon, kdesupport a kdelibs.

Aby jste každý z nich přeložili, musíte už mít nainstalovaný X Window System spolu s překladačem C++ a nástroji GNU configure, automake a autoconf.

Pokud vám několik posledních odstavců přišlo divných, asi jste narazili na nesprávnou část tohoto manuálu, nebo právě zažili něco velkého.

Pokud jste zvládli splnit tyto požadavky, asi nebudete mít žádné problémy s překladem a instalací kdebase. &kdm; je nainstalovaný ve vašem adresáři `$KDEDIR/bin`.

`make `install`` přepíše váš starý `kdmrc`.

## Další zdroje informací

Protože &kdm; vznikl z xdm, může manuálová stránka xdm poskytnout některé zajímavé informace. Při problémech týkajících se X serveru zkuste manuálové stránky X a startx. Pokud máte nějaké otázky o &kdm;, na které vám tento manuál neodpověděl, využijte toho, že &kdm; používá licenci GNU Public License: podívejte se do zdrojového kódu.

## Autoři a licence

&kdm; je odvozený a obsahuje kód z xdm.

&kdm; 0.1 napsal Matthias Ettrich. Všechny novější verze napsal Steffen Hansen.

Xdm je copyright (c) 1990, X Consortium.

Ostatní části kódu &kdm; jsou copyright autorů a licencované pod GNU GPL. Každý může &kdm; změnit a distribuovat výsledek, pokud budou zachované jména autorů.

&kdm; vyžaduje knihovnu Qt, která je copyright TrollTech AS.

Do dokumentace přispěli:

- Dokumentaci napsal Steffen Hansen stefh@dit.ou.dk

- Dokumentaci rozšířil Gregor Zumsteinzumstein@ssd.ethz.ch. Poslední změna 1998/07/09

- Revize dokumentace pro KDE2 Neal Crooknac@forth.org. Poslední změna 2000/07/06

Copyright dokumentace Steffen Hansen, Gregor Zumstein a Neal Crook.

Překlad dokumentace Radek Vybíral Radek.Vybiral@vsb.cz

&underFDL; &underGPL;