<part id="kde-for-administrators">
<partinfo>
<authorgroup>
<author
><personname
><firstname
>Valdo</firstname
><surname
>Bastijan (Waldo Bastian)</surname
></personname
> <email
>bastian@kde.org</email
> </author>
<othercredit role="reviewer"
><personname
><firstname
>Filip</firstname
><surname
>Rodrigez (Philip Rodrigues)</surname
></personname
> <email
>phil@kde.org</email
> </othercredit>
</authorgroup>
</partinfo>

<title
><acronym
>KDE</acronym
> za administratore</title>

<chapter id="kde-internals">
<title
>Iznutrice <acronym
>KDE‑a</acronym
></title>

<sect1 id="kde-for-admins-overview">
<title
>Pregled</title>
<para
>treba da se napiše</para>
</sect1>

<sect1 id="directory-layout">
<title
>Raspored fascikli</title>

<para
><acronym
>KDE</acronym
> definiše hijerarhiju fajl sistema koju koristi uže okruženje <acronym
>KDE‑a</acronym
> kao i svi <acronym
>KDE</acronym
> programi. Uopšteno, <acronym
>KDE</acronym
> skladišti sve svoje fajlove u stablu fascikli sa utvrđenom strukturom. </para>

<para
><acronym
>KDE</acronym
> podrazumevano koristi dva stabla fascikli:</para>

<itemizedlist>
<listitem
><para
>Jedno na nivou sistema (na primer <filename class="directory"
>/opt/kde3</filename
>).</para
></listitem>
<listitem
><para
>Jedno na nivou korisnika u njegovoj domaćoj fascikli (obično <filename class="directory"
> ~/.kde</filename
>)</para
></listitem>
</itemizedlist>

<para
>U svojstvu administratora sistema, možete stvarati dodatna stabla. Takva dodatna stabla mogu se koristiti za <link linkend="user-profiles"
>profile</link
></para>

<informalexample
><para
>Linux SuSE, na primer, koristi:</para>

<itemizedlist>
<listitem
><para
><filename
class="directory"
>$<envar
>HOME</envar
>/.kde</filename
></para
></listitem>
<listitem
><para
><filename class="directory"
>/opt/kde3</filename
>. (Ovo je tipično za SuSE — druge distribucije mogu koristiti <filename class="directory"
>/usr</filename
> ili <filename class="directory"
>/usr/kde3</filename
>)</para
></listitem>
<listitem
><para
><filename class="directory"
>/etc/opt/kde3</filename
>. (Ovo su dodali u SuSEu.)</para
></listitem>
</itemizedlist>

<para
>Ako imate instaliranu Admin-alatka Kioska, verziju 0.7 ili noviju, možete proveriti koja se stabla fascikli koriste sledećom naredbom: <userinput
><command
>kiosktool-kdedirs</command
> <option
>--check</option
></userinput
></para>
</informalexample>

<para
><acronym
>KDE</acronym
> i <acronym
>KDE</acronym
> programi traže fajlove skeniranjem svih <acronym
>KDE‑ovih</acronym
> stabala fascikli. Stabla fascikli proveravaju se po redosledu prvenstva. Ako je fajl prisutan u nekoliko stabala, prednost ima poslednje stablo. Najveće prvenstvo obično ima stablo smešteno u korisnikovoj domaćoj fascikli. Ovo je i stablo fascikli u koje se upisuju izmene.</para>

<informalexample>
<para
>Za informacije o MIME tipu <literal
>text/plain</literal
>, pretražuju se sledeći fajlovi:</para>

<itemizedlist>
<listitem
><para
><filename
class="directory"
>$<envar
>HOME</envar
>/.kde/share/mimelnk/text/plain.desktop</filename
></para
></listitem>
<listitem
><para
><filename
class="directory"
>/opt/kde3/share/mimelnk/text/plain.desktop</filename
></para
></listitem>
<listitem
><para
><filename
class="directory"
>/etc/opt/kde3/share/mimelnk/text/plain.desktop</filename
></para
></listitem>
</itemizedlist>

<para
>Ako korisnik napravi izmenu, ona se upisuje u <filename class="directory"
>$<envar
>HOME</envar
>/.kde/share/mimelnk/text/plain.desktop</filename
></para>
</informalexample>

<para
>Za postavne fajlove se priča neznatno razlikuje. Ako se u stablima fascikli nađe više istoimenih postavnih fajlova, njihov sadržaj se kombinuje. Ovde igra ulogu redosled prvenstva. Kad dva fajla definišu isti postavni ključ, fajl sa najvećim prvenstvom određuje koja se vrednost koristi za ključ.</para>

<informalexample
><para
>Ako, na primer, postoje sledeća dva fajla sa sadržajima:</para>
<variablelist>
<varlistentry
><term
><filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
></term>
<listitem
><programlisting
>Color=red
Shape=circle
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename
>/etc/opt/kde3/share/config/foobar</filename
></term>
<listitem
><programlisting
>Color=blue
Position=10,10
</programlisting>
</listitem>
</varlistentry>
</variablelist>

<para
>Fajlovi će biti stopljeni i proizvesti:</para>

<programlisting
>Color=red
Shape=circle
Position=10,10
</programlisting>

</informalexample>
</sect1>

<sect1 id="specifying-directories">
<title
>Zadavanje fascikli</title>

<para>

<segmentedlist>
<segtitle
>Promenljiva okruženja</segtitle>
<segtitle
>Primeri postavki</segtitle>
<segtitle
>Komentar</segtitle>

<seglistitem>
<seg
><envar
>KDEHOME</envar
></seg>
<seg
><filename class="directory"
>~/.kde</filename
></seg>
<seg
></seg>
</seglistitem>

<seglistitem>
<seg
><envar
>KDEROOTHOME</envar
></seg>
<seg
><filename class="directory"
>/root/.kde</filename
></seg>
<seg
>Različita promenljiva da spreči pisanje korena u $<envar
>KDEHOME</envar
> korisnika po izvršavanju <command
>su</command
>.</seg>
</seglistitem>

<seglistitem>
<seg
><envar
>KDEDIR</envar
></seg>
<seg
><filename class="directory"
>/opt/kde3</filename
>, <filename class="directory"
>/usr</filename
>, <filename class="directory"
>/usr/kde3</filename
></seg>
<seg
>Zavisi od izdavača. Koristi je <acronym
>KDE</acronym
> 2. Ako nije postavljena, spada na ugrađeno podrazumevano.</seg>
</seglistitem>

<seglistitem>
<seg
><envar
>KDEDIRS</envar
></seg>
<seg
><filename class="directory"
>/opt/kde3</filename
>, <filename class="directory"
>/usr</filename
>, <filename class="directory"
>/usr/kde3</filename
></seg>
<seg
>Nova u <acronym
>KDE‑u</acronym
> 3. Može da nabraja višestruke lokacije, razdvojene dvotačkom. Ako nije postavljena, spada na $<envar
>KDEDIR</envar
></seg>
</seglistitem>

</segmentedlist>
</para>
<para
>Ne <emphasis
>mora</emphasis
> da se postavlja, fino rade i podrazumevane.</para>
<para
>Radite s <acronym
>KDE‑om</acronym
> 2 pored <acronym
>KDE‑a</acronym
> 3? Uperite $<envar
>KDEDIR</envar
> na <acronym
>KDE</acronym
> 2, a $<envar
>KDEDIRS</envar
> na <acronym
>KDE</acronym
> 3.</para>

<informalexample>
<para
>Zaposleni na univerzitetu mogao bi imati sledeće postavke:</para>
<programlisting
>KDEHOME='~/.kde3'
KDEROOTHOME='/root/.kde3'
KDEDIRS='/opt/kde_staff:/opt/kde3'
</programlisting>

</informalexample>

</sect1>

<sect1 id="user-profiles">
<title
>Korisnički profili</title>

<para
>U prethodnom primeru, u <filename class="directory"
>/opt/kde_staff</filename
> sadržane su dodatne postavke i programi za osoblje. Korisnički profili vam omogućavaju dodavanje ove fascikle samo za neke korisnike, a ne za ostale. Fajlu <filename
>/etc/kderc</filename
> dodajte ovo:</para>

<programlisting
>[Directories-staff]
prefiksi=/opt/kde_staff
</programlisting>

<para
>Ovo stvara profil po imenu <literal
>staff</literal
> koji dodaje stablo fascikli <filename class="directory"
>/opt/kde_staff</filename
>. (SuSE koristi <filename
>/etc/kde3rc</filename
> umesto <filename
>/etc/kderc</filename
>). Sad kad imamo imenovani profil, on se može dodeliti korisnicima.</para>

<para
>Da bismo mapirali profile korisnicima, treba zadati mapirajući fajl u <filename
>/etc/kderc</filename
>:</para>

<programlisting
>[Directories]
userProfileMapFile=/etc/kde-user-profile 
</programlisting>

<para
>Sada je moguće dodeliti profil na osnovu ili korisničkog imena ili unix grupe kojoj korisnik pripada.</para
> 

<para
>Za dodelu profila osoblja svim korisnicima koji su članovi unix grupe <literal
>staff_members</literal
>, dodajte sledeće fajlu <filename
>/etc/kde-user-profile</filename
>:</para>

<programlisting
>[General]
groups=staff_members
[Groups]
staff_members=staff
</programlisting>

<para
>Profil je moguće dodeliti i pojedinačnom korisniku:</para>

<programlisting
>[Users]
bastian=staff
</programlisting>

</sect1>

<sect1 id="directory-layout-revisited">
<title
>Još jednom o rasporedu fascikli</title>

<para
>Svako stablo fascikli koje <acronym
>KDE</acronym
> koristi ima utvrđenu strukturu fascikli. Fascikle koje nisu bitne za određeno stablo, ili se prosto ne koriste, mogu se pak izostaviti. Na primer, fascikle za privremene fajlove obično se mogu naći samo pod <filename class="directory"
>$<envar
>KDEHOME</envar
></filename
>, ali ne u bilo kom drugom stablu fascikli.</para>

</sect1>

<sect1 id="architecture-specific-directories">
<title
>Arhitekturi svojstvene fascikle</title>

<para
>Arhitekturi svojstvene fascikle (tip OS‑a ili CPU‑a): </para>

<variablelist>
<varlistentry>
<term
><filename class="directory"
>bin</filename
></term>
<listitem
><para
>Koristi se za izvršne fajlove <acronym
>KDE‑a</acronym
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>lib</filename
></term>
<listitem
><para
>Koristi se za biblioteke <acronym
>KDE‑a</acronym
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>lib/kde3</filename
></term>
<listitem
><para
>Ova fascikla sadrži komponente, priključke i druge objekte učitljive za izvršavanja koje koriste <acronym
>KDE</acronym
> programi. </para
></listitem
> 
</varlistentry>
</variablelist>

</sect1>

<sect1 id="shared-directories">
<title
>Deljene fascikle</title>

<para
>Deljene: koje nisu arhitekturi svojstvene, već se mogu deliti između različitih.</para>

