# &kde; administraatoritele

## &kde; seestpoolt

### Ülevaade

veel kirjutamata

### Kataloogistruktuur

&kde; määratleb failisüsteemi hierarhia, mida kasutab nii &kde; keskkond kui ka kõik &kde; rakendused. Üldiselt salvestab &kde; kõik failid kindla struktuuriga kataloogipuusse.

Vaikimisi kasutab &kde; kaht kataloogipuud:

- Süsteemsel tasandil (näiteks `/opt/kde3`)

- Kasutaja tasandil kasutaja kodukataloogis (tavaliselt `~/.kde`)

Süsteemiadministraator võib muidugi luua täiendavaid kataloogipuid. Neid saab näiteks kasutada profiilideks.

&SuSE; &Linux; näiteks kasutab:

- `$`HOME`/.kde`

- `/opt/kde3` (see on &SuSE;-le omane, teistes distributsioonides võib see olla `/usr` või `/usr/kde3`)

- `/etc/opt/kde3` (see on &SuSE; lisatud)

Kui oled paigaldanud tööriista KIOSK Admin versiooni 0.7 või uuema, saad kasutatavaid kataloogipuid kontrollida käsuga ``kiosktool-kdedirs` `--check``.

&kde; ja &kde; rakendused otsivad faile &kde; kataloogipuid läbi uurides. Seda tehakse kindlas eelistusjärjekorras. Kui fail esineb mitmes kataloogipuus, eelistatakse viimases puus esinevat faili. Tavaliselt eelistatakse kasutaja kodukataloogis asuvat puud. Sellesse kataloogipuusse kirjutatakse ka muudatused.

Info leidmiseks &MIME; tüübi `text/plain` kohta uuritakse järgmisi faile:

- `$`HOME`/.kde/share/mimelnk/text/plain.desktop`

- `/opt/kde3/share/mimelnk/text/plain.desktop`

- `/etc/opt/kde3/share/mimelnk/text/plain.desktop`

Kui kasutaja midagi muudab, kirjutatakse see faili `$`HOME`/.kde/share/mimelnk/text/plain.desktop`

Seadistusfailidega on asjad veidi teisiti. Kui kataloogipuudes leitakse mitu sama nimega konfiguratsioonifaili, kombineeritakse nende sisu. Ka siin on oluline kataloogipuude eelistusjärjekord. Kui kaks faili määratlevad ühe ja sama seadistusvõtme erinevalt, siis kasutatakse suurema eelistusega failis leiduvat väärtust.

Oletame, et on kaks faili järgmise sisuga:

`$`HOME`/.kde/share/config/foobar`

-     Color=red
      Shape=circle

`/etc/opt/kde3/share/config/foobar`

-     Color=blue
      Position=10,10

Failide sisu ühendatakse, nii et tulemus on selline:

    Color=red
    Shape=circle
    Position=10,10

### Kataloogi määratlemine

Keskkonnamuutuja Näidisseadistused Kommentaar
- `KDEHOME` `~/.kde`
- `KDEROOTHOME` `/root/.kde` Spetsiaalne muutuja, et administraator ei kirjutaks kasutaja $KDEHOME'i pärast käsu `su` kasutamist.
- `KDEDIR` `/opt/kde3`, `/usr`, `/usr/kde3` Sõltub tootjast. Kasutab &kde; 2. Kui pole määratud, kasutatakse kompileeritud vaikeväärtuseid.
- `KDEDIRS` `/opt/kde3`, `/usr`, `/usr/kde3` Uus &kde; 3-s. Võib olla mitu asukohta kooloniga eraldatult. Kui pole määratud, kasutatakse $`KDEDIR`.

Neid ei pea määrama, väga hästi sobivad ka vaikeväärtused.

&kde; 2 ja &kde; 3 korraga? Kasuta $`KDEDIR` &kde; 2 ja $`KDEDIRS` &kde; 3 jaoks.

Näiteks ülikoolitöötajal võivad olla sellised seadistused:

    KDEHOME='~/.kde3'
    KDEROOTHOME='/root/.kde3'
    KDEDIRS='/opt/kde_staff:/opt/kde3'

### Kasutaja profiilid

Eeltoodud näites sisaldas `/opt/kde_staff` töötajatele mõeldud täiendavad seadistusi ja rakendusi. Kasutaja profiilid võimaldavad seda kataloogi kasutada ainult kindlatel isikutel, mitte aga teistel. Lisa järgmine kirje faili `/etc/kderc`:

    [Directories-staff]
    prefixes=/opt/kde_staff

Sellega luuakse profiil staff, mis lisab kataloogipuu `/opt/kde_staff`. (Pane tähele, et &SuSE; &Linux; kasutab `/etc/kde3rc`, mitte aga `/etc/kderc`.) Nüüd, kus meil on nimega profiil, saame seda omistada konkreetsetele kasutajatele.

Profiilide seostamiseks kasutajatega tuleb failis `/etc/kderc` määrata seosefail:

    [Directories]
    userProfileMapFile=/etc/kde-user-profile

Nüüd saab profiili omistada kas kasutajanime või &UNIX; grupi järgi, millesse antud kasutaja kuulub.

Profiili "staff" omistamiseks kõigile kasutajale, kes kuuluvad &UNIX; gruppi staff_members, lisa järgmised read faili `/etc/kde-user-profile`:

    [General]
    groups=staff_members
    [Groups]
    staff_members=staff

Profiili võib omistada ka konkreetsele kasutajale:

    [Users]
    bastian=staff

### Kataloogistruktuuri kokkuvõte

Igal &kde; kasutataval kataloogipuul on kindel kataloogistruktuur. Teatud puule ebavajalikud või lihtsalt mittekasutatavad kataloogid võib siiski välja jätta. Näiteks ajutiste failide jaoks mõeldud kataloogid leiab tavaliselt ainult kataloogipuus `$`KDEHOME``, mitte aga teistes.

### Arhitektuurispetsiifilised kataloogid

Arhitektuurist (OS-i ja protsessori tüübist) sõltuvad kataloogid:

`bin`

- &kde; käivitatavate failide jaoks.

`lib`

- &kde; teekide jaoks.

`lib/kde3`

- See kataloog sisaldab komponente, pluginaid ja muid käitusajal laaditavaid objekte, mida kasutavad &kde; 3.`x` rakendused.

### Jagatud kataloogid

Jagatud kataloogid: ei sõltu arhitektuurist, neid võib kasutada erineva arhitektuuriga.

`share/applnk`

- &kde; menüü `.desktop`-failid (vana)

`share/applications`

- &kde; menüü `.desktop`-failid (alates &kde; 3.2)

`share/apps`

- Sisaldab rakendusespetsiifilisi andmefaile. Igal rakendusel on siin oma alamkataloog, kuhu on salvestatud täiendavad andmefailid.

`share/config`

- Seadistustefailid. Tavaliselt on nende nimeks rakenduse nimi, millele on lisatud tähed rc. Erijuhtum on `kdeglobals`: seda faili kasutavad kõik &kde; rakendused.

`share/config/session`

- Seda kataloogi kasutatakse seansihalduseks ja see esineb tavaliselt ainult kataloogipuus `$`KDEHOME``. Seansi lõppedes salvestavad &kde; rakendused siia oma oleku. Failinimed koosnevad rakenduse nimest, millele on lisatud arv. Seansihaldur `ksmserver` salvestab nende arvude viited seanssi faili `ksmserverrc` salvestades.

`share/doc/HTML`

- Selles kataloogis leidub &kde; rakenduste dokumentatsioon. See on korraldatud keelte ja rakenduste järgi. Tavaliselt on selles kataloogis vähemalt kaks faili: `index.docbook` sisaldab dokumentatsiooni vormindamata DocBook-vormingus ning `index.cache.bz2` sisaldab sama dokumentatsiooni `bzip2`-tihendusega &HTML;-vormingus. &HTML;-versiooni kasutab &abikeskus;. Kui &HTML;-versioon puudub, regenereerib &abikeskus; selle DocBook-versioonist, kuid see nõuab üsna palju aega.

`share/icons`

- Sellesse kataloogi on salvestatud ikoonid. Need on korraldatud teemade, mõõtmete ja kasutusala järgi.

`share/mimelnk`

- Selles kataloogis on `.desktop`-failid, mis kirjeldavad &MIME; tüüpe. &kde; kasutab &MIME; tüüpe failitüübi tuvastamiseks.

`share/services`

- Selles kataloogis on `.desktop`-failid, mis kirjeldavad teenuseid. Teenused on nagu rakendused, kuid tavaliselt käivitavad neid teised rakendused, mitte kasutaja ise. Teenuseid ei ole näha &kde; menüüs.

`share/servicetypes`