<variablelist>
<varlistentry>
<term
><filename class="directory"
>share/applnk</filename
></term>
<listitem
><para
>.desktop fajlovi za KMenu (staro)</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/applications</filename
></term>
<listitem
><para
>.desktop fajlovi za KMenu (od <acronym
>KDE‑a</acronym
> 3.2) </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/apps</filename
></term>
<listitem
><para
>Sadrži programima svojstvene fajlove. Svaki program ovde ima potfasciklu za skladištenje dodatnih fajlova.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/config</filename
></term>
<listitem
><para
>Postavni fajlovi. Postavni fajlovi se obično imenuju po naredbi programa kom pripadaju, uz dodatak slova <literal
>rc</literal
>. Poseban slučaj je fajl <filename
>kdeglobals</filename
>, koji čitaju svi <acronym
>KDE</acronym
> programi.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename
class="directory"
>share/config/session</filename
></term>
<listitem
><para
>Ova fasciklu koristi upravljanje sesijama i obično je dostupna samo pod <filename class="directory"
>$<envar
>KDEHOME</envar
></filename
>. Na kraju sesije, <acronym
>KDE</acronym
> programi ovde skladište svoje stanje. Imena fajla sastoje se od imena naredbe programa, za kojom sledi broj. Menadžer sesija <command
>ksmserver</command
> skladišti upućivanja na ove brojeve pri upisivanju sesije u <filename
>ksmserverrc</filename
>.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/doc/HTML</filename
></term>
<listitem
><para
>Ova fascikla sadrži dokumentaciju <acronym
>KDE</acronym
> programâ. Dokumentacija je podeljena na kategorije, po jeziku i programu kojem pripada. U fascikli se obično mogu naći najmanje dva fajla: <filename
>index.docbook</filename
>, koji sadrži sirovu dokumentaciju u formatu DocBook, i <filename
>index.cache.bz2</filename
>, koji sadrži istu tu dokumentaciju u obliku kompresovanog HTML‑a. HTML verziju koristi <application
>K‑centar-pomoći</application
>. Ako HTML verzija nedostaje, <application
>K‑centar-pomoći</application
> će je ponovo stvoriti na osnovu DocBooka, ali to ume da potraje.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/icons</filename
></term>
<listitem
><para
>U ovoj fascikli skladište se ikone. Podeljene su po temama, dimenzijama i kategoriji upotrebe.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/mimelnk</filename
></term>
<listitem
><para
>U ovoj fascikli skladište se .desktop fajlovi koji opisuju MIME tipove. <acronym
>KDE</acronym
> koristi MIME tipove da odredi tip fajla.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/services</filename
></term>
<listitem
><para
>Ova fascikla sadrži .desktop fajlove koji opisuju servise. Servisi su poput programa, ali ih obično pokreću drugi programi, umesto korisnik. Servisi se ne pojavljuju u KMeniju.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/servicetypes</filename
></term>
<listitem
><para
>Ova fascikla sadrži .desktop fajlove koji opisuju tipove servisa. Tip servisa obično predstavlja izvesno programersko sučelje. Programi i servisi u svojim .desktop fajlovima sadrže tipove servisa koje pružaju.</para
> </listitem
></varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/sounds</filename
></term>
<listitem
><para
>Ova fascikla sadrži zvučne fajlove.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/templates</filename
></term>
<listitem
><para
>Ova fascikla sadrži šablone za stvaranje fajlova raznih tipova. Šablon se sastoji od .desktop fajla koji opisuje fajl i sadrži upućivač na fajl u potfascikli <filename class="directory"
>.source</filename
>. Šabloni u ovoj fascikli pojavljuju se u meniju <guimenu
>Napravi novo</guimenu
>, dostupnom na površi i u pregledaču fajlova. Kad korisnik iz menija izabere šablon, kopira se njegov izvorni fajl.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename class="directory"
>share/wallpapers</filename
></term>
<listitem
><para
>Ova fascikla sadrži slike koje se mogu koristiti kao pozadina površi</para
></listitem>
</varlistentry>

</variablelist>

</sect1>

<sect1 id="host-specific-directories">
<title
>Domaćinu svojstvene fascikle</title
> 

<para
>Postoje tri domaćinu svojstvene fascikle, koje su obično simpovezane sa drugim lokacijama. Ako ove fascikle još ne postoje, sledeće simveze i fascikle biće stvorene pomoću alatke <command
>lnusertemp</command
>:</para>

<variablelist>

<varlistentry>
<term
><filename
>$<envar
>KDEHOME</envar
>/socket-$<envar
>HOSTNAME</envar
> </filename
></term>
<listitem
><para
>Obično <filename class="directory"
>/tmp/ksocket-$<envar
>USER</envar
></filename
>, koristi se za razne unix sokete.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename
>$<envar
>KDEHOME</envar
>/tmp-$<envar
>HOSTNAME</envar
></filename
></term>
<listitem
><para
>Obično <filename class="directory"
>/tmp/kde-$<envar
>USER</envar
></filename
>, koristi se za privremene fajlove.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><filename
>$<envar
>KDEHOME</envar
>/cache-$<envar
>HOSTNAME</envar
></filename
></term>
<listitem
><para
>Obično <filename class="directory"
>/var/tmp/kdecache-$<envar
>USER</envar
></filename
>, koristi se za keširane fajlove.</para>
</listitem>
</varlistentry>
</variablelist>

<para
>Pošto i u <filename class="directory"
>/tmp</filename
> i u <filename class="directory"
>/var/tmp</filename
> svi mogu pisati, postoji mogućnost da jedna od gornjih fascikli već postoji, ali da je poseduje drugi korisnik. U tom slučaju će alatka <command
>lnusertemp</command
> stvoriti novu fasciklu sa alternativnim imenom i povezati ka njoj.</para>

</sect1>

<sect1 id="configuration-files">
<title
>Postavni fajlovi</title
> <para
>Za sve svoje postavne fajlove, <acronym
>KDE</acronym
> koristi prost tekstualni format. Sastoji se od parova ključ‑vrednost podeljenih u grupe. Svi <acronym
>KDE</acronym
> postavni fajlovi koriste kodiranje UTF‑8 za tekst izvan opsega ASCII‑a.</para>

<para
>Početak grupe određen je imenom grupe stavljenim u uglaste zagrade. Svi unosi ključ‑vrednost koji slede pripadaju toj grupi. Grupa se završava ili gde započinje nova, ili kad je dostignut kraj fajla. Unosi na vrhu fajla kojima ne prethodi ime grupe pripadaju podrazumevanoj grupi.</para>

<informalexample
><para
>Sledeći primer pokazuje postavni fajl koji se sastoji od dve grupe. Prva grupa sadrži ključeve <varname
>LargeCursor</varname
> i <varname
>SingleClick</varname
>, a druga <varname
>Show hidden files</varname
> i <varname
>Sort by</varname
>:</para>

<programlisting
>[KDE]
LargeCursor=false
SingleClick=true
</programlisting>

<programlisting
>[KFileDialog Settings]
Show hidden files=false
Sort by=Name
</programlisting>
</informalexample>

<para
>Unosi u grupi sastoje se od ključa i vrednosti razdvojenih znakom jednakosti. Ključ može sadržavati razmake i mogu mu slediti opcije stavljene u uglaste zagrade. Deo posle znaka jednakosti je vrednost unosa. Ignoriše se svaka belina koji okružuje znak jednakosti, kao i svaka prateća belina. Sažetije, format glasi:</para>

<programlisting
><replaceable
>entry</replaceable
>=<replaceable
>value</replaceable
>
</programlisting>

<para
>Ako vrednost treba da sadrži razmak na početku ili kraju, onda se to može postići korišćenjem kontrakroza za kojim sledi „s“: <token
>\s</token
>.</para>

<para
>Postoji nekoliko drugih kodova s kontrakrozom, evo potpunog spiska: <itemizedlist>
<listitem
><para
><token
>\s</token
> može se koristiti kao razmak</para>
</listitem>
<listitem
><para
><token
>\t</token
> služi za ubacivanje tabulatora</para>
</listitem>
<listitem
><para
><token
>\r</token
> za znak povratka reda</para>
</listitem>
<listitem
><para
><token
>\n</token
> za znak uvoda reda (novi red)</para>
</listitem>
<listitem
><para
><token
>\\</token
> za ubacivanje samog kontrakroza</para>
</listitem>
</itemizedlist
></para>

<informalexample
><para
>U sledećem primeru vrednost unosa <varname
>Caption</varname
> počinje sa dvama razmacima, dok unos <varname
>Description</varname
> sadrži tri reda teksta. Uvodi reda u zapisu s kontrakrozom služe da razdvoje različite redove.</para>

<programlisting
>[Preview Image]
Caption=\s My Caption
Description=This is\na very long\ndescription.
</programlisting>
</informalexample>

<para
>U postavnim fajlovima ignorišu se prazni redovi, kao i redovi koji počinju znakom tarabe ‘#’. Taraba se može koristiti za dodavanje komentara u postavnim fajlovima. Valja zapaziti da, kada <acronym
>KDE</acronym
> program ažurira postavni fajl, komentari <emphasis
>ne bivaju</emphasis
> sačuvani.</para>

<para
>Mogu biti i više postavnih fajlova sa istim imenom u potfascikli <filename class="directory"
>share/config</filename
> raznih <acronym
>KDE‑ovih</acronym
> stabala fascikli. U tom slučaju se informacije iz istoimenih postavnih fajlova kombinuju ključ‑po‑ključ: ako je isti ključ unutar neke grupe definisan na više od jednog mesta, koristiće se vrednost ključa pročitana iz stabla fascikli sa najvišim prvenstvom. Postavni fajlovi pod <filename class="directory"
>$<envar
>KDEHOME</envar
></filename
> uvek imaju najveće prvenstvo. Ako je ključ u nekoj grupi višestruko definisan u istom fajlu, uzeće se vrednost poslednjeg unosa.</para>

<informalexample>
<para
>Ako <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
> a <filename
>/etc/opt/kde3/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting
> rezultat će biti: <programlisting
>[MyGroup]
Color=red
Shape=circle
Position=10,10
</programlisting>
</para>
</informalexample>

<informalexample>
<para
>Ako <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=red
Shape=circle
[MyGroup]
Color=green
</programlisting
> a <filename
>/opt/kde_staff/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=purple
Position=20,20
</programlisting
> i <filename
>/etc/opt/kde3/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting
> rezultat će biti: <programlisting
>[MyGroup]
Color=green
Shape=circle
Position=20,20
</programlisting>
</para>
</informalexample>

<para
>Da bi se korisnici sprečili da prebrišu podrazumevane postavke, one se mogu obeležiti kao nepromenljive. Postavke se mogu učiniti nepromenljivim pojedinačno, grupno ili po fajlu. Pojedinačan unos može se zaključati dodavanjem <userinput
>[$i]</userinput
> iza ključa, npr: <programlisting
>Color[$i]=blue
</programlisting>
</para>
<para
>Grupa unosa može se zaključati stavljanjem <userinput
>[$i]</userinput
> iza imena grupe, npr:  <programlisting
>[MyGroup][$i]
</programlisting>
</para>
<para
>Za zaključavanje celog fajla, započnite fajl sa <userinput
>[$i]</userinput
> samim u jednom redu, tj: <programlisting
>[$i]
</programlisting>
</para>

<informalexample>
<para
>Ako <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
> a <filename
>/etc/opt/kde3/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting
> rezultat će biti: <programlisting
>[MyGroup]
Color=blue
Position=10,10 
</programlisting>
</para>
</informalexample>

<informalexample
><para
>Ako <filename
>$<envar
>HOME</envar
>/.kde/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting
> a <filename
>/opt/kde_staff/share/config/foobar</filename
> sadrži: <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting
> rezultat će biti:  <programlisting
>[MyGroup]
Color=purple
Shape=rectangle
Position=10,10 
</programlisting>
</para>
</informalexample>


<para
>Da bi se obezbedile dinamičnije podrazumevane vrednosti, može se koristiti tzv. „razvoj školjke“. Razvojem školjke može se konstruisati vrednost postavnog ključa na osnovu vrednosti promenljive okruženja ili izlaza naredbe školjke. Za uključivanje razvoja školjke za postavni unos, za ključem mora slediti <token
>[$e]</token
>. Posle prve upotrebe, prošireni oblik obično biva upisan u korisnikov postavni fajl. Da bi se to sprečilo, preporučuje se zaključavanje postavnog unosa pomoću <token
>[$ie]</token
>. Korisnik, naravno, ovo posle ne može da menja.</para>

<informalexample>
<para
>U sledećem primeru, vrednost unosa <varname
>Host</varname
> određena je izlazom naredbe <command
>hostname</command
>. Ova postavka takođe je zaključana da bi se osiguralo trajno dinamičko određenje vrednosti.</para>

<para
>Vrednost za unos <varname
>Email</varname
> određena je popunjavanjem vrednosti promenljivih okruženja $<envar
>USER</envar
> i $<envar
>HOST</envar
>. Ako je <systemitem class="username"
>joe</systemitem
> prijavljen na <systemitem class="systemname"
>joes_host</systemitem
>, rezultat će biti vrednost jednaka ovoj: <literal
>joe@joes_host</literal
>. Postavka nije zaključana.</para>

<programlisting
>[Mail Settings] 
Host[$ie]=$(hostname)
Email[$e]=${USER}@${HOST}
</programlisting>
</informalexample>

<para
>Većina postavnih unosa može se indeksirati jezičkim kodom. U tom slučaju, jezik koji je korisnik izabrao za radnu površ koristi se pri traženju vrednosti ključa. Ako je izabran podrazumevani jezik (američki engleski), ili nema indeksa koji odgovara izabranom jeziku, koristi se unos ključa bez indeksa.</para>

<informalexample>
<para
>U sledećem primeru, vrednost unosa <varname
>Caption</varname
> zavisi od jezika. Ako je korisnik kao jezik izabrao francuski (jezički kôd <literal
>fr</literal
>), vrednost unosa biće <foreignphrase lang="fr"
>Ma Légende</foreignphrase
>. U svim drugim slučajevima uzeće se vrednost <foreignphrase lang="en"
>My Caption</foreignphrase
>.</para>

<programlisting
>[Preview Image]
Caption=My Caption
Caption[fr]=Ma Légende
</programlisting>
</informalexample>

<informalexample>
<para
>U ovom primeru, vrednost unosa <varname
>Caption</varname
> zavisi od jezika. Ako je korisnik kao jezik izabrao francuski (jezički kôd <literal
>fr</literal
>), vrednost unosa biće <foreignphrase lang="fr"
>Ma Légende</foreignphrase
>. U svim drugim slučajevima uzeće se vrednost <foreignphrase lang="en"
>My Caption</foreignphrase
>.</para>

<programlisting
>[Preview Image]
Caption=My Caption
Caption[fr]=Ma Légende
</programlisting>
</informalexample>

<para
>Unosi koji se mogu pojaviti u postavnom fajlu, uopšteno, nisu dokumentovani. Sa <acronym
>KDE‑om</acronym
> 3.2 napravljen je korak da se ovo promeni. U <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/config.kcfg</filename
> mogu se naći fajlovi koji obezbeđuju formalan opis mogućih unosa u postavnom fajlu. Ako su raspoloživi, koristi ih <acronym
>KDE‑ov</acronym
> uređivač postave.</para>

<informalexample>
<para
>Evo primera XML postavnog fajla: <programlisting
><markup>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd"&gt;
&lt;kcfg&gt;
    &lt;kcfgfile name="korganizerrc"&gt;
    &lt;group name="General"&gt;
         &lt;entry type="Bool" key="Auto Save"&gt;
             &lt;label&gt;Enable automatic saving of calendar&lt;/label&gt;
             &lt;default&gt;true&lt;/default&gt;
         &lt;/entry&gt;
         &lt;entry type="Int" key="Auto Save Interval"&gt;
             &lt;default&gt;10&lt;/default&gt;
         &lt;/entry&gt;
    &lt;group&gt;
&lt;kcfg&gt;
</markup
> 
</programlisting>
</para>
<para
>Ovo ima isti efekat kao: <programlisting
>[General]
Auto Save=false
Auto Save Interval=25 
</programlisting>
</para>
</informalexample>

</sect1>

<sect1 id="kde-startup-sequence">
<title
>Tok pokretanja <acronym
>KDE‑a</acronym
></title>

<sect2 id="kdm">
<title
><application
>KDM</application
></title>

<para
>Uvek se izvršava kao <systemitem class="username"
>root</systemitem
>! Koristi <filename
>$<envar
>KDEDIR</envar
>/share/config/kdmrc</filename
> i <filename
>/etc/X11/xdm/Xservers</filename
>. Potonji fajl sadrži unose poput:</para>

<programlisting
>:0 local /usr/X11R6/bin/X :0 vt07 
</programlisting>

<para
>Relevantni fajlovi na pokretanju takođe su: </para>
<simplelist>
<member
>Sekcija <literal
>[X-*-Core]</literal
> u <filename
>kdmrc</filename
> </member>
<member
>Postava — <filename
>/etc/X11/xdm/Xsetup</filename
>  </member>
<member
>Korisnik unosi korisničko ime i lozinku </member>
<member
>Pokretanje — <filename
>/etc/X11/xdm/Xstartup</filename
> — priprema kao koren </member>
<member
>Sesija — <filename
>/etc/X11/xdm/Xsession</filename
> — pokreće sesiju kao korisnik  </member>
<member
>= za <acronym
>KDE</acronym
> sesiju: <command
>kde</command
> ili <command
>startkde</command
>  </member>
<member
>= ako postoji <filename
>~/.xsession</filename
> ili <filename
>~/.xinitrc</filename
>  </member>
<member
>Resetovanje — <filename
>/etc/X11/xdm/Xreset</filename
> — posle završene sesije </member>
</simplelist>

</sect2>

<sect2 id="startkde">
<title
>Skripta za pokretanje <acronym
>KDE‑a</acronym
>: <command
>startkde</command
> </title>

<para
>Tok pokretanja <acronym
>KDE‑a</acronym
> počinje sa skriptom <filename
>startkde</filename
>. Ona se u većini slučajeva poziva iz menadžera prijavljivanja (<application
>KDM‑a</application
>) pošto se korisnik autentifikuje. U skripti <filename
>startkde</filename
> nalaze se dva veoma važna reda:</para>

<programlisting
>LD_BIND_NOW=true kdeinit4 +kcminit_startup
kwrapper4 ksmserver $KDEWM
</programlisting>

<para
>Prvi red pokreće glavni proces naredbom <command
>kdeinit4</command
>, koji služi za pokretanje svih ostalih <acronym
>KDE</acronym
> procesa. U izlazu <command
>ps <option
>aux</option
></command
> pojavljuje se kao <computeroutput
>kdeinit4:Running...</computeroutput
>. Argumenti posle <command
>kdeinit4</command
> imena su dodatnih procesa koje treba pokrenuti. Znak <token
>+</token
> ukazuje da <command
>kdeinit4</command
> treba da čeka dok se proces završi. <command
>kdeinit4</command
> takođe pokreće <command
>klauncher</command
> i <command
>kded</command
>. </para>

<para
>Drugi red traži od <command
>kdeinit4</command
> da pokrene proces menadžera sesija <command
>ksmserver</command
>. Menadžer sesija određuje dužinu života sesije. Kad se ovaj proces okonča, korisnik je odjavljen.</para>

</sect2>
</sect1>

<sect1 id="background-processes">
<title
>Pozadinski procesi</title>

<para
>Svi pozadinski <acronym
>KDE</acronym
> servisi posebni su po korisniku — za razliku od sistemskih demona, ne dele se među korisnicima. Isto kao što su jedinstveni po korisniku, takvi su i po prikazu X servera. Procesi su sledeći:</para>

<variablelist>
<varlistentry>
<term
><command
>dcopserver</command
></term>
<listitem
><para
>Komunikacija na radnoj površi</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>kded</command
></term>
<listitem
><para
>Generički demon servisa</para>
<para
>Po potrebi okida ažuriranja baze podataka <link linkend="ksycoca"
>Sycoce</link
></para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>kcminit</command
></term>
<listitem
><para
>Servis uspostavljanja</para>
<para
>Za više informacija, pogledajte <xref linkend="kcminit"/>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>klauncher</command
></term>
<listitem
><para
>Pokretanje programa (ovo <emphasis
>nije</emphasis
> onaj dijalog na <keycombo action="simul"
><keycap
>Alt</keycap
><keycap
>F2</keycap
> </keycombo
>!)</para>
<para
>Za više informacija, pogledajte <xref linkend="klauncher"/>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>knotify</command
></term>
<listitem
><para
>Obaveštenja korisniku.</para>
<para
>Za više informacija, pogledajte <xref linkend="knotify"/>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>ksmserver</command
></term>
<listitem
><para
>Upravljanje sesijama</para>
<para
>Za više informacija, pogledajte <xref linkend="ksmserver"/>.</para>
</listitem>
</varlistentry>

</variablelist>

<sect2 id="kdeinit">
<title
><command
>kdeinit</command
></title>
<para
>Naredba <command
>kdeinit</command
> koristi se za pokretanje svih ostalih <acronym
>KDE</acronym
> programa. <command
>kdeinit</command
> obično može da pokrene i binarne programske fajlove i učitljive module (KLM‑ove). KLM‑ovi rade isto kao binarni programski fajlovi, ali se mogu efikasnije pokretati. Oni prebivaju u <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib/kde3</filename
>.</para>

<para
>Nezgoda je što se ovako pokrenuti programi pojavljuju kao <computeroutput
><command
>kdeinit</command
></computeroutput
> u izlazu <command
>top</command
> i <command
>ps</command
>. Koristite <command
>top <option
>-c</option
></command
> ili <command
>ps <option
>aux</option
></command
> da vidite stvarno ime programa:</para>

<screen
><prompt
>%</prompt
><userinput
><command
>ps <option
>aux</option
></command
> </userinput>
<computeroutput>
waba     23184  0.2  2.1 23428 11124 ?        S    21:41   0:00 kdeinit4: Running...
waba     23189  0.2  2.4 25136 12496 ?        S    21:41   0:00 kdeinit4: klauncher
waba     23192  0.7  2.8 25596 14772 ?        S    21:41   0:00 kdeinit4: kded
waba     23203  0.8  3.4 31516 17892 ?        S    21:41   0:00 kdeinit4: knotify
</computeroutput
>
</screen>

<para
><computeroutput
>kdeinit: Running...</computeroutput
> pokazuje glavni proces <command
>kdeinit</command
>. Ostali nabrojani procesi su programi pokrenuti kao KLM‑ovi.</para>

<para
>Kad se prvi put pokrene, <command
>kdeinit</command
> će pokrenuti <command
>klauncher</command
> i <command
>kded</command
>, kao i sve dodatne programe na svojoj komandnoj liniji u skripti <command
>startkde</command
>, obično <command
>kcminit_startup</command
>.</para>

</sect2>

<sect2 id="kcminit">
<title
><command
>kcminit</command
></title>

<para
>Naredba <command
>kcminit</command
> izvršava uspostavne servise tokom pokretanja. Uspostavni servisi zadati su u .desktop fajlovima programâ ili servisa, redom <varname
>X-KDE-Init</varname
>:</para>

<programlisting
>[Desktop Entry]
Encoding=UTF-8
Exec=kcmshell4 energy
Icon=energy_star
Type=Application
X-KDE-Library=energy
X-KDE-Init=energy
</programlisting>

<para
>Uspostavni servisi tipično se koriste za uspostavljanje hardvera na osnovu korisničkih postavki.</para>

<para
><userinput
><command
>kcminit<option
>--list</option
></command
></userinput
> može se koristiti za sve pokretačke servise, a <userinput
><command
>kcminit<replaceable
>service</replaceable
></command
></userinput
> može se koristiti za izričito izvršenje pojedinačnog servisa. Može biti korisno za pretresanje problemâ na pokretanju.</para>

</sect2>

<sect2 id="klauncher">
<title
><command
>klauncher</command
></title>

<para
>KLauncher (<command
>klauncher</command
>) je demon odgovoran za aktiviranje servisa u okviru <acronym
>KDE‑a</acronym
>. Tesno sarađuje sa glavnim procesom <command
>kdeinit</command
> radi pokretanja novih procesa. <acronym
>KDE</acronym
> programi komuniciraju sa <command
>klauncher</command
> preko DCOP‑a, radi pokretanja novih programa i servisa.</para>

<para
>Najpoznatiji iz poruke o grešci <computeroutput
><errortext
>KLauncher nije dostupan preko D‑Busa [...]</errortext
></computeroutput
> koja ukazuje na ozbiljan problem sa naredbom <command
>dcopserver</command
>, ili da se <command
>klauncher</command
> srušila.</para>

<para
><command
>klauncher</command
> se može iznova pokrenuti ponovnim pokretanjem <command
>kdeinit</command
> iz konzolnog prozora. Kad ovo radite, uverite se da su pravilno postavljene $<envar
>HOME</envar
>, $<envar
>DISPLAY</envar
> i razne $<envar
>KDEDIR(S)</envar
>!</para>

</sect2>

<sect2 id="knotify">
<title
><command
>knotify</command
></title>

<para
>Primarni zadatak naredbe <command
>knotify</command
> jeste da poveže zvučna obaveštenja sa serverom zvuka, a obezbeđuje i alternativne metode obaveštavanja.</para>

</sect2>


</sect1>

<sect1 id="ksmserver">
<title
><application
>KSMServer</application
></title>

<para
><application
>KSMServer</application
> (<command
>ksmserver</command
>) je <acronym
>KDE‑ov</acronym
> menadžer sesija. Po pokretanju on izvršava samopokretanje programâ i obnavlja programe iz prethodne sesije. Programi za samopokretanje određeni su .desktop fajlovima u fascikli <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/autostart</filename
>. Da li neki program treba automatski pokrenuti ili ne, može se usloviti prema nekom postavnom unosu datom unosom <varname
>X-KDE-autostart-condition</varname
> u .desktop fajlu.</para>

<informalexample>
<para
>Na primer, fajl <filename
>ktip.desktop</filename
> sadrži:</para>

<programlisting
>X-KDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true
</programlisting>

<para
>Ovo znači da se u postavnom fajlu <filename
>ktiprc</filename
> proverava unos <varname
>RunOnStart</varname
> u sekciji <varname
>[TipOfDay]</varname
>. Ako takav unos ne postoji, pretpostavlja se <literal
>true</literal
>, što znači da <application
>K‑savet</application
> postaje jedan od programa što se podrazumevano automatski pokreću.</para>
</informalexample>