- Selles kataloogis on `.desktop`-failid, mis kirjeldavad teenusetüüpe. Teenusetüüp tähistab tavaliselt teatud programmiliidest. Rakendused ja teenused määravad oma `>.desktop`-failides ära teenusetüübid, mida nad pakuvad.

`share/sounds`

- Selles kataloogis on helifailid.

`share/templates`

- Selles kataloogis on erinevat tüüpi failide loomiseks mõeldud mallid. Mall koosneb `.desktop`-failist, mis kirjeldab faili ja sisaldab viidet failile alamkataloogis `.source`. Selle kataloogi malle näeb alammenüüs Loo uus töölaual ning failisirvijas. Kui kasutaja valib menüüst malli, kopeeritakse selle lähtefail.

`share/wallpapers`

- Selles kataloogis on pildid, mida saab kasutada taustapildina.

### Masinaspetsiifilised kataloogid

On kolm masinapõhist kataloogi, mis tavaliselt kujutavad endast viita mõnele muule asukohale. Kui neid ei ole veel olemas, luuakse järgmised viidad ja kataloogid utiliidiga `lnusertemp`:

`$`KDEHOME`/socket-$`MASINANIMI``

- Tavaliselt `/tmp/ksocket-$`KASUTAJA`/`. Seda kasutatakse erinevate &UNIX; soklite jaoks.

`$`KDEHOME`/tmp-$`MASINANIMI``

- Tavaliselt `/tmp/kde-$`KASUTAJA`/`. Seda kasutatakse ajutiste failide jaoks.

`$`KDEHOME`/cache-$`MASINANIMI``

- Tavaliselt `/var/tmp/kdecache-$`KASUTAJA`/`. Seda kasutatakse puhverdatud failide jaoks.

Et kataloogides `/tmp` ja `/var/tmp` on kõigil kirjutamisõigus, on võimalik, et mõni mainitud kataloogidest on juba olemas, aga selle omanik on mõni teine kasutaja. Sel juhul loob utiliit `lnusertemp` uue kataloogi alternatiivse nime ja lingiga.

### Konfiguratsioonifailid

&kde; kasutab lihtsaid tekstipõhiseid faile kõigi seadistustefailide jaoks. Need koosnevad gruppidesse seatud võtmete ja väärtuste paaridest. Kõik &kde; seadistustefailid kasutavad UTF-8 kodeeringut, mis lubab laiendada ASCII võimalusi.

Grupi algust tähistab nurksulgudesse seatud grupinimi. Kõik sellele järgnevad võtme-väärtusepaarid kuuluvad antud gruppi. Grupp lõpeb kas uue grupi alguse või faili lõpuga. Kirjed faili alguses, millele ei eelne grupinime, kuuluvad vaikimisi gruppi.

Järgnev näide toob ära kahest grupist koosneva seadistustefaili. Esimene grupp sisaldab võtmeid `LargeCursor` ja `SingleClick`, teine grupp võtmeid `Show hidden files` ja `Sort by`:

    [KDE]
    LargeCursor=false
    SingleClick=true

    [KFileDialog Settings]
    Show hidden files=false
    Sort by=Name

Kirjed grupis koosnevad võrdusmärgiga eristatud võtmest ja väärtusest. Võti võib sisaldada tühikuid ning sellele võivad järgneda nurksulgudesse seatud valikud. Võrdusmärgi järel seisab kirje väärtus. Tühimärke mõlemal pool võrdusmärki ning väärtuse järel eiratakse. Täpsemalt öeldes on vorming järgmine:

    kirje=väärtus

Kui väärtus peab sisaldama tühikut alguses või lõpus, tuleb selleks kasutada längkriipsu, millele järgneb s.

Längkriipsuga saab veel mitut asja määrata, nimelt:

- \s tähistab tühikut

- \t tähistab tabeldusmärki

- \r tagasijooksumärki

- \n tähistab reavahetusmärki (uus rida)

- \\ tähistab längkriipsu ennast

Järgnevas näites algab kirje `Caption` väärtus kahe tühikuga, kirje `Description` sisaldab aga kolme tekstirida. Ridade eraldamiseks kasutatakse längkriipsu abil esitatavaid reavahetusmärke.

    [Preview Image]
    Caption=\s My Caption
    Description=This is\na very long\ndescription.