<para
>Neke od naredbi koje automatski pokreće <command
>ksmserver</command
>:</para>

<variablelist>

<varlistentry>
<term
><command
>kdesktop</command
></term>
<listitem
><para
>Površ <acronym
>KDE‑a</acronym
></para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>kicker</command
></term>
<listitem
><para
><application
>Kicker</application
>, <acronym
>KDE‑ov</acronym
> panel</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>ktip</command
></term>
<listitem
><para
>Program za savete dana <application
>K‑savet</application
></para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>kwrited</command
></term>
<listitem
><para
>Alatka za prijem sistemskih poruka poslatih korisniku</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><application
>Klipper</application
></term>
<listitem
><para
><application
>Klipper</application
>, alatka klipborda koja se usidrava na panelu</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><command
>kalarm</command
></term>
<listitem
><para
><application
>K‑alarm</application
>, alatka koja upozorava na dolazeće događaje i sastanke</para>
</listitem>

</varlistentry>
</variablelist>

<para
>Naredba <command
>kdesktop</command
> nadalje automatski pokreće programe skladištene u <filename class="directory"
>$<envar
>KDEHOME</envar
>/Autostart</filename
>. <command
>kdesktop</command
> će automatski otvoriti sve fajlove u ovoj fascikli, uključujući dokumente, binarne fajlove ili programe u vidu .desktop fajlova.</para>

<para
><acronym
>KDE‑ov</acronym
> menadžer sesija takođe obnavlja neku od prethodnih sesija. Sesija sadrži kako skup programa, tako i programu svojstvene podatke koje odražavaju njegovo stanje u trenutku upisivanja sesije. Sesije se skladište u postavnom fajlu <filename
>ksmserverrc</filename
>, koji upućuje na programu svojstvene podatke o stanju, skladištene u <filename class="directory"
>$<envar
>KDEHOME</envar
>/share/config/session</filename
>. Podaci o stanju <application
>KWina</application
> sadrže lokaciju programskih prozora svih ostalih programa u sesiji. </para>

</sect1>

<sect1 id="environment-variables">
<title
>Promenljive okruženja</title>

<para
>Neke važne promenljive okruženja koje koristi <acronym
>KDE</acronym
>:</para>

<variablelist>

<varlistentry>
<term
>$<envar
>KDEDIR</envar
></term>
<listitem
><para
>Treba da se postavi ako nije postavljena <envar
>KDEDIRS</envar
>, i treba da ukazuje na koren instalacionog stabla <acronym
>KDE‑a</acronym
>. Omogućava <acronym
>KDE‑u</acronym
> da pronađe podatke poput ikona, menija i biblioteka.</para>
</listitem>
</varlistentry>

<varlistentry
><term
><envar
>KDEDIRS</envar
></term>
<listitem
><para
>Potiskuje promenljivu <envar
>KDEDIR</envar
> i omogućava vam da zadate više fascikli u kojima će <acronym
>KDE</acronym
> tražiti podatke. Korisna ako želite ili morate da instalirate neke programe u drugačijem prefiksu od ostatka <acronym
>KDE‑a</acronym
>.</para
> 
</listitem>
</varlistentry>

<varlistentry
><term
><envar
>$KDEHOME</envar
></term
><listitem
><para
>Ako nije postavljena, <acronym
>KDE</acronym
> za skladištenje ličnih podataka koristi fasciklu <filename class="directory"
>~/.kde</filename
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDEROOTHOME</envar
></term
><listitem
><para
>Ako nije postavljena, <acronym
>KDE</acronym
> koristi <filename class="directory"
>~root/.kde</filename
> kao fasciklu za lične podatke korena (<systemitem class="username"
>root</systemitem
>). Uvedena da spreči <acronym
>KDE</acronym
> da slučajno ne prebriše podatke korisnika sa korenim ovlašćenjima, kad korisnik izvrši <acronym
>KDE</acronym
> program nakon prebacivanja naredbom <command
>su</command
> na <systemitem class="username"
>root</systemitem
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDEWM</envar
></term
><listitem
><para
>Ako je promenljiva okruženja <envar
>KDEWM</envar
> postavljena, skripta <command
>startkde</command
> upotrebiće je kao <acronym
>KDE‑ov</acronym
> menadžer prozora, umesto <application
>KWina</application
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_LANG</envar
></term
><listitem
><para
>Potiskuje <acronym
>KDE‑ovu</acronym
> postavu jezika, npr. <userinput
>KDE_LANG=fr kcommand &amp;</userinput
> pokreće program na francuskom (ako su instalirani neophodni fajlovi).</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_MULTIHEAD</envar
></term
><listitem
><para
>Postavite ovu promenljivu na <literal
>true</literal
> da ukažete <acronym
>KDE‑u</acronym
> da radi na višemonitorskom sistemu.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_FORK_SLAVES</envar
></term>
<listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.3.) Postavite ovu promenljivu da bi U/I zahvati izranjali neposredno iz programskog procesa. Podrazumevano izranjaju iz <command
>klauncher</command
> ili <command
>kdeinit</command
>. Ova opcija korisna je ako U/I zahvat treba da radi u istom okruženju kao i program (slučaj npr. sa ClearCaseom).</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_HOME_READONLY</envar
></term>
<listitem
><para
>Postavite ovu promenljivu da ukažete da je vaša domaća fascikla montirana samo‑za‑čitanje.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_NO_IPV6</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.3.) Postavite ovu promenljivu da isključite podršku za IPv6 i IPv6 DNS potrage.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_IS_PRELINKED</envar
> </term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Postavite ovu promenljivu da ukažete da ste pretpovezali <acronym
>KDE‑ove</acronym
> izvršne fajlove i biblioteke, što isključuje <command
>kdeinit</command
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_UTF8_FILENAMES</envar
></term
><listitem
><para
>Ako je ova promenljiva okruženja postavljena, <acronym
>KDE</acronym
> pretpostavlja da su sva imena fajlova UTF‑8 kodirana, bez obzira na tekući sistemski lokalitet.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDE_FULL_SESSION</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Automatski se postavlja na <literal
>true</literal
> na pokretanju <acronym
>KDE‑a</acronym
>, koristi se npr. da odredi da li da se <application
>K‑osvajač</application
> zadrži u memoriji posle zatvaranja. Ako nije postavljena, <application
>K‑osvajač</application
> se napušta po zatvaranju (npr. ovo čini <application
>KDE su</application
>, a korisno je i za ispravljanje).</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDESYCOCA</envar
></term
><listitem
><para
>Omogućava vam da zadate putanju i ime generisanog fajla keša <acronym
>KDE‑ove</acronym
> sistemske postave.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDETMP</envar
></term
><listitem
><para
>Omogućava da zadate drugu putanju umesto <filename class="directory"
>/tmp</filename
>, gde <acronym
>KDE</acronym
> skladišti privremene fajlove.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>KDEVARTMP</envar
></term
><listitem
><para
>Omogućava da zadate drugu putanju umesto <filename class="directory"
>/var/tmp</filename
>, gde <acronym
>KDE</acronym
> skladišti promenljive fajlove.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>XDG_DATA_HOME</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Definiše osnovnu fasciklu prema kojoj se skladište korisniku svojstveni fajlovi. Podrazumeva se <filename class="directory"
>$<envar
>HOME</envar
>/.local/share</filename
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>XDG_DATA_DIRS</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Definiše po redosledu prvenstva skup osnovnih fascikli za traženje fajlova podataka, u dodatak onoj iz <filename class="directory"
>$<envar
>XDG_DATA_HOME</envar
></filename
>. Podrazumeva se <literal
>/usr/local/share/:/usr/share/</literal
>.</para>

<para
><acronym
>KDE</acronym
> dodaje lokacije iz $<envar
>KDEDIRS</envar
> kao i profile. Koriste se za .desktop fajlove menija: <literal role="extension"
>.desktop</literal
> fajlovi pod <filename class="directory"
>$<envar
>XDG_DATA_DIRS</envar
>/applications</filename
>, a <literal role="extension"
>.directory</literal
> pod <filename class="directory"
>$<envar
>XDG_DATA_DIRS</envar
>/desktop-directories</filename
>. </para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>XDG_CONFIG_HOME</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Definiše osnovnu fasciklu u kojoj treba skladištiti korisniku svojstvene postavne fajlove. Podrazumeva se <filename class="directory"
>$<envar
>HOME</envar
>/.config</filename
>.</para>
</listitem>
</varlistentry>

<varlistentry
><term
>$<envar
>XDG_CONFIG_DIRS</envar
></term
><listitem
><para
>(Od <acronym
>KDE‑a</acronym
> 3.2.) Definiše po redosledu prvenstva skup osnovnih fascikli za traženje postavnih fajlova, u dodatak onoj iz $<envar
>XDG_CONFIG_HOME</envar
>. Podrazumeva se <filename class="directory"
>/etc/xdg</filename
>. <acronym
>KDE</acronym
> dodaje lokacije iz $<envar
>KDEDIRS</envar
> kao i profile. Koriste ih <literal role="extension"
>.menu</literal
> opisi u <filename class="directory"
>$<envar
>XDG_CONFIG_DIRS</envar
>/menus</filename
>. </para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="the-kdeinit-mystery">
<title
>Tajna naredbe <command
>kdeinit</command
></title>

<!-- FIXME: Add more words. Fix markup -->

<para
><command
>kdeinit</command
> se koristi za pokretanje svih ostalih <acronym
>KDE</acronym
> programa. Može da pokrene normalne binarne programske fajlove, kao i učitljive module (KLM‑ove). KLM‑ovi rade isto kao binarni programski fajlovi, ali se mogu efikasnije pokrenuti. Prebivaju u <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib/kde3</filename
>.</para>

<para
>Nezgoda je što se ovako pokrenuti programi pojavljuju kao <computeroutput
><command
>kdeinit</command
></computeroutput
> u izlazu <command
>top</command
> i <command
>ps</command
>. Koristite <command
>top <option
>-c</option
></command
> ili <command
>ps <option
>aux</option
></command
> da vidite stvarno ime programa:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>ps aux | grep bastian</command
> </userinput>
<computeroutput>
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
</computeroutput
>
</screen>
<para
>Kao što ste možda zapazili, ovo proizvodi sporedan efekat da je teško ubiti proces koji prouzrokuje nevolju:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>killall kdesktop</command
></userinput>
<computeroutput
>kdesktop: no process killed</computeroutput
></screen>

<para
>Možda ste u iskušenju da upotrebite <userinput
><command
>killall kdeinit</command
></userinput
>, ali će ubijanje svih <command
>kdeinit</command
> procesa rezultovati gašenjem celog <acronym
>KDE‑a</acronym
>. Totalno razaranje!</para>

<para
>Za ovo postoje dva jednostavna rešenja:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdekillall kdesktop</command
></userinput>
# ili staro dobro:
<prompt
>%</prompt
> <userinput
><command
>kill 26195</command
></userinput
></screen>
<para
><command
>kdekillall</command
> je deo <acronym
>KDE‑ovog</acronym
> SDK paketa.</para>

</sect1>

</chapter>

<chapter id="customizing-kde">
<title
>Prilagođavanje <acronym
>KDE‑a</acronym
></title>


<sect1 id="desktop-icons">
<title
>Ikone površi</title>

<para
><acronym
>KDE</acronym
> koristi nekoliko vrsta ikona:</para>
<itemizedlist>
<listitem
><para
>Dokumenti</para>
</listitem>
<listitem
><para
>Veze ka veb sajtovima (preko .desktop fajla) </para>
</listitem>
<listitem
><para
>Veze ka programima (preko .desktop fajla) </para>
</listitem>
<listitem
><para
>Uređaji — diskovi, particije i periferije: <itemizedlist>
<listitem
><para
>Izričito preko .desktop fajla</para>
</listitem>
<listitem
><para
>Automatski preko U/I zahvata <literal
>devices://</literal
></para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem
><para
>Posebno od izdavača (npr. SuSE‑ov „Moj računar“)</para>
</listitem>
</itemizedlist>

<sect2 id="desktop-icons-websites">
<title
>Veb sajtovi</title>
<para
>Veze ka veb sajtovima putem .desktop fajlova: <menuchoice
><guimenu
>Napravi novo</guimenu
><guisubmenu
>Fajl</guisubmenu
><guimenuitem
>Veza do lokacije (URL)...</guimenuitem
></menuchoice
>. Ikonu možete promeniti u dijalogu <guilabel
>Svojstva</guilabel
>. .Desktop fajl koji nastaje: <programlisting
>[Desktop Entry]
Encoding=UTF-8
Icon=/opt/kde3/share/apps/kdesktop/pics/ksslogo.png
Type=Link
URL=http://www.kde.org/
</programlisting>
</para>
</sect2>

<sect2 id="desktop-icons-applications">
<title
>Programi</title>

<para
>Veze ka programima putem .desktop fajlova: <menuchoice
><guimenu
>Napravi novo</guimenu
><guisubmenu
>Fajl</guisubmenu
><guimenuitem
>Veza do programa...</guimenuitem
></menuchoice
>. Detalje morate obezbediti sami. Prevucite iz KMenija: ili kopirajte ili povežite (pravi simvezu), mnogo lakše.</para>

<!-- Perhaps legacy and translated should be the other way around, but -->
<!-- this is how it appears in Waldo's presentation. Need to check -->
<!-- this -->

<programlisting
>[Desktop Entry]<co id="boilerplate"/>
Encoding=UTF-8
GenericName=IRC Client<co id="generic-desc"/>
GenericName[af]=Irc Klië
GenericName[de]=IRC Programm
...
GenericName[zu]=Umthengi we IRC<co id="legacy"/>
SwallowExec=<co id="translated"/>
Name=KSirc
Name[af]=Ksirc
Name[de]=KSirc
...
</programlisting>

<calloutlist>
<callout arearefs="boilerplate"
><para
>Predumetak</para>
</callout>
<callout arearefs="generic-desc"
><para
>Preveden generički opis, ne koristi se na površi</para>
</callout>
<callout arearefs="legacy"
><para
>Zastarelo, može se ukloniti</para>
</callout>
<callout arearefs="translated"
><para
>Prevedeno ime koje se daje na površi</para>
</callout>
</calloutlist>

<para
>Ikone površi</para>
<programlisting
>...
Name[zu]=Ksirc
MimeType=<co id="co-mimetype"/>
Exec=ksirc %i %m<co id="co-exec"/>
Icon=ksirc<co id="co-icon"/>
TerminalOptions=<co id="co-terminaloptions"/>
Path=<co id="co-path"/>
Type=Application<co id="co-type"/>
Terminal=0<co id="co-terminal"/>
X-KDE-StartupNotify=true<co id="co-x-kde-startupnotify"/>
X-DCOP-ServiceType=Multi<co id="co-x-dcop-servicetype"/>
Categories=Qt;KDE;Network<co id="co-categories"/>
</programlisting>

<calloutlist>
<callout arearefs="co-mimetype"
><para
>Podržani MIME tipovi, ne koriste se na površi</para>
</callout>
<callout arearefs="co-exec"
><para
>Komandna linija koju treba izvršiti</para>
</callout>
<callout arearefs="co-icon"
><para
>Ikona, iz teme ikona ili puna putanja</para>
</callout>
<callout arearefs="co-terminaloptions"
><para
>Samo ako je potreban terminal</para>
</callout>
<callout arearefs="co-path"
><para
>Radna fascikla za naredbu</para>
</callout>
<callout arearefs="co-type"
><para
>Još predumetka</para>
</callout>
<callout arearefs="co-terminal"
><para
><literal
>true</literal
> ako je potreban terminal, tekstualni program</para>
</callout>
<callout arearefs="co-x-kde-startupnotify"
><para
>Prikaži skakutajući pokazivač, isključi ako ne radi.</para>
</callout>
<callout arearefs="co-x-dcop-servicetype"
><para
>Program uredno pokrenut? Ukloni ako ne radi.</para>
</callout>
<callout arearefs="co-categories"
><para
>Kategorije za KMenu, ne koristi se na površi</para>
</callout>
</calloutlist>



</sect2>

<sect2 id="desktop-icons-exec">
<title
>Opcija <varname
>Exec</varname
> .desktop fajlovima</title>

<para
>Za naredbom može slediti nekoliko mestodržača, koji će biti zamenjeni stvarnim vrednostima kad se program pokrene: <variablelist>
<varlistentry>
<term
><literal
>%f</literal
></term
> <listitem
><para
>Pojedinačno ime fajla; za ispuštanje fajla na ikonu, ili sa pridruženjima fajlu.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%F</literal
></term>
<listitem
><para
>Spisak fajlova; za programe koji mogu da otvore nekoliko lokalnih fajlova odjednom. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%u</literal
></term>
<listitem
><para
>Pojedinačni URL: ako program sam može da rukuje npr. FTP ili HTTP URL‑ovima, inače <acronym
>KDE</acronym
>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%U</literal
></term>
<listitem
><para
>Spisak URL‑ova; prvo će preuzeti fajl i proslediti lokalni fajl programu (!!)</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%d</literal
></term>
<listitem
><para
>Fascikla fajla za otvaranje; korisno ako program zahteva fajl u tekućoj radnoj fascikli.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%D</literal
></term>
<listitem
><para
>Spisak fascikli, ne previše praktično.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%i</literal
></term
> 
<listitem
><para
>Ikona, opcija <option
>--icon</option
>; <acronym
>KDE</acronym
> program će za traku zadataka koristiti ikonu datu redom <varname
>Icon</varname
>=.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%m</literal
></term>
<listitem
><para
>Minijaturna ikona, zastarelo.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><literal
>%c</literal
></term
> 
<listitem
><para
>Naslov, opcija <option
>--caption</option
>; <acronym
>KDE</acronym
> program će za traku zadataka koristiti ime dato redom <varname
>Name</varname
>=.</para>
</listitem>
</varlistentry>

</variablelist>
</para>

<informalexample>
<para
>Primeri: <segmentedlist>
<segtitle
>red <varname
>Exec</varname
></segtitle>
<segtitle
>izvršava naredbu</segtitle>
<seglistitem
><seg
><literal
>ksirc %i</literal
></seg
><seg
><command
>ksirc --icon ksirc</command
></seg>
</seglistitem>
<seglistitem
><seg
><literal
>cd %d; kedit $(basename %f)</literal
></seg
><seg
><command
>cd /tmp; kedit file.txt</command
></seg>
</seglistitem>
</segmentedlist>
</para>
</informalexample>

<!--Dont' know what this refers to: -->
<!--See What's This (Shift-F1) in Properties Dialog-->

</sect2>

<sect2 id="desktop-icons-devices">
<title
>Uređaji</title>
<para
>Veze ka uređajima putem .desktop fajlova: <menuchoice
><guimenu
>Napravi novo</guimenu
><guisubmenu
>Uređaj</guisubmenu
></menuchoice
> </para>
</sect2>

<sect2 id="where-to-define">
<title
>Gde definisati</title>

<para
>Mnoga su mesta za definisanje ikona površi: <itemizedlist>

<listitem
><para
><filename class="directory"
>~/Desktop</filename
>: kopirano iz <filename class="directory"
>/etc/skel/Desktop</filename
></para
></listitem>

<listitem
><para
><filename class="directory"
>$<envar
>KDEDIR</envar
>/apps/kdesktop/Desktop</filename
> (stopljeno)</para
></listitem>

<listitem
><para
><filename class="directory"
>$<envar
>KDEDIR</envar
>/apps/kdesktop/DesktopLinks</filename
> (kopirano)</para
></listitem>

<listitem
><para
>Ikone uređaja (dinamički stopljene)</para
></listitem>

<listitem
><para
>Distribuciji svojstveno: SuSE kopira neke ikone u <filename
>startkde.theme</filename
> iz <filename class="directory"
>/opt/kde3/share/config/SuSE/default/</filename
></para
></listitem>

</itemizedlist>
</para>
</sect2>
</sect1>

<sect1 id="kde-menu">
<title
>KMenu</title>

<sect2 id="how-it-works">
<title
>Način rada</title>

<para
>U <acronym
>KDE‑u</acronym
> 3.2 uveden je zajednički formata menija sa <ulink url="http://freedesktop.org/Standards/menu-spec/"
>http://freedesktop.org/Standards/menu-spec/</ulink
></para>
<para
>Pre <acronym
>KDE‑a</acronym
> 3.2: <itemizedlist>

<listitem
><para
>struktura fascikli pod <filename class="directory"
>share/applnk</filename
></para
></listitem>

<listitem
><para
>struktura fascikli predstavlja strukturu menija</para
></listitem>

<listitem
><para
>svaki .desktop fajl predstavlja pojedinačni program</para
></listitem>

</itemizedlist>
</para>

<para
>Bilo je teško preurediti ovakvu strukturu, pa u <acronym
>KDE‑u</acronym
> 3.2 novi format menija: <itemizedlist>
<listitem
><para
>definiše strukturu u jednom <literal role="extension"
>.menu</literal
> fajlu</para
></listitem>
<listitem
><para
>zasnovan je na kategorijama</para
></listitem>
<listitem
><para
>deli se između Gnomea i <acronym
>KDE‑a</acronym
></para
></listitem>
<listitem
><para
>podržava i menije u stilu <literal
>applnk</literal
></para
></listitem>
</itemizedlist>
</para>

<informalexample>
<para
>Primer iz <filename
>applications.menu</filename
>: <programlisting
><markup>
        &lt;Menu&gt;
            &lt;Name&gt;Office&lt;/Name&gt;
            &lt;Directory&gt;suse-office.directory&lt;/Directory&gt;
            &lt;Include&gt;
                &lt;Filename&gt;Acrobat Reader.desktop&lt;/Filename&gt;
                &lt;Filename&gt;kde-kpresenter.desktop&lt;/Filename&gt;
                &lt;Filename&gt;kde-kword.desktop&lt;/Filename&gt;
            &lt;/Include&gt;
        &lt;Menu&gt;
</markup
>
</programlisting>
</para>
<para
>Unos menija sa tri programa: <itemizedlist>

<listitem
><para
><filename
>/usr/share/applications/Acrobat Reader.desktop</filename
></para
></listitem>

<listitem
><para
><filename
>/opt/kde3/share/applications/kde/kpresenter.desktop</filename
></para
></listitem>

<listitem
><para
><filename
>/opt/kde3/share/applications/kde/kword.desktop</filename
></para
></listitem>

</itemizedlist>
</para>
</informalexample>
</sect2>

<sect2 id="stored-where">
<title
>A gde se skladište?</title>

<para
>Fajlovi koji opisuju strukturu menija, <literal role="extension"
>.menu</literal
>, skladište se u <filename class="directory"
>$<envar
>KDEDIR</envar
>/etc/xdg/menus</filename
> i <filename class="directory"
>/etc/xdg/menus</filename
>. One definišu strukturu menija širom sistema, a kontroliše ih $<envar
>XDG_CONFIG_DIRS</envar
>. <filename class="directory"
>$<envar
>HOME</envar
>/.config/menus</filename
> skladišti korisniku svojstvene izmene u strukturi menija, a kontroliše je $<envar
>XDG_CONFIG_HOME</envar
>. Za više informacija, pogledajte <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
> http://www.freedesktop.org/Standards/basedir-spec</ulink
>.</para>

<para
>.Desktop fajlovi opisuju programe i skladište se u: <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/applications</filename
>, <filename class="directory"
>/usr/share/applications</filename
>, <filename class="directory"
>/usr/local/share/applications</filename
>. Ovo su .desktop fajlovi koji važe širom sistema, kontroliše ih $<envar
>XDG_DATA_DIRS</envar
>. </para>

<para
>Fascikla <filename class="directory"
>$<envar
>HOME</envar
>/.local/applications</filename
> sadrži .desktop fajlove i korisniku svojstvene izmene. Kontroliše je $<envar
>XDG_DATA_HOME</envar
>. Za više informacija, pogledajte <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
>http://www.freedesktop.org/Standards/basedir-spec</ulink
></para>


<para
>Fajlovi koji opisuju podmenije, <literal role="extension"
>.directory</literal
>, skladište se u: <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/desktop-directories</filename
>, <filename class="directory"
>/usr/share/desktop-directories</filename
>, <filename class="directory"
>/usr/local/share/desktop-directories</filename
>. Ovo su fajlovi menija širom sistema, koje kontroliše $<envar
>XDG_DATA_DIRS</envar
>. Korisniku svojstvene izmene skladište se u: <filename class="directory"
>$<envar
>HOME</envar
>/.local/desktop-directories</filename
>. Njih kontroliše promenljiva $<envar
>XDG_DATA_HOME</envar
>. Za više informacija, pogledajte <ulink url="http://www.freedesktop.org/Standards/basedir-spec"
>http://www.freedesktop.org/Standards/basedir-spec</ulink
>. </para>