Tühje ridu seadistustefailides eiratakse, samuti ridu, mille alguses seisavad trellid (#). Viimast kasutatakse enamasti kommentaaride lisamiseks konfiguratsioonifailidesse. Tasub märkida, et kui &kde; rakendus uuendab seadistustefaili, kommentaare ei säilitata.

Erinevate &kde; kataloogipuude alamkataloogis `share/config` võib olla mitu ühenimelist seadistustefaili. Sel juhul kombineeritakse nende kõigi info võtmehaaval. Kui üks ja sama võti on defineeritud mitmes failis, siis kasutatakse selle faili väärtust, mis seisab eelistusjärjekorras eespool. Kõige ees seisavad alati `$`KDEHOME`` seadistustefailid. Kui teatud grupi võti on mitu korda defineeritud ühes ja samas failis, kasutatakse viimase kirje väärtust.

Kui `$`HOME`/.kde/share/config/foobar` sisaldab:

    [MyGroup]
    Color=red
    Shape=circle

ja `/etc/opt/kde3/share/config/foobar` sisaldab

    [MyGroup]
    Color=blue
    Position=10,10

on tulemus järgmine:

    [MyGroup]
    Color=red
    Shape=circle
    Position=10,10

Kui `$`HOME`/.kde/share/config/foobar` sisaldab

    [MyGroup]
    Color=red
    Shape=circle
    [MyGroup]
    Color=green

ja `/opt/kde_staff/share/config/foobar` sisaldab

    [MyGroup]
    Color=purple
    Position=20,20

ja `/etc/opt/kde3/share/config/foobar` sisaldab

    [MyGroup]
    Color=blue
    Position=10,10

on tulemus järgmine:

    [MyGroup]
    Color=green
    Shape=circle
    Position=20,20

Et kasutajad ei saaks tühistada vaikeseadistusi, võib need märkida muudetamatuks. Seadistusi saab muuta muudetamatuks ühekaupa, grupiti või ka failiti. Ühe kirje võib lukustada võtme järele `[$i]` lisades, ⪚:

    Color[$i]=blue

Kirjete grupi võib lukustada grupi nime järele `[$i]` lisades, ⪚:

    [MyGroup][$i]

Terve faili lukustamiseks alusta faili eraldi reaga `[$i]`, &ie;:

    [$i]

Kui `$`HOME`/.kde/share/config/foobar` sisaldab:

    [MyGroup]
    Color=red
    Shape=circle

ja `/etc/opt/kde3/share/config/foobar` sisaldab:

    [MyGroup][$i]
    Color=blue
    Position=10,10

on tulemus järgmine:

    [MyGroup]
    Color=blue
    Position=10,10

Kui `$`HOME`/.kde/share/config/foobar` sisaldab:

    [MyGroup]
    Color=red
    Shape=circle

ja `/opt/kde_staff/share/config/foobar` sisaldab

    [MyGroup]
    Color=purple
    Shape=rectangle

ja `/etc/opt/kde3/share/config/foobar` sisaldab

    [MyGroup][$i]
    Color=blue
    Position=10,10

on tulemus järgmine:

    [MyGroup]
    Color=purple
    Shape=rectangle
    Position=10,10

Niinimetatud shelli laiendamise võimalustega saab määrata märksa dünaamilisemaid vaikeväärtuseid. Sel juhul saab seadistusvõtme väärtuse luua keskkonnamuutuja väärtuse või shellikäsu väljundi põhjal. Seadistuskirjete shelli laiendamise võimaluste kasutamiseks peab võtmele järgnema [$e]. Tavaliselt kirjutatakse laiendatud vorm pärast esimest kasutamist kasutaja konfiguratsioonifaili. Selle vältimiseks on soovitatav seadistuskirje lukustada, lisades selleks võtme järele [$ie]. Sel juhul ei saa muidugi ka kasutaja seda muuta.

Järgnevas näites määratakse kirje `Host` väärtus programmi `hostname` väljundi põhjal. Tagamaks seda, et väärtus määratakse alati dünaamiliselt, on seadistus ka lukustatud.

Kirje `Email` väärtus määratakse keskkonnamuutujate $`USER` ja $`HOST` väärtuste alusel. Kui kasutaja `jaan` on ennast loginud süsteemi `jaani_masin`, on tulemuseks väärtus `jaan@jaani_masin`. See seadistus ei ole lukus.

    [Mail Settings]
    Host[$ie]=$(hostname)
    Email[$e]=${USER}@${HOST}

Enamikku seadistuskirjeid saab märgistada keelekoodiga. Sel juhul kasutatakse vajaliku võtme väärtuse leidmiseks keelt, mille kasutaja on oma töölaua jaoks valinud. Kui valitud on vaikimisi keel (Ameerika inglise keel) või valitud keelele pole vastavat indeksit, kasutatakse indeksita võtmekirjet.

Järgnevas näiteks sõltub kirje `Caption` väärtus keelest. Kui kasutaja on valinud oma keeleks eesti keele (keelekood `et`), on kirje väärtus Minu pealdis. Kõigil muudel juhtudel kasutatakse väärtust My Caption.

    [Preview Image]
    Caption=My Caption
    Caption[et]=Minu pealdis

Järgnevas näiteks sõltub kirje `Caption` väärtus keelest. Kui kasutaja on valinud oma keeleks eesti keele (keelekood `et`), on kirje väärtus Minu pealdis. Kõigil muudel juhtudel kasutatakse väärtust My Caption.

    [Preview Image]
    Caption=My Caption
    Caption[et]=Minu pealdis

Varasemal ajal ei olnud seadistustefailis esineda võivad kirjed üldjuhul dokumenteeritud. Alates &kde; 3.2 on asi muutunud. Kataloogis `$`KDEDIR`/share/config.kcfg` leiab failid, mis kirjeldavad seadistustefaili võimalikke kirjeid. Neid kasutab võimaluse korral &kde; uus seadistusteredaktor.

Toome ühe näite &XML;-konfiguratsioonifaili kohta:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
    <kcfg>
        <kcfgfile name="korganizerrc"/>
        <group name="General">
             <entry type="Bool" key="Auto Save">
                 <label>Enable automatic saving of calendar</label>
                 <default>true</default>
             </entry>
             <entry type="Int" key="Auto Save Interval">
                 <default>10</default>
             </entry>
        </group>
    </kcfg>

Sellega on võrdväärne:

    [General]
    Auto Save=false
    Auto Save Interval=25

### &kde; käivitamisest

#### &kdm;

Töötab alati administraatori (`root`) õigustes! Kasutab faile `$`KDEDIR`/share/config/kdmrc` ja `/etc/X11/xdm/Xservers`. Viimases on umbes sellised kirjed:

    :0 local /usr/X11R6/bin/X :0 vt07

Asjakohased käivitamisfailid on järgmised:

- [X-*-Core] sektsioon failis `kdmrc`
- Seadistus - `/etc/X11/xdm/Xsetup`
- Kasutaja sisestab kasutajanime ja parooli
- Käivitamine - `/etc/X11/xdm/Xstartup` - valmistumine administraatori õigustes
- Seanss - `/etc/X11/xdm/Xsession` - käivitab seansi kasutaja õigustes
- = KDE seansi korral: `kde` või `startkde`
- = Olemasolu korral `~/.xsession` või `~/.xinitrc`
- Lähtestamine - `/etc/X11/xdm/Xreset` - pärast seansi lõppu

#### &kde; käivitamisskript: `startkde`

&kde; käivitamine algab skriptiga `startkde`. Enamasti kutsub selle välja kuvahaldur (&kdm;) pärast kasutaja autentimist. Skriptis `startkde` on kaks väga tähtsat rida:

    LD_BIND_NOW=true kdeinit +kcminit +knotify and kwrapper
    ksmserver $KDEWM

Esimene rida käivitab ülemprotsessi `kdeinit`. Protsessi `kdeinit` kasutatakse kõigi muude kde; protsesside käivitamiseks. Käsu `ps `aux`` väljundis näeb seda kujul: `kdeinit: Running...`. Argumendid, mida näeb `kdeinit`'i järel, on täiendavalt käivitatavate protsesside nimed. Sümbol + tähendab, et `kdeinit` peab ootama, kuni protsess on lõpetanud. `kdeinit` käivitab ka protsessid `dcopserver`, `klauncher` ja `kded`.

Teine rida annab protsessile `kdeinit` korralduse käivitada seansihalduri protsess `ksmserver`. Seansihaldur määrab seansi eluea. Kui protsess töö lõpetab, logitakse kasutaja välja.

### Taustaprotsessid

Kõik &kde; taustaprotsessid on kasutajapõhised: erinevalt süsteemsetest deemonitest ei jagata neid kasutajate vahel. Nad on unikaalsed nii kasutajate järgi kui ka X-serveri kuva järgi. Need protsessid on järgmised:

`dcopserver`

- Töölaua kommunikatsioon

`kded`

- Üldine teenustedeemon.

  Käivitab vajaduse korral Sycoca andmebaasi uuendamise

`kcminit`

- Initsialiseerimisteenus

  Täpsemalt räägib sellest kcminit.

`klauncher`

- Rakenduste käivitaja (see ei ole sama, mis &Alt;F2 dialoog!)

  Täpsemalt räägib sellest klauncher.

`knotify`

- Kasutaja märguanded.

  Täpsemalt räägib sellest knotify.

`ksmserver`

- Seansihaldus

  Täpsemalt räägib sellest ksmserver.

#### `kdeinit`

Protsess `kdeinit` käivitab kõik teised &kde; programmid. `kdeinit` võib käivitada nii tavalisi programmide binaarfaile kui ka `kdeinit`'i laaditavaid mooduleid (KLM). KLM-id töötavad samamoodi nagu programmide binaarfailid, kuid neid saab märksa efektiivsemalt käivitada. KLM-id paiknevad kataloogis `$`KDEDIR`/lib/kde3`.

Miinuseks on see, et sel moel käivitatud programme näitab käskude `top` ja `ps` väljund kui protsessi ``kdeinit``. Tegeliku programmi nime nägemiseks tuleb seepärast kasutada käsku `top `-c`` või `ps `aux``:

    %ps aux

    waba     23184  0.2  2.1 23428 11124 ?        S    21:41   0:00 kdeinit: Running...
    waba     23187  0.1  2.1 23200 11124 ?        S    21:41   0:00 kdeinit: dcopserver --nosid
    waba     23189  0.2  2.4 25136 12496 ?        S    21:41   0:00 kdeinit: klauncher
    waba     23192  0.7  2.8 25596 14772 ?        S    21:41   0:00 kdeinit: kded
    waba     23203  0.8  3.4 31516 17892 ?        S    21:41   0:00 kdeinit:
    knotify

`kdeinit: Running...` tähistab ülemprotsessi `kdeinit`. Ülejäänud protsessid on käivitatud KLM-idena.

`kdeinit` käivitab esmakordsel käivitumisel protsessid `dcopserver`, `klauncher` ja `kded`, samuti kõik muud programmid, mis on määratud skriptiga `startkde` (tavaliselt `kcminit` ja `knotify`).

#### `dcopserver`

`dcopserver` on deemon, mis tagab kõigile &kde; rakendustele protsessidevahelise kommunikatsiooni (&DCOP;). &DCOP; on iseenesest kasutatav käsureatööriista `dcop` abil. &DCOP; on eluliselt vajalik kõigile &kde; rakendustele.

Mõned asjakohased failid:

`$`HOME`/.DCOPserver_$`HOSTNAME`_$`DISPLAY``

- ⪚ `.DCOPserver_linux__0`. Seda kontrollib $`DCOPAUTHORITY`.

`/tmp/.ICE-unix/dcop`pid`-`arv``

- ⪚ `dcop7634-1069677856`. See on fail, millele viitab ülaltoodud `DCOPserver`-fail.

`$`HOME`/.ICEauthority`

- Autentimisinfo, mida kontrollib $`ICEAUTHORITY`.

#### kcminit

`kcminit` paneb käivitamise ajal tööle initsialiseerimisteenused. Initsialiseerimisteenuseid määratlevad rakenduste või teenuste .desktop-failid real `X-KDE-Init`:

    [Desktop Entry]
    Encoding=UTF-8
    Exec=kcmshell energy
    Icon=energy_star
    Type=Application
    X-KDE-Library=energy
    X-KDE-Init=energy

Initsialiseerimisteenuseid kasutatatakse üldjuhul riistvara initsialiseerimisel kasutaja määratud seadistuste põhjal.

Käsuga ``kcminit `--list``` saab näha kõiki initsialiseerimisteenuseid ning käsuga ``kcminit `teenus``` käivitada konkreetse teenuse. Sellest on abi näiteks käivitamisprobleemide selgitamisel.

#### `klauncher`

`klauncher` on deemon, mis vastutab &kde; teenuste aktiveerimise eest. See töötab uute protssesside käivitamisel tihedalt käsikäes ülemprotsessiga `kdeinit`. &kde; rakendused suhtlevad uute rakenduste või teenuste käivitamiseks `klauncher`'iga &DCOP;-i vahendusel.

Hästi on tuntud veateade: `KLauncher could not be reached via DCOP` , mis osutab kas tõsisele probleemile `dcopserver`'iga või `klauncher`'i krahhile.

`klauncher`'i saab taaskäivitada, kui käivitada `kdeinit` uuesti konsooliaknast. Igal juhul tasuks eelnevalt kontrollida, et $`HOME`, $`DISPLAY` ja mitmesugused muutujad $`KDEDIR(S)` on korrektselt määratud!

#### `knotify`

`knotify` põhiülesanne on edastada helimärguanded heliserverile. See pakub ka alternatiivseid märguannete meetodeid.

### KSMServer

`ksmserver` on &kde; seansihaldur. Käivitamisel paneb seansihaldur tööle automaatselt käivitatavad rakendused ja taastab eelnenud seansi rakendused. Automaatselt käivitatavaid rakendusi tähistavad `.desktop`-failid kataloogis `$`KDEDIR`/share/autostart`. Selle, kas rakendus automaatselt käivitada või mitte, saab määrata vastava tingimusega kirje `X-KDE-autostart-condition` näol `.desktop`-failis.

Näiteks fail `ktip.desktop` sisaldab:

    X-KDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true

See tähendab, et konfiguratsioonifailis `ktiprc` kontrollitakse kirje `RunOnStart` olemasolu sektsioonis `[TipOfDay]`. Kui sellist kirjet pole, võetakse tingimuse väärtuseks 'tõene' (`true`), mis tähendab, et ktip on üks automaatselt käivitatavaid rakendusi.

Mõned rakendused, mida `ksmserver` automaatselt käivitab, on järgmised:

`kdesktop`

- &kde; töölaud

`&kicker;`

- &kde; paneel

`ktip`

- Päeva nõuande programm

`kwrited`

- Utiliit süsteemi teadete edastamiseks kasutajale

&klipper;

- Paneelile dokitud lõikepuhvriutiliit

`kalarm`

- Eesseisvatest sündmustest ja kohtumistest märku andev utiliit

`kdesktop` käivitab omakorda rakendused, mis leiduvad kataloogis `$`KDEHOME`/Autostart`. `kdesktop` avab automaatselt kõik selles kataloogis leiduvad failid, kaasa arvatud dokumendid, binaarfailid või rakendused `.desktop`-failide kujul.

&kde; seansihaldur taastab ka varasema seansi. Seanss koosneb nii rakendustest kui ka rakendustespetsiifilisest infost, mis kajastab rakenduste olekut seansi salvestamise hetkel. Seansid on salvestatud seadistustefaili `ksmserverrc`, mis sisaldab viiteid rakendusespetsiifilisele olekuinfole. Viimane on salvestatud kataloogi `$`KDEHOME`/share/config/session`. &kwin;'i olekuinfo sisaldab kõigi rakenduste akende olekuinfot varasemas seansis.

### Keskkonnamuutujad

Mõned olulisemad keskkonnamuutujad, mida &kde; kasutab:

$`KDEDIR`

- Peab olema määratud, kui ei ole määratud `KDEDIRS`, ning viitama &kde; paigalduspuu juurele. Võimaldab &kde;-l leida oma andmeid, näiteks ikoone, menüüsid ja teeke.

$`KDEDIRS`

- Tühistab muutuja `KDEDIR` ning võimaldab määrata mitu kataloogi, kust &kde; oma andmeid otsib. Abiks, kui tahad paigaldada või pead paigaldama mõned programmid muu prefiksiga kui ülejäänud &kde;.

`$KDEHOME`

- Kui pole määratud, kasutab &kde; kataloogi `~/.kde` kataloogina, kuhu salvestada personaalsed andmed.

$`KDEROOTHOME`

- Kui pole määratud, kasutab &kde; kataloogi `~root/.kde` kataloogina, kuhu salvestada administraatori (`root`) personaalsed andmed. See muutuja võeti kasutusele, et &kde; ei kirjutaks kogemata kasutaja andmeid administraatori õigustes üle, kui kasutaja käivitab &kde; programmi pärast programmiga `su` endale administraatori (`root`) õiguste võtmist.

$`KDEWM`

- Kui keskkonnamuutuja `KDEWM` on määratud, kasutatakse seda &kwin;'i asemel &kde; aknahaldurina `startkde` skriptis.

$`KDE_LANG`

- Tühistab &kde; keeleseadistuse, ⪚ `KDE_LANG=fr kprogram &` käivitab programmi prantsuskeelse tõlkega, kui vajalikud failid on paigaldatud.

$`KDE_MULTIHEAD`

- Kui anda sellele muutujale väärtuseks `true` (tõene), siis tähendab see, et &kde; töötab multihead-süsteemis.

$`KDE_FORK_SLAVES`

- (Alates &kde; 3.2.3) Selle muutuja määramisega saab KIO-moodulid panna lähtuma otseselt rakenduse protsessist. Vaikimisi käivitab KIO-moodulid `klauncher`/`kdeinit`. See on abiks, kui KIO-moodul peab töötama samas keskkonnas rakendusega. Nii on näiteks rakenduse Clearcase puhul.

$`KDE_HOME_READONLY`

- Selle muutuja määramisel on kodukataloog ühendatud ainult lugemisõigusega.

$`KDE_NO_IPV6`

- (Alates &kde; 3.2.3) Selle muutuja määramisega saab keelata IPv6 toetuse ja IPv6 DNS-otsingud.

$`KDE_IS_PRELINKED`

- (Alates &kde; 3.2) Selle muutuja määramisel on &kde; binaarfailid ja teegid eellingitud. See lülitab protsessi `kdeinit` välja.

$`KDE_UTF8_FILENAMES`

- Selle keskkonnamuutuja määramisel eeldab &kde;, et kõik failinimed on sõltumata aktiivsest lokaadist UTF-8 kodeeringus.

$`KDE_FULL_SESSION`

- (Alates &kde; 3.2) See määratakse &kde; käivitumisel automaatselt tõeseks ning kasutatakse ⪚ teatamiseks &konqueror;ile, et see peab jääma ka pärast sulgemist mällu juhuks, kui seda edaspidi vaja läheb. Kui muutuja pole määratud, lõpetab &konqueror; pärast sulgemist täielikult oma töö (⪚ &kdesu; teeb seda, see on kasuks ka silumisel).

$`KDESYCOCA`

- Võimaldab määrata genereeritud &kde; süsteemse konfiguratsiooni puhvrifaili asukoha ja nime.

$`KDETMP`

- Võimaldab määrata `/tmp` asemel muu asukoha, kuhu &kde; salvestab oma ajutisi faile.

$`KDEVARTMP`

- Võimaldab määrata `/var/tmp` asemel muu asukoha, kuhu &kde; salvestab oma muutuvaid faile.

$`XDG_DATA_HOME`

- (Alates &kde; 3.2) Määrab baaskataloogi, mille suhtes salvestatakse kasutajaspetsiifilised andmefailid. Vaikimisi on `$`HOME`/.local/share`.

$`XDG_DATA_DIRS`

- (Alates &kde; 3.2) Määrab eelistuse järjekorras kataloogid, kust otsitakse andmefaile lisaks `$`XDG_DATA_HOME`` baaskataloogile. Vaikimisi `/usr/local/share/:/usr/share/`.

  &kde; lisab omalt poolt ka $`KDEDIRS` ja profiilide asukohad. Kasutatakse `.desktop`- ja `.directory`-menüüfailide jaoks. `.desktop`-failid on kataloogis `$`XDG_DATA_DIRS`/applications`. `.directory`.failid on kataloogis $XDG_DATA_DIRS/desktop-directories.

$`XDG_CONFIG_HOME`

- (Alates &kde; 3.2) Määrab baaskataloogi, mille suhtes salvestatakse kasutajaspetsiifilised seadistustefailid. Vaikimisi on `$`HOME`/.config`.

$`XDG_CONFIG_DIRS`

- (Alates &kde; 3.2) Määrab eelistuse järjekorras kataloogid, kust otsitakse seadistustefaile lisaks `$`XDG_CONFIG_HOME`` baaskataloogile. Vaikimisi `/etc/xdg`. &kde; lisab omalt poolt ka $`KDEDIRS` ja profiilide asukohad. Kasutatakse `.menu`- kirjelduste jaoks kataloogis `$`XDG_CONFIG_DIRS`/menus`.

### kdeinit'i müsteerium

`kdeinit` käivitab kõik teised &kde; programmid. `kdeinit` võib käivitada nii tavalisi programmide binaarfaile kui ka `kdeinit`'i laaditavaid mooduleid (KLM). KLM-id töötavad samamoodi nagu programmide binaarfailid, kuid neid saab märksa efektiivsemalt käivitada. KLM-id paiknevad kataloogis `$`KDEDIR`/lib/kde3`.

Miinuseks on see, et sel moel käivitatud programme näitab käskude `top` ja `ps` väljund kui protsessi ``kdeinit``. Tegeliku programmi nime nägemiseks tuleb seepärast kasutada käsku `top `-c`` või `ps `aux``:

    % ps aux | grep bastian

    bastian  26061  0.0  2.2 24284 11492 ?       S    21:27   0:00 kdeinit: Running...
    bastian  26064  0.0  2.2 24036 11524 ?       S    21:27   0:00 kdeinit: dcopserver
    bastian  26066  0.1  2.5 26056 12988 ?       S    21:27   0:00 kdeinit: klauncher
    bastian  26069  0.4  3.2 27356 16744 ?       S    21:27   0:00 kdeinit: kded
    bastian  26161  0.2  2.7 25344 14096 ?       S    21:27   0:00 kdeinit: ksmserver
    bastian  26179  1.1  3.4 29716 17812 ?       S    21:27   0:00 kdeinit: kicker
    bastian  26192  0.4  3.0 26776 15452 ?       S    21:27   0:00 kdeinit: klipper
    bastian  26195  1.0  3.5 29200 18368 ?       S    21:27   0:00 kdeinit: kdesktop

Nagu oled vahest märganud, on sel üks kõrvalefekt, mis muudab keeruliseks tappa probleeme tekitavat protsessi:

    % killall kdesktop
    kdesktop: no process killed

Mõistagi on sel juhul ahvatlev kasutada käsku ``killall kdeinit``, aga kõigi kdeinit'i protsesside tapmine tähendab tegelikult kogu &kde; töö lõpetamist. Totaalset hävitamist niisiis!

Sellest aitab üle kaks lihtsat lahendust:

    % kdekillall kdesktop
    või vana hea
    % kill 26195

`kdekillall` kuulub &kde; SDK-paketi koosseisu.

## &kde; kohandamine

### Töölaua ikoonid

&kde; kasutab mitut laadi ikoone:

- Dokumendid

- Veebisaitide lingid (`.desktop`-faili kasutades)

- Rakenduste lingid (`.desktop`-faili kasutades)

- Seadmed: kettad, partitsioonid ja välisseadmed:

  - Otseselt `.desktop`-faili kasutades

  - Automaatselt IO-mooduli devices:// vahendusel

- Tootjaspetsiifilised (⪚ &SuSE; Minu arvuti)

#### Veebileheküljed

Veebisaitide lingid `.desktop`-faili kasutades: Loo uus Fail Viit asukohale (URL). Ikooni saab muuta dialoogis Omadused. Tulemuseks on `.desktop`-fail:

    [Desktop Entry]
    Encoding=UTF-8
    Icon=/opt/kde3/share/apps/kdesktop/pics/ksslogo.png
    Type=Link
    URL=http://www.kde.org/

#### Rakendused

Rakenduste lingid `.desktop`-faili kasutades: Loo uus Fail Viit rakendusele. Üksikasjad tuleb ise anda. Lohistamine &kde; menüüst: kas kopeerimine või linkimine (palju lihtsam).

    [Desktop Entry]
    Encoding=UTF-8
    GenericName=IRC Client
    GenericName[af]=Irc Kliët
    GenericName[de]=IRC Programm
    ...
    GenericName[zu]=Umthengi we IRC
    SwallowExec=
    Name=KSirc
    Name[af]=Ksirc
    Name[de]=KSirc
    ...

- Trafarett

- Tõlgitud üldine kirjeldus, ei kasutata töölaual

- Pärand, võib eemaldada

- Tõlgitud nimi, nagu see esineb töölaual

Töölaua ikoonid

    ...
    Name[zu]=Ksirc
    MimeType=
    Exec=ksirc %i %m
    Icon=ksirc
    TerminalOptions=
    Path=
    Type=Application
    Terminal=0
    X-KDE-StartupNotify=true
    X-DCOP-ServiceType=Multi
    Categories=Qt;KDE;Network

- Toetatud &MIME; tüübid, ei kasutata töölaual

- Käivitatav käsurida

- Ikoon ikooniteemast või täielik asukoht

- Kasutatakse ainult terminali vajaduse korral

- Käsu töökataloog

- Veel üks trafarett

- Kasuta, kui on vaja terminali

- Spetsiaalse käivitamiskursori näitamine; lülita välja, kui see ei toimi

- Kas rakendus käivitus korralikult? Eemalda, kui ei käivitunud

- &kde; menüü kategooriad, ei kasutata töölaual

#### Võtme `Exec` roll `.desktop`-failides

Käsu järele võib lisada mitmeid kohatäitjaid, mis programmi käivitamisel asendatakse tegelike väärtustega:

%f

- Üks failinimi; kasutatakse faili kukutamisel ikoonile või failiseostega.

%F

- Failide nimekiri; kasutatakse rakenduste korral, mis võivad korraga avada mitu kohalikku faili.

%u

- Üks &URL;; kui rakendus suudab ise käsitleda ⪚ &FTP; või &HTTP; &URL;-e, vastasel juhul &kde;.

%U

- &URL;-ide nimekiri; kõigepealt laaditakse fail alla ja edastatakse kohalik fail rakendusele (!!).

%d

- Avatava faili kataloog; abiks, kui rakendus eeldab muidu faili oma töökataloogis.

%D

- Kataloogide nimekiri; pole eriti praktiline.

%i

- Ikoon; ka `--icon`; &kde; kasutab tegumiribal ikooni, mille määrab rida `Icon`=.

%m

- Miniikoon; pärand.

%c

- Pealdis; ka ka `--caption`; &kde; kasutab tegumiribal nime, mille määrab rida `Name`=.

Näited:

`Exec`-rida Käivitatav käsk
- ksirc %i `ksirc --icon ksirc`
- cd %d; kedit $(basename %f)`cd /tmp; kedit file.txt`

#### Seadmed

Seadmete lingid `.desktop`-faili kasutades: Loo uus -> Viit seadmele

#### Kus defineerida?

Töölaua ikoone saab määrata mitmes kohas:

- `~/Desktop`: kopeeritud asukohast `/etc/skel/Desktop`

- `$`KDEDIR`/apps/kdesktop/Desktop` (ühendatud)

- `$`KDEDIR`/apps/kdesktop/DesktopLinks` (kopeeritud)

- Seadmete ikoonid (dünaamiliselt ühendatud)

- Distributsioonispetsiifilised: SUSE Linux kopeerib teatud ikoonid failis startkde.theme asukohast `/opt/kde3/share/config/SuSE/default/`

### &kde; menüü

#### Toimimise põhimõtted

&kde; 3.2 võttis kasutusele ühtse menüüvormingu (http://freedesktop.org/Standards/menu-spec/).

Enne &kde; 3.2:

- Kataloogistruktuur asukohas `share/applnk`

- Kataloogistruktuur tähistab menüüstruktuuri

- Iga `.desktop`-fail tähistab üht rakendust

&kde; 3.2 tingimustes oli struktuuri üsna raske ümber korraldada, mistõttu uus menüüvorming:

- Määrab struktuuri ühes .menu-failis

- Tugineb kategooriatele

- On ühine GNOME-le ja &kde;-le

- Toetab ka applnk-stiilis menüüsid

Näide `applications.menu` põhjal:

            <Menu>
                <Name>Office</Name>
                <Directory>suse-office.directory</Directory>
                <Include>
                    <Filename>Acrobat Reader.desktop</Filename>
                    <Filename>kde-kpresenter.desktop</Filename>
                    <Filename>kde-kword.desktop</Filename>
                </Include>
            <Menu>

Menüükirje 3 rakendusega:

- `/usr/share/applications/Acrobat Reader.desktop`

- `/opt/kde3/share/applications/kde/kpresenter.desktop`

- `/opt/kde3/share/applications/kde/kword.desktop`

#### Salvestamise asukohad

`.menu`-failid kirjeldavad menüüstruktuuri. Need on salvestatud kataloogidesse `$`KDEDIR`/etc/xdg/menus` ja `/etc/xdg/menus`. Sinna on salvestatud süsteemne menüüstruktuur, mida kontrollib $`XDG_CONFIG_DIRS`. `$`HOME`/.config/menus` salvestab kasutajate muudatused menüüstruktuuri, seda kontrollib $`XDG_CONFIG_HOME`. Täpsemalt räägib sellest http://www.freedesktop.org/Standards/basedir-spec.

`.desktop`-failid kirjeldavad rakendusi ja on salvestatud kataloogidesse `$`KDEDIR`/share/applications`, `/usr/share/applications`, `/usr/local/share/applications`. Need on süsteemsed rakenduste `.desktop`-failid, mida kontrollib $`XDG_DATA_DIRS`.

`$`HOME`/.local/applications` sisaldab kasutajaspetsiifilisi `.desktop`-faile ja kasutajaspetsiifilisi muudatusi. Seda kontrollib $`XDG_DATA_HOME`. Täpsemalt räägib sellest http://www.freedesktop.org/Standards/basedir-spec.

`.directory`-failid kirjeldavad alammenüüsid ja on salvestatud kataloogidesse `$`KDEDIR`/share/desktop-directories`, `/usr/share/desktop-directories`, `/usr/local/share/desktop-directories`. Need on süsteemsed menüüde `.directory`-failid, mida kontrollib $`XDG_DATA_DIRS`. Kasutajaspetsiifilised muudatused on salvestatud kataloogi `$`HOME`/.local/desktop-directories`. Neid kontrollib $`XDG_DATA_HOME`. Täpsemalt räägib sellest http://www.freedesktop.org/Standards/basedir-spec.

Näide `applications.menu` põhjal:

                 <Menu>
                            <Name>Art</Name>
                            <Directory>suse-edutainment-art.directory</Directory>
                            <Include>
                                    <Category>X-SuSE-Art</Category>
                            </Include>
                    </Menu>

`Art` on menüü sisemine nimi. `suse-edutainment-art.directory` määrab menüü nime ja ikooni ning see menüü sisaldab kõiki rakendusi, mille kategooriaks on `X-SuSE-Art`, ⪚:

    Categories=Qt;KDE;Education;X-SuSE-Art

`suse-edutainment-art.directory` määrab selle menüü nime ja ikooni:

    [Desktop Entry]
    Name=Art and Culture
    Icon=kcmsystem

#### Levinud probleemid

Rakendusi, mida ei ole menüüs, ei ole olemas ka teiste rakenduste või failiseoste jaoks: kui eemaldad rakenduse menüüst, eeldab &kde; et sa ei soovi seda kasutada.

Kui sa ei soovi rakendust menüüs näha, sea nad menüüsse `.hidden` või spetsiaalsesse menüüsse võtmega

    NoDisplay=true

`.directory`-failis

#### Olulised menüüd

`$`KDEDIR`/etc/xdg/menus/applications-merged/` sisaldab faili `kde-essential.menu`, mis sisaldab teatud olulisi menüüsid, mida tavaliselt &kde; menüüs endas ei näidata:

- Juhtimiskeskusel on peidetud menüü Seadistused, mille sisu määrab `kde-settings.menu` ja mille ikooni ja nime määrab `kde-settings.directory`

- Infokeskusel on peidetud menüü Informatsioon, mille sisu määrab `kde-information.menu` ja mille ikooni ja nime määrab `kde-information.directory`

- Ekraanisäästjatel on peidetud menüü Süsteem/Ekraanisäästjad, mille sisu määrab `kde-screensavers.menu` ja mille ikooni ja nime määrab `kde-system-screensavers.directory`. `$`KDEDIR`/share/desktop-directories/kde-system-screensavers.directory` sisaldab:

      NoDisplay=true

#### Vanas stiilis menüüd

&kde; toetab endiselt ka vanas stiilis menüüsid, mille puhul kataloogistruktuur on määratud kataloogides `$`KDEDIR`/share/applnk` (süsteemne) ja `$`HOME`/.kde/share/applnk` (kasutajaspetsiifiline). Seda järgitakse juhul, kui `.desktop`-failis ei ole `Categories`= rida. Sel juhul määravad kategooriad asukoha menüüs.

#### KSycoca

KSycoca puhverdab menüüstruktuuri ja info kõigi saadaolevate rakenduste kohta. Andmebaasi saab värskendada programmiga ``kbuildsycoca``. Andmebaasi enda asukoht on `/var/tmp/kdecache-${`USER`}/ksycoca`. Seda uuendab automaatselt KDED, seda kontrollitakse &kde; sisselogimise ajal ning seansi ajal jälgib seda KDED,

Muudatuste jälgimise keelamiseks (see võib tekitada probleeme näiteks NFS-i kasutamisel) lisa järgmine rida faili `kdedrc`:

    [General]
    CheckSycoca=false

Regenereerimise pealesundimiseks anna käsk ``touch $`KDEDIR`/share/services/update_ksycoca``.

#### &kmenuedit;

&kmenuedit; on mõeldud üksikkasutaja vajaduste rahuldamiseks. Menüüstruktuuri muudatusi salvestab `~/.config/menus/applications-kmenuedit.menu`, rakenduste muudatusi `~/.local/share/applications/` ja alammenüüde (ikoon, nimi) muudatusi `~/.local/share/desktop-directories/`. KIOSK'i haldur kasutab &kmenuedit;'it ning kopeerib mainitud muudatused profiili- või süsteemsetesse asukohtadesse.

### &kde; paneel

&kde; paneel kannab ka nime &kicker;. See on modulaarne ja koosneb järgmistest komponentidest:

- Apletid

- Rakenduste nupud

- Spetsiaalsed nupud

Vaikimisi sisaldab paneel järgmisi aplette:

- Peiler - näitab virtuaalseid töölaudu

- Tegumiriba

- Süsteemne salv

- Kell

ja järgmisi spetsiaalseid nuppe:

- &kde; menüü

- Töölaua nupp

Ruumi korral lisatakse veel mitmeid rakenduste nuppe:

- Kodu(kataloogi) nupp

- Brauseri nupp

- KMaili nupp

### Failiseosed

Failiseosed seostavad failitüübi ühe või enama rakendusega. Failitüüp määratakse kindlaks selle &MIME; tüübi põhjal. &MIME; tüübid, mida &kde; tunneb, on salvestatud kataloogi `$`KDEDIR`/share/mimelnk` ning iga rakenduse `.desktop`-fail sisaldab &MIME; tüüpide nimekirja, mida antud rakendus toetab.

`kview.desktop`:

    MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
    image/x-bmp;image/png;image/x-ico;image/x-portable-bitmap;
    image/x-portable-pixmap;image/x-portable-greymap;
    image/tiff;image/jp2

`kuickshow.desktop`:

    MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg;
    image/png;image/tiff;image/x-bmp;image/x-psd;image/x-eim;
    image/x-portable-bitmap;image/x-portable-pixmap;
    image/x-portable-greymap

Mõlemad võivad avada tüübi image/gif. Kumba siis kasutatakse `.gif`-faili avamisel?

Suurima eelistusega rakendust! `kview.desktop` sisaldab

    InitialPreference=3

aga `kuickshow.desktop` sisaldab

    InitialPreference=6

Seepärast avab &kuickshow; `.gif`-file.

Kuidas panna &kview; neid vaikimisi avama?

Kasutaja saab muuta failiseoseid &juhtimiskeskus;es. Muudatused salvestatakse faili `$`HOME`/.kde/share/config/profilerc`. Sama seadistuse kasutamiseks enam kui ühe kasutaja jaoks tuleb see salvestada kasutaja profiili kataloogi või globaalsesse &kde; konfiguratsioonifailide kataloogi.

## &kde; lukustamine

### Toimimise põhialused

&kde; lukustamisomadused sisaldavad järgmisi olulisemaid võimalusi:

- Konfiguratsioonivalikute muutmine muudetamatuks

- Teatud toimingute piiramine

- Ligipääsu piiramine teatud &URL;-idele

- Ligipääsu piiramine teatud seadistusmoodulitele

### Muudetamatud konfiguratsioonivalikud

&kde; lukustamine

Muudetamatud valikud võimaldavad administraatoril määrata vaikeseadistusi, mida kasutaja ei saa muuta.

Kui konfiguratsioonivalik muudetakse muudetamatuks, ei arvestata enam kasutaja varasemaid määratlusi antud valiku puhul.

Valikuid saab kontrollida kas kirjete, kirjete gruppide või ka tervete failide kaupa.

Kui fail või grupp on muudetamatu, on kõik antud faili või grupi võtmed muudetamatud, kaasa arvatud need, mille puhul ei ole administraator vaikeväärtust määranudki.

Rakendused toetavad muudetamatute valikute kasutamist üsna erinevalt. Ehkki kasutaja ei saa muudetamatuid konfiguratsioonivalikuid püsivalt muuta, on ometi võimalik, et ta näeb siiski kasutajaliideses sellist võimalust.

### Toimingute piirangud

&kde; rakenduste keskmes seisab toimingute kontseptsioon. Toiminguid saab ette võtta mitmel moel: tavaliselt menüüriba, mõne tööriistariba või kiirklahvi vahendusel. Toiming on näiteks käsk Salvesta document. Toimingu sisemist nime teades saab sellele piiranguid seada. Kui toiming on piiratud, ei näe seda enam menüü- või tööriistaribal. Toimingu Salvesta document sisemine nimi on `action/file_save`. Lukustamisraamistik pakub ka abstraktsemaid piiranguid, millega saab keelata funktsioone, mis hõlmavad mitut toimingut. Selle näiteks on toimingu `shell_access` piirang, mis keelab igasuguse funktsionaalsuse, mis võimaldaks kasutajal tarvitada &UNIX; shelli.

#### Kasutaja ligipääsu piiramine shellile

Kasutaja ligipääsu piiramiseks shellile ja seeläbi käsurea võimalustele tuleb piirata toimingut `shell_access`, lisades failile `kdeglobals`:

    [KDE Action Restrictions]
    shell_access=false

Kuna see mõjutab &kde; menüüd ja olemasolevaid rakendusi, tuleb seejärel ette võtta SyCoCa andmebaasi värskendamine:

    touch $KDEDIR/share/services/update_ksycoca

Nüüd logi uuesti &kde;-sse sisse ja kontrolli üle järgmised asjad:

- &kmenu;

- &konqueror;is Tööriistad Ava terminal

- Käsukäivitaja &Alt;F2

Täieliku dokumentatsiooni saadaolevate toimingute kohta toob ära http://www.kde.org/areas/sysadmin/.

Siinkohal loetleme mõned huvipakkuvamad toimingud:

`action/options_configure`

- Käsk Seadistamine menüüs Seadistused

`action/help_report_bug`

- Käsk Saada vearaport menüüs Abi

`action/kdesktop_rmb`

- &HPN;ga töölaual klõpsates avanev menüü.

`action/kicker_rmb`

- &HPN;ga paneelil klõpsates avanev menüü.

`user/root`

- Peidab kõik toimingud või rakendused, mis nõuavad administraatori (`root`) õigusi.

`shell_access`

- Peidab kõik toimingud ja rakendused, mis võimaldavad ligipääsu shellile.

`print/system`

- Keelab võimaluse valida trükkimissüsteemi.

`lock_screen`

- Määrab, kas kasutaja saab ekraani lukustada.

`start_new_session`

- Määrab, kas kasutaja saab alustada teist X'i seanssi (vaata ka &kdm;)

`opengl_screensavers`

- Määrab, kas kasutaja saab kasutada OpenGL ekraanisäästjaid.

`manipulatescreen_screensavers`

- Lubab ekraanisäästjaid, mis ei peida kogu ekraani.

### &URL;-ide piirangud

&URL;-idele saab kehtestada kolme laadi piiranguid:

list

- Määrab, kas kataloogi on lubatud siseneda.

open

- Määrab, kas teatud &URL;-e tohib avada.

Redirect

- Määrab, kas üks &URL; võib avada teise &URL;-i (olgu automaatselt või hüperlingina).

Reegleid kontrollitakse selles järjekorras, milles need on määratud. Viimane reegel, mis &URL;-i kohta kehtib, määrab, kas &URL;-ile pääseb ligi või mitte.

Järgnevad reeglid keelavad avada http ja https &URL;-e väljaspool `.meiefirma.ee`:

    [KDE URL Restrictions]
    rule_count=2
    rule_1=open,,,,http,,,false
    rule_2=open,,,,http,*.meiefirma.ee,,true

- Esimesed neli koma jätavad arvestamata teatud &URL;-i päritolu valikukriteeriumid. Neid läheb vaja ainult ümbersuunamise reeglite puhul.

- `rule_1` keelab igasuguse http või https &URL;-i avamisel

- `rule_2` lubab igasuguse http ja https &URL;-i avamist domeenis `.meiefirma.ee`. Pane tähele, et metamärk * on lubatud ainult domeeni alguses.

Järgmised reeglid määravad, et kasutaja ei saa enam sirvida katalooge kohalikus failisüsteemis, mis asuvad väljaspool tema $`HOME` kataloogi:

    [KDE URL Restrictions]
    rule_count=2
    rule_1=list,,,,file,,,false
    rule_2=list,,,,file,,$HOME,true

- `rule_1` keelab sisenemise igasugusesse kohalikku kataloogi

- `rule_2` lubab siseneda kataloogidesse, mis kujutavad endast kasutaja $`HOME` kataloogi alamkatalooge.

$`HOME` ja $`TMP` on spetsiaalsed väärtused, mis tähistavad kasutaja kodukataloogi ja kasutaja &kde; ajutiste failide kataloogi, ⪚ `/tmp/kde-bastian`.

Järgmised reeglid määravad, et kasutaja ei saa avada kohalikke faile, mis pole tema $`HOME` kataloogis:

    [KDE URL Restrictions]
    rule_count=3
    rule_1=open,,,,file,,,false
    rule_2=open,,,,file,,$HOME,true
    rule_3=open,,,,file,,$TMP,true

- `rule_1` keelab igasuguste kohalike failide avamise

- `rule_2` lubab avada kasutajale kuuluvaid faile tema $`HOME` kataloogis.

- `rule_3` lubab avada faile kasutaja &kde; ajutiste failide kataloogis. Seda vajavad teatud &kde; rakendused, mis kõigepealt laadivad faili või dokumenti ajutiste failide kataloogi ja alles siis avavad selle rakenduses.

Ümbersuunamisvalik määra, kas teatud asukoha dokumendid võivad automaatselt või käsitsi hüperlingi abil viidata teatud muule asukohale. Üldise turvalisuse huvides on juba eelnevalt määratud teatud vaikereeglid. Näiteks ei tohi internetis asuvad dokumendid viidata kohalikult salvestatud dokumentidele.

Kui näiteks soovid anda intranetiserverile `www.minufirma.ee` võimaluse viidata kohalikele failidele, võid lisada järgmise reegli:

    [KDE URL Restrictions]
    rule_count=1
    rule_1=redirect,http,www.minufirma.ee,,file,,,true

Protokolle pole vaja tingimata nimepidi üles lugeda, neid võib määrata ka tervete rühmadena. Selleks on defineeritud järgmised grupid:

:local

- Protokollid, mis võimaldavad ligipääsu kohalikult salvestatud infole, näiteks file:/, man:/, fonts:/, floppy:/

:internet

- Levinud internetiprotokollid, näiteks http ja ftp

Info protokollide kohta on talletatud `*.protocol`-failides kataloogis `$`KDEDIR`/share/services`.

Kirje `Class`= defineerib grupi, kuhu protokoll kuulub: ``grep` `Class=` `$`KDEDIR`/share/services/*.protocol``

Üldised reeglid:

- :local protokollid võivad viidata suvalisele protokollile

- Alati on lubatud viidata :internet protokollile

- Mitte kõik protokollid ei kuulu gruppi (näiteks fish:/)

### Seadistusmoodulid

&kde; kasutab seadistusmooduleid &kde; keskkonna mitmesuguste aspektide seadistamiseks. Seadistusmooduleid näeb juhtimiskeskuses, rakenduse seadistusdialoogis või mõlemal pool.

Puhverserveri seadistusmoodul on juhtimiskeskuses, kuid kuulub ka &konqueror;i dialoogi Konquerori seadistamine koosseisu.

Konkreetseid seadistusmooduleid saab käivitada käsuga `kcmshell` `moodul`

Puhveserveri mooduli käivitamiseks anna käsk:

- `kcmshell` `kde-proxy.desktop`

- `kcmshell` proxy

Mitte kõigil rakendustel pole seadistusmooduleid: sageli on seadistusdialoog rakenduse lahutamatu osa.

Rangelt võttes on kõik seadistusmoodulid &kde; menüü elemendid.

- Moodulitel, mida näeb juhtimiskeskuses, on üldjuhul `.desktop`-fail kataloogis `$`KDEDIR`/share/applications/kde` ning need seab peidetud menüüsse Settings-Modules `kde-settings.menu` ja on kaasatud failist `kde-essential.menu`.

      kbuildsycoca --menutest 2> /dev/null | grep Settings-Modules

- Rakendusespetsiifilistel moodulitel on üldjuhul `.desktop`-fail kataloogis `$`KDEDIR`/share/applnk/.hidden`, mis vastab peidetud menüüle .hidden ja on kaasatud `<KDELegacyDirs/>` tulemusel.

      kbuildsycoca --menutest 2> /dev/null | grep .hidden

- Alates &kde; 3.3 on juhtimiskeskust võimalik redigeerida rakendusega kcontroledit. kcontroledit töötab samamoodi nagu kmenuedit, muudatused kehtivad ainult aktiivsele kasutajale. Muudatuste kehtestamiseks kõigile kasuta rakendust kiosktool.

Üksikuid seadistusmooduleid saab keelata, kui lisada järgmine tekst failile `kdeglobals`:

    [KDE Control Module Restrictions]
    mooduli-ID=false

Näiteks puhverserveri mooduli keelamiseks peab see olema selline:

    [KDE Control Module Restrictions]
    kde-proxy.desktop=false

Kontrolli juhtimiskeskuses ja dialoogis Konquerori seadistamine, ega puhverserveri moodulit enam näha pole.

## Mugav administraator

### Töölaua jagamine võrgus

Töölaua jagamine võrgus lubab kuskil mujal asuvatel kasutajatel näha ja isegi kontrollida aktiivse kasutaja töölauda. Kaugkasutaja peab selleks olema saanud vastava kutse, võimalik on luua ka parooliga kaitstud püsikutseid. See on ideaalne võimalus tugimeeskondadele või administraatoritele kasutada kasutaja töölauda, et aidata tema probleeme lahendada või juhendada teda mingite ülesannete täitmisel

Töölaua jagamine võrgus käib kahe rakenduse abil: &krfb; (&kde; kaugkaadripuhver, VNC-server) ja &krdc; (&kde; kaugtöölauaühendus; VNC-kclient).

&krfb;-d võib iga kasutaja tarvitada kutsete loomiseks ja haldamiseks. Kutsega luuakse ühekordne parool, mis lubab kutse saajal ühenduda sinu töölauaga. Vaikimisi kehtib see ainult ühe eduka ühenduse jaoks ning aegub tunni aja pärast, kui seda ei kasutata.

Sisenevate ühendustega tegeleb KDED kinetd-moodul. Nägemaks, kas see töötab, anna käsk ``dcop` kded kinetd services`. &krfb; ootab vaikimisi ühendusi pordis 5900. Kui saabub sisenev ühendus, ilmub dialoog, mis pärib, kas aktiivne kasutaja soovib seda lubada.

### &kde; oma kätega - iseenda tööriistade loomine

#### DCOP

Töölaua kommunikatsiooni protokoll DCOP (Desktop COmmunication Protocol) on lihtne protsessidevahelise suhtlemise mehhanism. DCOP võimaldab kasutajal suhelda parajasti töötavate programmidega. &kde; pakub kaht programmi DCOP-i kasutamiseks: käsureaprogramm dcop ja graafilise kasutajaliidesega kdcop.

Mõned märkused `dcop`'i kasutamise kohta:

- `dcop` [võtmed] [rakendus [objekt [funktsioon [arg1] [arg2] ... ] ] ]

- Rakendused, mis võivad avada korraga enam kui ühe akna, antakse kujul <rakendus>-PID

- Kõik argumendid on tõstutundlikud: setFullScreen ja setfullscreen on erinevad funktsioonid.

- Regulaaravaldise elementi * saab kasutada rakenduse ja objekti argumentides.

      % dcop kon*
      konqueror-16006
      konsole-8954

Toome mõned näidiskäsud ja nende väljundi:

    % dcop konsole*
    konsole-8954

Töötab üks Konsool töötab PID-iga 8954.

    % dcop konsole-8954
    KBookmarkManager-.../share/apps/kfile/bookmarks.xml
    KBookmarkManager-.../share/apps/konqueror/bookmarks.xml
    KBookmarkNotifier
    KDebug
    MainApplication-Interface
    konsole (default)
    konsole-mainwindow#1
    ksycoca
    session-1
    session-2
    session-3
    session-4

Siin on näha, et töötab neli seanssi.

    % dcop konsole-8954 konsole
    QCStringList interfaces()
    QCStringList functions()
    int sessionCount()
    QString currentSession()
    QString newSession()
    QString newSession(QString type)
    QString sessionId(int position)
    void activateSession(QString sessionId)
    void nextSession()
    void prevSession()
    void moveSessionLeft()
    void moveSessionRight()
    bool fullScreen()
    void setFullScreen(bool on)
    ASYNC reparseConfiguration()

Siin on Konsooli põhiprogrammi võtmed.

    % dcop konsole-8954 session-1
    QCStringList interfaces()
    QCStringList functions()
    bool closeSession()
    bool sendSignal(int signal)
    void clearHistory()
    void renameSession(QString name)
    QString sessionName()
    int sessionPID()
    QString schema()
    void setSchema(QString schema)
    QString encoding()
    void setEncoding(QString encoding)
    QString keytab()
    void setKeytab(QString keyboard)
    QSize size()
    void setSize(QSize size)

Siin on esimese seansi seesion-1 võtmed.

    % dcop konsole-8954 konsole setFullScreen true

See paneb Konsooli tööle täisekraanirežiimis.

Kui rakendusi/objekte on üle ühe, siis millist kasutada? Kuidas viide hankida?

    % echo $KONSOLE_DCOP
    DCOPRef(konsole-7547,konsole)

    % dcop $KONSOLE_DCOP newSession
    session-6

    % dcopstart konsole
    konsole-9058

    #!/bin/sh
    konsole=$(dcopstart konsole-script)
    session=$(dcop $konsole konsole currentSession)
    dcop $konsole $session renameSession Local

    session=$(dcop $konsole konsole newSession)
    dcop $konsole $session renameSession Remote

    session=$(dcop $konsole konsole newSession)
    dcop $konsole $session renameSession Code
    dcop $konsole $session sendSession 'cd /minu/töökataloog'

#### KDialog

&kde; oma kätega - iseenda tööriistade loomine

&kde; dialooge võib tööle panna ka omaenda skriptidega, mis võimaldab ühendada &UNIX; shelli skriptivõimalused &kde; kasutamishõlpsusega.

    kdialog --msgbox 'Sulle on uus kiri!'

    kdialog --title 'Uus kiri' --msgbox 'Sulle on uus kiri!'

KDialog'i komponendi võib asendada võtit `--caption` kasutades

    kdialog --title 'Uus kiri' --msgbox 'Sulle on uus kiri!' --dontagain minufail:minuvoti

Salvestab selle, kas uuesti näidata, faili `$`KDEHOME`/share/config/minufail`, kirjutades sinna järgmised read:

    [Notification Messages]
    minuvoti=false

Võtme `--msgbox` asemel võib vajaduse korral kasutada võtmeid `--sorry` ja `--error`. Näide: `kdialog` `--sorry 'Võrk ei ole kättesaadav'` või `kdialog` `--error 'Postkasti avamine ebaõnnestus'`.

Samuti võib luua teatekaste, milles saab anda jaatava või eitava vastuse.

    kdialog --yesno 'Kas luua
    internetiühendus?' echo $?

Tagastatav väärtus | Tähendus
0 | Jah, OK, Jätka
1 | Ei
2 | Loobu

Salvesta kindlasti tulemus muutujana, kui sa ei kasuta seda otseselt. Järgmine käsk täidab $? uue väärtusega. Ka siin saab kasutada võtit `--dontagain`, mis jätab meelde kasutaja valiku ning tagastab selle järgmistel kordadel, näitamata enam dialoogi.

Veel variante:

`--warningyesno`

- nagu `--yesno`, aga teistsuguse ikooniga.

`--warningcontinuecancel`

- Nuppudega Jätka ja Loobu.

`--warningyesnocancel`

- Nuppudega Jah, Ei ja Loobu. Näide:

      kdialog --warningyesnocancel 'Kas salvestada
      tehtud muudatused?'

    kdialog --inputbox "Sisesta oma nimi:" "SinuNimi"

Tulemus saadetakse standardväljundisse (stdout), et edastada see muutujale, mida saab kasutada kujul `name=$(kdialog --inputbox "Sisesta oma nimi:" "SinuNimi")`. Viimane argument pole kohustuslik, sellega saab lihtsalt dialoogis väärtuse juba ette anda.

    password=$(kdialog --password "Sisesta parool:")

Võti `--dontagain` ei toimi koos võtmetega `--inputbox` ja `--password`.

Siin on kaks dialoogi, mis lubavad kasutajal valida nimekirjast:

`--menu`

- Kasutaja saab valida nimekirjast ühe elemendi.

`--checklist`

- Kasutaja saab valida nimekirjast ühe või enam elemendi.

    city=$(kdialog --menu "Vali linn" a London b Madrid c Pariis d Berliin)

`$city` on a, b, c või d.

    city=$(kdialog --checklist "Vali linnad" a London off b Madrid on c Pariis on d Berliin off)

Madrid ja Pariis on eelnevalt ära valitud. Tulemus valitud Madridi ja Pariisiga on "b" "c".

Kui lisada võti `--separate-output`, seatakse b ja c eraldi ridadele, mis muudab tulemuse töötlemise lihtsamaks.

    file=$(kdialog --getopenfilename $HOME)
    file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Pildifailid")
    file=$(kdialog --getsavefilename $HOME/SaveMe.png)
    file=$(kdialog --getexistingdirectory $HOME)

&groupware-with-kontact;