<informalexample>
<para
>Primer iz <filename
>applications.menu</filename
>: <programlisting
><markup>
             &lt;Menu&gt;
                        &lt;Name&gt;Art&lt;/Name&gt;
                       &lt;Directory&gt;suse-edutainment-art.directory&lt;/Directory&gt;
                        &lt;Include&gt;
                                &lt;Category&gt;X-SuSE-Art&lt;/Category&gt;
                        &lt;/Include&gt;
                &lt;/Menu&gt;
</markup
>
</programlisting>
</para>

<para
><literal
>Art</literal
> je unutrašnje ime za ovaj meni. <filename
>suse-edutainment-art.directory</filename
> definiše ime i ikonu za ovaj meni, a meni sadrži sve programe koji kao kategoriju imaju navedeno <literal
>X-SuSE-Art</literal
>, npr: <programlisting
>Categories=Qt;KDE;Education;X-SuSE-Art
</programlisting
></para>

<para
><filename
>suse-edutainment-art.directory</filename
> definiše ime i ikonu za ovaj meni: <programlisting
>[Desktop Entry]
Name=Art and Culture
Icon=kcmsystem 
</programlisting>
</para>
</informalexample>
</sect2>

<sect2 id="common-pitfalls">
<title
>Uobičajene zamke</title>

<para
>Programi koji <emphasis
>nisu</emphasis
> u meniju <emphasis
>ne</emphasis
> postoje s tačke gledišta drugih programa ili pridruženja fajlovima. Ako uklonite neki program iz menija, <acronym
>KDE</acronym
> pretpostavlja da ne želite da ga koristite.</para>

<para
>Kad se programi ne žele u meniju, stavite ih u meni <filename
>.hidden</filename
> ili u namenski meni sa <programlisting>
NoDisplay=true
</programlisting
> u fajlu <literal role="extension"
>.directory</literal
>.</para>
</sect2>

<sect2 id="essential-menus">
<title
>Važni meniji</title>

<para
><filename class="directory"
>$<envar
>KDEDIR</envar
>/etc/xdg/menus/applications-merged/</filename
> sadrži <filename
>kde-essential.menu</filename
>, koji uključuje neke važne menije koji obično nisu prikazani u samom KMeniju: <itemizedlist>
<listitem
><para
>Kontrolni centar ima skriveni meni postavki, čiji sadržaj definiše <filename
>kde-settings.menu</filename
>, i čije ime i ikonu definiše <filename
>kde-settings.directory</filename
></para>
</listitem>
<listitem
><para
>Info centar ima skriveni meni informacija, čiji sadržaje definiše <filename
>kde-information.menu</filename
>, i čije ime i ikonu definiše <filename
>kde-information.directory</filename
>.</para>
</listitem>

<listitem
><para
>Čuvari ekrana sadrže skriveni meni sistem/čuvari ekrana, čiji sadržaj definiše <filename
>kde-screensavers.menu</filename
>, i čije ime i ikonu definiše <filename
>kde-system-screensavers.directory</filename
>. <filename
>$<envar
>KDEDIR</envar
>/share/desktop-directories/kde-system-screensavers.directory</filename
> sadrži: <programlisting
>NoDisplay=true
</programlisting>
</para>
</listitem>
</itemizedlist
></para>
</sect2>

<sect2 id="old-style-menus">
<title
>Meniji u starom stilu</title>

<para
><acronym
>KDE</acronym
> nastavlja da podržava menije u starom stilu koji su definisani strukturama fascikli u <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/applnk</filename
> (širom sistema) i <filename class="directory"
>$<envar
>HOME</envar
>/.kde/share/applnk</filename
> (korisniku svojstveno). Na ovo se spada ako .desktop fajl nema red <varname
>Categories</varname
>=. Ako ima, kategorije određuju lokaciju u meniju.</para>
</sect2>

<sect2 id="ksycoca">
<title
><application
>KSycoca</application
></title>
<para
>KSycoca kešira strukturu menija i podatke o svim raspoloživim programima. Bazu podataka možete ponovo izgraditi naredbom <userinput
><command
>kbuildsycoca4</command
></userinput
>. Izgrađena baza podataka prebiva u <filename class="directory"
>/var/tmp/kdecache-${<envar
>USER</envar
>}/ksycoca</filename
>. Automatski je ažurira KDED, proverava se pri prijavljivanju u <acronym
>KDE</acronym
>, a KDED nadgleda izmene dok ste prijavljeni.</para>

<para
>Da isključite nadgledanje izmena (može biti sporo preko NFS‑a), dodajte u <filename
>kdedrc</filename
>: <programlisting
>[General]
CheckSycoca=false
</programlisting>
</para>

<para
>Da biste primorali ponovno stvaranje, izvršite <userinput
><command
>touch $<envar
>KDEDIR</envar
>/share/services/update_ksycoca</command
></userinput
>.</para>

</sect2>

<sect2 id="kmenuedit">
<title
><application
>Uređivač KMenija</application
></title>

<para
><application
>Uređivač KMenija</application
> je namenjen jednokorisničkoj postavi. Izmene u strukturi menija upisuju se u <filename
>~/.config/menus/applications-kmenuedit.menu</filename
>, izmene u programima u <filename class="directory"
>~/.local/share/applications/</filename
>, a izmene u podmenijima (ikona, ime) u <filename class="directory"
>~/.local/share/desktop-directories/</filename
>. Admin-alatka Kioska koristi <application
>Uređivač KMenija</application
> i kopira gornje izmene u profile ili lokacije širom sistema. </para>

</sect2>

</sect1>

<!-- This section might be redundant. If it isn't, it needs some screenies -->
<sect1 id="kde-panel">
<title
><acronym
>KDE‑ov</acronym
> panel</title>

<para
><acronym
>KDE‑ov</acronym
> panel poznat je i kao <application
>Kicker</application
>. Modularan je i sastoji se od sledećih komponenti: <itemizedlist>
<listitem
><para
>apleta</para
></listitem>
<listitem
><para
>programskih dugmadi</para
></listitem>
<listitem
><para
>posebnih dugmadi</para
></listitem>
</itemizedlist>
</para>

<para
>Panel podrazumevano sadrži sledeće aplete: <itemizedlist
> <listitem
><para
>pejdžer, koji prikazuje virtuelne površi</para
></listitem
> <listitem
><para
>traku zadataka</para
></listitem
> <listitem
><para
>sistemsku kasetu</para
></listitem
> <listitem
><para
>sat</para
></listitem
> </itemizedlist
> i sledeću posebnu dugmad: <itemizedlist>
<listitem
><para
>KMenu</para
></listitem>
<listitem
><para
>dugme površi</para
></listitem>
</itemizedlist>
</para>

<para
>Koliko dozvoljava prostor, dodata su i razna programska dugmad: <itemizedlist>
<listitem
><para
>domaće dugme</para
></listitem>
<listitem
><para
>dugme pregledača</para
></listitem>
<listitem
><para
>dugme <application
>K‑pošte</application
></para
></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="file-associations">
<title
>Pridruženja fajlova</title>

<para
>Pridruženja fajlova povezuju tip fajla sa programom ili programima. Tip fajla se uspostavlja određivanjem njegovog MIME tipa. MIME tipovi poznati <acronym
>KDE‑u</acronym
> skladište se u <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/mimelnk</filename
>, a .desktop fajl svakog programa sadrži spisak MIME tipova koje taj program podržava.</para>

<informalexample>
<para
><filename
>kview.desktop</filename
> <programlisting
>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
</programlisting>
</para>

<para
><filename
>kuickshow.desktop</filename
>: <programlisting
>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
</programlisting>
</para>

<para
>Oba mogu da otvaraju <literal
>image/gif</literal
>. Koji se onda koristi za otvaranje GIF fajla?</para>

<para
>Program sa najvišim prvenstvom. <filename
>kview.desktopkview.desktop</filename
> sadrži <programlisting>
InitialPreference=3
</programlisting
> dok <filename
>kuickshow.desktop</filename
> sadrži <programlisting>
InitialPreference=6
</programlisting
> Stoga će se <application
>Kuickshow</application
> koristiti za otvaranje GIF fajlova. </para>

<para
>Kako da zadamo <application
>K‑prikaz</application
> kao podrazumevan? </para>

<para
>Pridruženje fajlu korisnik može da izmeni u Kontrolnom centru. Te izmene se skladište u <filename
>$<envar
>HOME</envar
>/.kde/share/config/profilerc</filename
>. Da biste sačuvali iste postavke za više korisnika, sačuvajte ih u fascikli profila korisnika ili globalnoj postavnoj fascikli <acronym
>KDE‑a</acronym
> da se koriste kao podrazumevane za više korisnika.</para>

</informalexample>

</sect1>

</chapter>

<chapter id="locking-down-kde">
<title
>Zaključavanje <acronym
>KDE‑a</acronym
></title>

<sect1 id="how-it-works-the-basics">
<title
>Kako funkcioniše — osnove</title>

<para
><acronym
>KDE‑ove</acronym
> mogućnosti zaključavanja koncentrisane su oko sledećih opcija:</para>

<itemizedlist>
<listitem
><para
><link linkend="immutable-configuration-options"
>Učinite nepromenljivim postavne opcije</link
></para
></listitem>
<listitem
><para
><link linkend="action-restrictions"
>Ograničenja za pojedine radnje</link
></para
></listitem>
<listitem
><para
><link linkend="url-restrictions"
>Ograničite pristup izvesnim URL‑ovima</link
></para
></listitem>
<listitem
><para
><link linkend="configuration-modules"
>Ograničite pristup izvesnim postavnim modulima</link
></para
></listitem>
</itemizedlist>

</sect1>

<sect1 id="immutable-configuration-options">
<title
>Nepromenljive postavne opcije</title>
<subtitle
>Zaključavanje <acronym
>KDE‑a</acronym
></subtitle>

<para
>Nepromenljive opcije omogućavaju administratoru sistema da obezbedi podrazumevane postavke koje korisnik ne može menjati.</para>

<para
>Kad se postavna opcija učini nepromenljivom, korisnikove postavne opcije koje su prethodno postojale biće ignorisane.</para>

<para
>Opcije se mogu kontrolisati po stavci, po grupi stavki, ili po fajlu.</para>

<para
>Ako su fajl ili grupa nepromenljivi, nepromenljive su sve postavne opcije za taj fajl ili grupu, čak i one za koje administrator sistema nije obezbedio podrazumevane.</para>

<note
><para
>Podrška u programima za nepromenljive opcije može da varira od programa do programa. Iako korisnik neće moći da vrši trajne izmene u nepromenljivim postavnim opcijama, ipak može dobiti opciju korisničkog sučelja da izvrši jednu takvu izmenu.</para
></note>

</sect1>

<sect1 id="action-restrictions">
<title
>Ograničenja radnji</title>

<para
><acronym
>KDE</acronym
> programi izgrađeni su oko koncepta radnji. Radnje se mogu aktivirati na razne načine, tipično preko trake menija, neke od traka alatki ili prečicom sa tastature. Primer je radnja <action
>Sačuvaj dokument</action
>. Radnju je moguće ograničiti ako znate njeno unutrašnje ime. Kad je radnja jednom ograničena, više se neće pojavljivati na traci menija ili traci alatki. Unutrašnje ime radnje <action
>Sačuvaj dokument</action
> glasi <literal
>action/file_save</literal
>. Radni okvir za zaključavanje takođe obezbeđuje skup apstraktnijih ograničenja, koja se mogu koristiti da isključe funkcionalnost koja nije pokrivena pojedinačnom radnjom. Primer je ograničenje <literal
>shell_access</literal
>, koje isključuje svu funkcionalnost koja bi pružila korisnički pristup unix školjci.</para>

<example>
<title
>Ograničite korisnički pristup školjkama</title>

<para
>Da bismo sprečili korisnički pristup komandnoj školjci, možemo ograničiti radnju <literal
>shell_access</literal
> tako što ćemo u <filename
>kdeglobals</filename
> dodati: </para
> 

<screen
>[KDE Action Restrictions]
shell_access=false</screen>

<para
>Pošto ovo utiče na KMenu i raspoložive programe, moramo primorati ažuriranje baze podataka Sycoce:</para>

<screen
><userinput
><command
>touch</command
><filename
>$<envar
>KDEDIR</envar
>/share/services/update_ksycoca</filename
></userinput
></screen>

<para
>Sada se ponovo prijavimo u <acronym
>KDE</acronym
> i proverimo sledeće:</para>

<itemizedlist>
<listitem
><para
>KMenu</para
></listitem>
<listitem
><para
>U <application
>K‑osvajaču</application
>, <menuchoice
><guimenu
>Alatke</guimenu
><guimenuitem
>Otvori terminal</guimenuitem
></menuchoice
></para
></listitem>
<listitem
><para
><keycombo action="simul"
><keycap
>Alt</keycap
><keycap
>F2</keycap
></keycombo
> izvršava naredbu</para
></listitem>
</itemizedlist>
</example>
<para
>Puna dokumentacija o raspoloživim radnjama može se naći na <ulink url="http://www.kde.org/areas/sysadmin/"
>http://www.kde.org/areas/sysadmin/</ulink
>.</para>

<para
>Dole je navedeno nekoliko zanimljivijih radnji:</para>

<variablelist>
<varlistentry>
<term
><option
>action/options_configure</option
></term>
<listitem
><para
>Opcija <guimenuitem
>Podesi &lt;program&gt;...</guimenuitem
> iz menija <guimenu
>Postavke</guimenu
></para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>action/help_report_bug</option
></term>
<listitem
><para
>Opcija <guimenuitem
>Prijavi grešku</guimenuitem
> iz menija <guimenu
>Pomoć</guimenu
>.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>action/kdesktop_rmb</option
></term>
<listitem
><para
>Kontekstni meni (desni klik) površi.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>action/kicker_rmb</option
></term>
<listitem
><para
>Kontekstni meni (desni klik) panela.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>user/root</option
></term>
<listitem
><para
>Sakrijte sve radnje ili programe koji zahtevaju koreni pristup.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>shell_access</option
></term>
<listitem
><para
>Sakriva sve radnje ili programe koji obezbeđuju pristup školjci. </para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>print/system</option
></term>
<listitem
><para
>Isključuje opciju odabira štamparskog sistema (pozadine).</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>lock_screen</option
></term>
<listitem
><para
>Da li će korisnik moći da zaključa ekran</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>start_new_session</option
></term>
<listitem
><para
>Da li korisnik može da pokrene drugu sesiju X‑a (takođe v. <application
>KDM</application
>)</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>opengl_screensavers</option
></term>
<listitem
><para
>Da li se dozvoljavaju openGL čuvari ekrana.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><option
>manipulatescreen_screensavers</option
></term>
<listitem
><para
>Dozvoljava čuvare ekrana koji ne skrivaju ceo ekran</para
></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="url-restrictions">
<title
>Ograničenja URL‑ova</title>

<para
>Postoje tri vrste ograničenja koje se mogu primeniti na URL‑ove:</para>

<variablelist>
<varlistentry>
<term
>listanje</term>
<listitem
><para
>kontrola da li je dozvoljeno listanje fascikli.</para
></listitem>
</varlistentry>
<varlistentry>
<term
>otvaranje</term>
<listitem
><para
>kontrola mogućnosti otvaranja izvesnih URL‑ova</para
></listitem>
</varlistentry>
<varlistentry>
<term
>preusmeravanje</term>
<listitem
><para
>kontrola da li jedan URL može da otvori drugi, bilo automatski ili pomoću hiperveze.</para
></listitem>
</varlistentry>
</variablelist>

<para
>Pravila se proveravaju po redosledu kojim su definisana. Poslednje primenjeno pravilo definiše da li se URL‑u može pristupiti.</para>

<para
>Sledeća pravila isključuju otvaranje HTTP i HTTPS URL‑ova izvan <systemitem class="domainname"
>.ourcompany.com</systemitem
>:</para>

<screenco
><areaspec>
<area id="url_commas" coords="3"/>
<area id="url_rule1" coords="3"/>
<area id="url_rule2" coords="4"/>
</areaspec>
<screen
>[KDE URL Restrictions]
rule_count=2
rule_1=open,,,,http,,,false
rule_2=open,,,,http,*.ourcompany.com,,true</screen
></screenco>

<calloutlist>
<callout arearefs="url_commas">
<para
>Prve četiri zapete preskaču kriterijume izbora koji se tiču izvornog URL‑a. Ovaj je deo potreban samo kod pravila za preusmeravanje.</para
> 
</callout>
<callout arearefs="url_rule1"
><para
><option
>rule_1</option
> zabranjuje otvaranje bilo kog HTTP ili HTTPS URL‑a</para
></callout>
<callout arearefs="url_rule2"
><para
><option
>rule_2</option
> dopušta otvaranje bilo kog HTTP i HTTPS URL‑a u domenu <systemitem class="domainname"
>.ourcompany.com</systemitem
>. Imajte u vidu da je džoker <token
>*</token
> dozvoljen samo na početku domena.</para
></callout>
</calloutlist>

<para
>Sledeća pravila sprečavaju korisnika da pregleda fascikle na lokalnom fajl sistemu koje su izvan njegove domaće fascikle ($<envar
>HOME</envar
>):</para>

<screenco
><areaspec>
<area id="home_rule1" coords="3"/>
<area id="home_rule2" coords="4"/>
</areaspec>
<screen
>[KDE URL Restrictions]
rule_count=2
rule_1=list,,,,file,,,false
rule_2=list,,,,file,,$HOME,true</screen
></screenco>

<calloutlist>
<callout arearefs="home_rule1"
><para
><option
>rule_1</option
> zabranjuje listanje bilo koje lokalne fascikle</para
></callout>
<callout arearefs="home_rule2"
><para
><option
>rule_2</option
> dopušta listanje fascikli pod korisnikovom fasciklom $<envar
>HOME</envar
>.</para
></callout>
</calloutlist>

<para
>$<envar
>HOME</envar
> i $<envar
>TMP</envar
> su posebne vrednosti koje pokazuju domaću i <acronym
>KDE‑ovu</acronym
> privremenu fasciklu za korisnika, npr. <filename class="directory"
>/tmp/kde-bastian</filename
></para>

<para
>Sledeća pravila sprečavaju korisnika da otvara lokalne fajlove koji su izvan njegove domaće fascikle:</para>

<screenco
><areaspec>
<area id="local_rule1" coords="3"/>
<area id="local_rule2" coords="4"/>
<area id="local_rule3" coords="5"/>
</areaspec>
<screen
>[KDE URL Restrictions]
rule_count=3
rule_1=open,,,,file,,,false
rule_2=open,,,,file,,$HOME,true
rule_3=open,,,,file,,$TMP,true</screen
></screenco>

<calloutlist>
<callout arearefs="local_rule1"
><para
><option
>rule_1</option
> zabranjuje otvaranje bilo kog lokalnog fajla</para
></callout>
<callout arearefs="local_rule2"
><para
><option
>rule_2</option
> dopušta otvaranje fajlova pod korisnikovom fasciklom $<envar
>HOME</envar
>.</para
></callout>
<callout arearefs="local_rule3"
><para
><option
>rule_3</option
> dopušta otvaranje fajlova u <acronym
>KDE‑ovoj</acronym
> privremenoj fascikli korisnika. Ovo treba nekim <acronym
>KDE</acronym
> programima, koji prvo preuzimaju fajl ili dokument u privremenu fasciklu, pa ga zatim otvaraju.</para
></callout>
</calloutlist>


<para
>Opcija preusmeravanja kontroliše da li dokumenti sa izvesne lokacije mogu uputiti, automatski ili ručno preko hiperveze, na neku drugu lokaciju. Kao opšta mera bezbednosti, postoji skup podrazumevanih pravila. Na primer, dokumenti na Internetu ne mogu da upućuju na lokalno uskladištene dokumente.</para>

<para
>Da bismo, na primer, intranet serveru <systemitem class="systemname"
>www.mycompany.com</systemitem
> dali mogućnost upućivanja na lokalne fajlove, dodali bismo sledeće pravilo:</para>

<screen
>[KDE URL Restrictions]
rule_count=1
rule_1=redirect,http,www.mycompany.com,,file,,,true</screen>

<para
>Umesto da navođenja protokola po imenu, moguće je takođe odrediti celu grupu protokola. U tu svrhu, definisane su sledeće grupe:</para>

<variablelist>
<varlistentry>
<term
><literal
>:local</literal
></term>
<listitem
><para
>Protokoli koji pristupaju lokalno uskladištenim informacijama. Primeri: <literal
>file:/</literal
>, <literal
>man:/</literal
>, <literal
>fonts:/</literal
>, <literal
>floppy:/</literal
></para
></listitem>
</varlistentry>
<varlistentry>
<term
><literal
>:internet</literal
></term>
<listitem
><para
>Uobičajeni internet protokoli, kao HTTP i FTP</para
></listitem>
</varlistentry>
</variablelist>

<para
>Podaci o protokolima skladište se u <literal role="extension"
>*.protocol</literal
> fajlovima, u fascikli <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/services</filename
>.</para>

<para
>Unos <option
>Class</option
>= definiše grupu koje je protokol deo: <userinput
><command
>grep</command
> <option
>Class=</option
> <filename
>$<envar
>KDEDIR</envar
>/share/services/*.protocol</filename
></userinput
></para>

<para
>Opšta pravila:</para>

<itemizedlist>
<listitem
><para
>Lokalni protokoli mogu uputiti na bilo koji drugi protokol</para
></listitem>
<listitem
><para
>Uvek je dozvoljeno uputiti na internet protokole</para
></listitem>
<listitem
><para
>Nisu svi protokoli deo neke grupe, na primer <literal
>fish:/</literal
>.</para
></listitem>
</itemizedlist>

</sect1>

<sect1 id="configuration-modules">
<title
>Moduli za podešavanje</title>

<para
><acronym
>KDE</acronym
> poseduje module za podešavanje raznih aspekata okruženja. Moduli za podešavanje pojavljuju se u Kontrolnom centru, u dijalogu za podešavanje programa ili na oba mesta.</para>

<informalexample>
<para
>Modul za podešavanje proksija pojavljuje se u Kontrolnom centru, ali i kao deo <application
>K‑osvajačevog</application
> dijaloga za podešavanje.</para>

<para
>Pojedinačni moduli za podešavanje mogu se pokrenuti naredbom <userinput
><command
>kcmshell4</command
> <replaceable
>module</replaceable
></userinput
></para>

<para
>Za pokretanje modula proksija izvršite:</para>
<itemizedlist>
<listitem
><para
><command
>kcmshell4</command
> <filename
>kde-proxy.desktop</filename
></para
></listitem>
<listitem
><para
><command
>kcmshell4</command
> <literal
>proxy</literal
></para
></listitem>
</itemizedlist>

<para
><note
><para
>Ne koriste svi programi module za podešavanje, već je dijalog za podešavanje često nerazdvojivi deo samog programa.</para
></note
></para>
</informalexample>

<para
>Svi moduli za podešavanje, strogo govoreći, deo su KMeniju.</para>

<itemizedlist>
<listitem>
<para
>Vidljivi moduli u Kontrolnom centru obično imaju .desktop fajl u <filename class="directory"
>$<envar
>KDEDIR</envar
>/share/applications/kde</filename
> i poređani su pod skrivenim menijem <guimenu
>Postavke-moduli</guimenu
> iz fajla <filename
>kde-settings.menu</filename
>, uključenog iz <filename
>kde-essential.menu</filename
></para>
<screen
><userinput
><command
>kbuildsycoca4</command
> <option
>--menutest</option
>2&gt;  /dev/null | <command
>grep</command
> <option
>-i</option
> Postavke-moduli</userinput
></screen>
</listitem>
<listitem>
<para
>Programu svojstveni moduli obično imaju .desktop fajl pod <filename
>$<envar
>KDEDIR</envar
>/share/applnk/.hidden</filename
> koji odgovara skrivenom meniju <literal
>.hidden</literal
>, uključenom kao rezultat <markup
>&lt;KDELegacyDirs&gt;</markup
></para>
<screen
><userinput
><command
>kbuildsycoca4</command
> <option
>--menutest</option
>2&gt; /dev/null | <command
>grep</command
> <literal
>.hidden</literal
> .hidden</userinput
></screen>
</listitem>
<listitem
><para
>U <acronym
>KDE‑u</acronym
> 3.3 moguće je uređivati Kontrolni centar Uređivačem K‑kontrole. Uređivač K‑kontrole radi isto kao <application
>Uređivač KMenija</application
>, i izmene važe samo za trenutnog korisnika. Koristite Admin-alatku Kioska da načinite izmene za sve.</para
></listitem
> 
</itemizedlist>

<para
>Pojedinačni moduli za podešavanje mogu se isključiti dodavanjem u <filename
>kdeglobals</filename
>:</para>

<screen
>[KDE Control Module Restrictions]
<replaceable
>module-id</replaceable
>=false</screen>
<para
>Na primer, za isključenje modula proksija:</para>
<screen
>[KDE Control Module Restrictions]
kde-proxy.desktop=false</screen>
<para
>Potom u Kontrolnom centru i dijalogu za podešavanje <application
>K‑osvajača</application
> proverite da li je podešavanje proksija još uvek tamo. </para>

</sect1>
<!-- 
<sect1 id="making-it-work">
<title
>Making it Work</title>

Making It Work
KDE 3.2: Set $KDEDIRS from startkde script
Distribute profiles to all clients

</para>
</sect1>
-->
</chapter>

<chapter id="the-lazy-admin">
<title
>Lenji administrator</title>

<!-- This section appears to need quite a lot of additional words to -->
<!-- make sense. Perhaps it would be better to comment it out if it -->
<!-- can't be updated before the next release (Phil) -->
<!-- FIXME: Commented it out until it's got some more content fleshing it -->
<!-- out (Lauri)

<sect1 id="lazy-admin-overview">
<title
>Overview</title>

<para>
The Lazy Admin
Overview
Deployment
	How to get &kde; available on many clients
Remote Desktop Sharing
Take a look at someone else desktop
DCOP
	The DCOP command line tool makes it possible to control &kde; applications from the command line
KDialog
	A versatile tool to use standard &kde; dialogs in your own scripts



Deployment
Thin Clients
Installing Software
= AutoYaST
= KickStart
Maintaining Settings
= /etc/kderc, other settings
= Use rsync to copy files around
= Shared filesystem such as NFS
o store profiles themselves on NFS



http://www.suse.de/~nashif/autoinstall/index.html

</para>
</sect1>
-->
<sect1 id="remote-desktop-sharing">
<title
>Udaljeno deljenje površi</title>

<para
>Udaljeno deljenje površi omogućava udaljenim korisnicima da vide i, opciono, kontrolišu površ trenutnog korisnika. Udaljenom korisniku mora se poslati pozivnica, a moguće je napraviti trajnu pozivnicu zaštićenu lozinkom. Ovo je idealno za timove tehničke podrške ili administratore, da bi imali pristup površima korisnika radi pretresanja i otklanjanja problema, ili vođenja korisnika kroz neki postupak.</para>

<para
>Udaljeno deljenje površi uključuje dva programa: <application
>KRFB</application
> („<acronym
>KDE‑ov</acronym
> udaljeni kadrobafer“, VNC server) i <application
>KRDC</application
> („<acronym
>KDE‑ova</acronym
> veza s udaljenom površi“, VNC klijent).</para>

<para
><application
>KRFB</application
> može da koristi svaki korisnik da stvara pozivnice i upravlja njima. Uz pozivnice se dobija jednokratna lozinka koja primaocu dopušta da se poveže na vašu površ. Ona podrazumevano važi za samo jedno uspešno povezivanje i ističe posle sat vremena ako se ne iskoristi.</para>

<para
>KDED modul <literal
>kinetd</literal
> rukuje dolaznim vezama. Da li radi možete proveriti naredbom <userinput
><command
>dcop</command
> kded kinetd services</userinput
>. <application
>KRFB</application
> podrazumevano čeka na veze na portu 5900. Kad je dolazna veza ostvarena, pojavljuje se dijalog koji traži potvrdu od trenutnog korisnika.</para>

<!-- TODO: Write a bit more here, with a walk through maybe? -->

</sect1>

<sect1 id="kde-diy">
<title
>„Uradi sam“ u <acronym
>KDE‑u</acronym
> — gradnja sopstvenih alatki</title>

<sect2 id="dcop">
<title
>DCOP</title>

<para
>Protokol za komunikaciju na radnoj površi, DCOP, lagani je mehanizam za međuprocesnu komunikaciju. DCOP omogućava korisniku interakciju sa programima u izvršavanju. <acronym
>KDE</acronym
> obezbeđuje dva programa za korišćenje DCOP‑a: naredbu komandne linije <command
>dcop</command
> i GUI program <application
>K‑DCOP</application
>. </para>
<para
>Nekoliko beleški o naredbi <command
>dcop</command
>: </para>

<para>
<itemizedlist>
<listitem>
<para
><userinput
><command
>dcop</command
> [opcije] [program [objekat [funkcija [arg1] [arg2] ... ] ] ]</userinput
> </para>
</listitem>
<listitem>
<para
>Programi koji mogu da otvore više od jednog prozora istovremeno biće navedeni kao <literal
>&lt;program&gt;-PID</literal
> </para>
</listitem>
<listitem>
<para
>Svi argumenti razlikuju veličinu slova. Npr. <function
>setFullScreen</function
> i <function
>setfullscreen</function
> dve su različite funkcije. </para>
</listitem>
<listitem>
<para
>Token * regularnih izraza može se koristiti u programu i argumentima objekta. <screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> kon*</option
></userinput>
konqueror-16006
konsole-8954
</screen>
</para>
</listitem>

</itemizedlist>

</para>

<para
>Neke naredbe za primer i njihov izlaz: </para>

<informalexample>
<screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> konsole*</option
></userinput>
konsole-8954
</screen>
<para
>Primerak <application
>Konsole</application
> u radu sa PID‑om 8954.</para>

<screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> konsole-8954</option
></userinput>
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
</screen>
<para
>Ovde možete videti da ima četiri tekuće sesije.</para>

<screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> konsole-8954</option
><option
> konsole</option
></userinput>
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()
</screen>
<para
>Opcije za glavni program <application
>Konsole</application
>. </para>

<screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> konsole-8954</option
><option
> session-1</option
></userinput>
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)
</screen>
<para
>Opcije za prvu sesiju, <literal
>session-1</literal
>.</para>

<screen
><prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> konsole-8954</option
><option
> konsole</option
><option
> setFullScreen</option
><parameter
> true</parameter
></userinput
>
</screen>
<para
>Postavlja <application
>Konsolu</application
> preko celog ekrana.</para>

</informalexample>

<para
>Ako ima više od jednog programa ili objekta, koji da upotrebite? Imate li upućivač? </para>
<screen
><prompt
>% </prompt
><userinput
><command
>echo</command
><option
> $KONSOLE_DCOP</option
></userinput>
DCOPRef(konsole-7547,konsole)

<prompt
>% </prompt
><userinput
><command
>dcop</command
><option
> $KONSOLE_DCOP</option
><option
> newSession</option
></userinput>
session-6

<prompt
>% </prompt
><userinput
><command
>dcopstart</command
><option
> konsole</option
></userinput>
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 /my/work/directory'

</screen>

</sect2>

<sect2 id="kdialog">
<title
>K‑dijalog</title>
<subtitle
>„Uradi sam“ u <acronym
>KDE‑u</acronym
> — gradnja sopstvenih alatki</subtitle>

<para
>Možete koristiti <acronym
>KDE</acronym
> dijaloge u sopstvenim skriptama, kombinujući moć skriptovanja unix školjke sa lakoćom korišćenja <acronym
>KDE‑a</acronym
>.</para>

<screen
><userinput
><command
>kdialog</command
> <option
>--msgbox 'Stigla vam je pošta!'</option
></userinput
></screen>

<screen
><userinput
><command
>kdialog</command
> <option
>--title 'Nova pošta'</option
> <option
>--msgbox 'Stigla vam je pošta!'</option
></userinput
></screen>

<para
>K‑dijalog deo može se zameniti opcijom <option
>--caption</option
> </para>

<screen
><userinput
><command
>kdialog</command
> <option
>--title 'Nova pošta'</option
> <option
>--msgbox 'Stigla vam je pošta!'</option
> <option
>--dontagain myfile:mykey</option
></userinput
></screen>

<para
>Upisuje u <filename
>$<envar
>KDEHOME</envar
>/share/config/myfile</filename
> da li da ponovo pokaže dijalog (dodavanjem u fajl sledećih redova:</para>

<screen
>[Notification Messages]
mykey=false</screen>

<para
>Umesto <option
>--msgbox</option
> možete, kad odgovara, koristiti i <option
>--sorry</option
> i <option
>--error</option
>. Na primer, mogli biste upotrebiti <userinput
><command
>kdialog</command
> <option
>--sorry 'Mreža se ne može doseći'</option
></userinput
>, ili <userinput
><command
>kdialog</command
> <option
>--error 'Ne mogu da otvorim poštansko sanduče'</option
></userinput
>.</para>

<para
>Takođe je moguće stvoriti dijaloge s porukom koji prihvataju odgovor „da“ ili „ne“.</para>

<screen
><command
>kdialog</command
> <option
>--yesno 'Želite li da se povežete
na Internet?'</option
> <command
>echo</command
> <returnvalue
>$?</returnvalue
></screen>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>povratna vrednost</entry>
<entry
>značenje</entry>
</row>
</thead>
<tbody>
<row
><entry
>0</entry
><entry
>Da, U redu, Nastavi</entry
></row>
<row
><entry
>1</entry
><entry
>ne</entry
></row>
<row
><entry
>2</entry
><entry
>Odustani</entry
></row>
</tbody>
</tgroup>
</informaltable>

<para
>Pazite da zapamtite rezultat u promenljivu ako ga ne koristite neposredno, pošto će sledeća naredba popuniti <literal
>$?</literal
> novom vrednošću. Ovde takođe možete koristiti <option
>--dontagain</option
>, koja će zapamtiti korisnikov izbor i vratiti ga sledeći put bez prikazivanja dijaloga.</para>

<para
>Dalje varijacije su:</para>

<variablelist>
<varlistentry>
<term
><option
>--warningyesno</option
></term>
<listitem>
<para
>kao <option
>--yesno</option
> ali sa drugačijom ikonom</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><option
>--warningcontinuecancel</option
></term>
<listitem
><para
>Sa dugmadima <guibutton
>Nastavi</guibutton
> i <guibutton
>Odustani</guibutton
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><option
>--warningyesnocancel</option
></term>
<listitem
><para
>Sa dugmadima <guibutton
>Da</guibutton
>, <guibutton
>Ne</guibutton
> i <guibutton
>Odustani</guibutton
>. Na primer:</para>
<screen
><command
>kdialog</command
> <option
>--warningyesnocancel 'Želite li
da sačuvate izmene?'</option
></screen>
</listitem>
</varlistentry>
</variablelist>

<screen
><command
>kdialog</command
> <option
>--inputbox 'Unesite ime:' 'vaše ime'</option
> </screen>

<para
>Rezultat se ispisuje na stdiz, a u promenljivu ga možete staviti pomoću <userinput
>name=$(kdialog --inputbox 'Unesite ime' 'vaše ime')</userinput
>. Poslednji argument je opcion, koristi se da pretpopuni dijalog.</para>

<screen
><userinput
><varname
>password</varname
>=$(<command
>kdialog</command
> <option
>--password 'Unesite lozinku:'</option
>)</userinput
></screen>

<para
>Opcija <option
>--dontagain</option
> ne radi uz <option
>--inputbox</option
> ili <option
>--password</option
></para>

<para
>Postoje dva dijaloga kojima korisnik može birati sa spiska:</para>

<variablelist>
<varlistentry>
<term
><option
>--menu</option
></term>
<listitem>
<para
>Omogućava korisniku da izabere stavku sa spiska.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><option
>--checklist</option
></term>
<listitem>
<para
>Omogućava korisniku da izabere jednu ili više stavki sa spiska.</para>
</listitem>
</varlistentry>
</variablelist>

<screen
><userinput
><varname
>city</varname
>=$(<command
>kdialog</command
> <option
>--menu 'Izaberite grad' a London b Madrid c Pariz d Beograd</option
>)</userinput
> </screen>

<para
><varname
>$city</varname
> će biti <returnvalue
>a</returnvalue
>, <returnvalue
>b</returnvalue
>, <returnvalue
>c</returnvalue
> ili <returnvalue
>d</returnvalue
>. </para>

<screen
><userinput
><varname
>city</varname
>=$(<command
>kdialog</command
> <option
>--checklist 'Izaberite gradove' a London off b Madrid on c Pariz off d Beograd on</option
>)</userinput
></screen>

<para
>Madrid i Beograd će biti predodabrani. Rezultat sa izabranim Madridom i Beogradom biće <returnvalue
>'b'</returnvalue
> <returnvalue
>'d'</returnvalue
>.</para>

<para
>Ako dodate opciju <option
>--separate-output</option
>, staviće <returnvalue
>b</returnvalue
> i <returnvalue
>d</returnvalue
> svako u svoj red, što olakšava obradu rezultata.</para>

<screen
>file=$(kdialog --getopenfilename $HOME)
file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Fajlovi slika")
file=$(kdialog --getsavefilename $HOME/SaveMe.png)
file=$(kdialog --getexistingdirectory $HOME)</screen>

</sect2>

</sect1>

</chapter>
&groupware-with-kontact; </part>

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:true
sgml-parent-document:("index.docbook" "book" "part")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
