<part id="kde-for-administrators">
<partinfo>
<authorgroup>
<author><personname> <firstname>Waldo</firstname> <surname>Bastian</surname> </personname> <email>bastian@kde.org</email> </author>
<othercredit role="reviewer">&Philip.Rodrigues; &Philip.Rodrigues.mail; </othercredit>
</authorgroup>
</partinfo>

<title>&kde; per administradors</title>

<chapter id="kde-internals">
<title>Interioritats de &kde;</title>

<sect1 id="tde-for-admins-overview">
<title>Vista general</title>
<para>per escriure</para>
</sect1>

<sect1 id="directory-layout">
<title>Distribució de directoris</title>

<para>&kde; defineix un sistema de fitxers jeràrquic que és usat per l'entorn de &kde; mateix així com per totes les aplicacions &kde;. En general &kde; desa tots els seus fitxers en un arbre de directoris amb una estructura fixa. </para>

<para>Per omissió &kde; usa dos arbres de directori:</para>

<itemizedlist>
<listitem><para>Un a nivell de sistema (per exemple <filename class="directory">/opt/kde3</filename>).</para></listitem>
<listitem><para>Un altra a nivell d'usuari en el directori inici de l'usuari (normalment <filename class="directory">~/.trinity</filename>)</para></listitem>
</itemizedlist>

<para>Com administrador del sistema podreu crear arbres addicionals. Es poden usar arbres addicionals per als <link linkend="user-profiles">perfils</link></para>

<informalexample><para>&SuSE; &Linux; per exemple usa:</para>

<itemizedlist>
<listitem><para><filename
class="directory">$<envar>HOME</envar>/.trinity</filename></para></listitem>
<listitem><para><filename class="directory">/opt/kde3</filename> (Aquest és específic per a &SuSE;. D'altres distribucions poden usar <filename class="directory">/usr</filename> o <filename class="directory">/usr/kde3</filename>)</para></listitem>
<listitem><para><filename class="directory">/etc/opt/kde3</filename> (Aquest fou afegit per &SuSE;).</para></listitem>
</itemizedlist>

<para>Si teniu l'eina d'administració KIOSK v0.7 o posterior instal·lada podreu comprovar quins arbres de directori s'usaran amb el següent comandament: <userinput><command>kiosktool-tdedirs</command> <option>--check</option></userinput></para>
</informalexample>

<para>&kde; i les aplicacions &kde; cerquen fitxers explorant tots els arbres de directori de &kde;. Els arbres de directori es comproven en ordre de prioritat. Quan un fitxer apareix en diversos arbres de directori, el fitxer de l'últim arbre tindrà prioritat. Normalment, l'arbre situat en el directori inici de l'usuari tindrà la màxima prioritat. També és l'arbre de directoris en el que s'escriuen els canvis.</para>

<informalexample>
<para>Per obtenir informació sobre escriure el tipus &MIME; <literal>text/plain</literal> es cerquen els següents fitxers:</para>

<itemizedlist>
<listitem><para><filename
class="directory">$<envar>HOME</envar>/.trinity/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>Si un usuari fa un canvi, el canvi s'escriu en <filename class="directory">$<envar>HOME</envar>/.trinity/share/mimelnk/text/plain.desktop</filename></para>
</informalexample>

<para>Per als fitxers de configuració la història és lleugerament diferent. Si hi ha múltiples fitxers de configuració en l'arbre de directoris amb el mateix nom, es combinen els seus continguts. L'ordre de prioritat dels arbres de directori aquí és una cosa important. Quan dos fitxers estableixen la mateixa clau de configuració, el fitxer amb la màxima prioritat determina quin valor s'usarà per a la clau.</para>

<informalexample><para>Per exemple, si hi ha els dos següents fitxers amb aquests continguts:</para>
<variablelist>
<varlistentry><term><filename>$<envar>HOME</envar>/.trinity/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>Els fitxers seran fusionats donant el següent resultat:</para>

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

</informalexample>
</sect1>

<sect1 id="specifying-directories">
<title>Especificar directoris</title>

<para>

<segmentedlist>
<segtitle>Variable d'entorn</segtitle>
<segtitle>Exemple(s) de configuració</segtitle>
<segtitle>Comentari</segtitle>

<seglistitem>
<seg><envar>TDEHOME</envar></seg>
<seg><filename class="directory">~/.trinity</filename></seg>
<seg></seg>
</seglistitem>

<seglistitem>
<seg><envar>TDEROOTHOME</envar></seg>
<seg><filename class="directory">/root/.trinity</filename></seg>
<seg>Aquesta variable és diferent de $TDEHOME per evitar que el root escrigui la variable $TDEHOME de l'usuari després d'executar <command>su</command>.</seg>
</seglistitem>

<seglistitem>
<seg><envar>TDEDIR</envar></seg>
<seg><filename class="directory">/opt/kde3</filename>, <filename class="directory">/usr</filename>, <filename class="directory">/usr/kde3</filename></seg>
<seg>Dependrà del venedor. Usat per &kde;2. Si no està establerta, s'usarà la compilació per omissió.</seg>
</seglistitem>

<seglistitem>
<seg><envar>TDEDIRS</envar></seg>
<seg><filename class="directory">/opt/kde3</filename>, <filename class="directory">/usr</filename>, <filename class="directory">/usr/kde3</filename></seg>
<seg>Nou en &kde; 3. Pot llistar múltiples localitzacions separades per dos punts. Si no està establerta, s'usarà $<envar>TDEDIR</envar></seg>
</seglistitem>

</segmentedlist>
</para>
<para>No <emphasis>necessita</emphasis> ser establerta, els valors per omissió funcionen perfectament.</para>
<para>I si es volen executar alternativament &kde; 2 i &kde; 3? $<envar>TDEDIR</envar> apuntarà a &kde; 2 i $<envar>TDEDIRS</envar> a &kde; 3.</para>

<informalexample>
<para>Un membre d'una universitat podria tenir la següent configuració:</para>
<programlisting>TDEHOME='~/.trinity3'
TDEROOTHOME='/root/.trinity3'
TDEDIRS='/opt/kde_staff:/opt/kde3'
</programlisting>

</informalexample>

</sect1>

<sect1 id="user-profiles">
<title>Perfils d'usuari</title>

<para>En l'exemple anterior <filename class="directory">/opt/kde_staff</filename> conté configuracions i aplicacions addicionals per als membres. Els <quote>Perfils d'usuari</quote> us permetran afegir aquest directori tan sols per a uns usuaris i no per a d'altres. Afegiu el següent a <filename>/etc/tderc</filename>:</para>

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

<para>Això crea un perfil anomenat<quote>staff</quote> que afegeix <filename class="directory">/opt/kde_staff</filename> a l'arbre de directoris. (Per exemple &SuSE; &Linux; usa <filename>/etc/kde3rc</filename> en lloc de <filename>/etc/tderc</filename>). Ara que hem indicat nombre al perfil hi haurà que assignar als usuaris.</para>

<para>El mapa de perfils d'usuari precisa d'un fitxer que s'ha d'especificar en <filename>/etc/tderc</filename>:</para>

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

<para>Ara és possible assignar un perfil basat en el grup &UNIX; dels que forma part.</para> 

<para>Per assignar el perfil staff a tots els usuaris que siguin membres del grup &UNIX; staff_members afegiu el següent a <filename>/etc/kde-user-profile</filename>:</para>

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

<para>També és possible assignar un perfil a tan sols un usuari:</para>

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

</sect1>

<sect1 id="directory-layout-revisited">
<title>Revisió de la distribució de directoris</title>

<para>Cada arbre de directoris usat per &kde; te una estructura de directoris fixa. Els directoris que no són importants per a alguns arbres, o simplement no usats són obviats. Per exemple, els directoris usats per als fitxers temporals es solen col·locar sota <filename class="directory">$<envar>TDEHOME</envar></filename> però no en qualsevol altra arbre de directoris.</para>

</sect1>

<sect1 id="architecture-specific-directories">
<title>Directoris específics de l'arquitectura</title>

<para>Els directoris específics de l'arquitectura (SO i tipus de CPU):</para>

<variablelist>
<varlistentry>
<term><filename class="directory">bin</filename></term>
<listitem><para>Usat per als executables de &kde;.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">lib</filename></term>
<listitem><para>Usat per les biblioteques de &kde;.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">lib/kde3</filename></term>
<listitem><para>Aquest directori conté components, connectors i d'altres objectes usats per les aplicacions &kde; 3.<replaceable>x</replaceable> que es poden carregar en temps d'execució.</para></listitem> 
</varlistentry>
</variablelist>

</sect1>

<sect1 id="shared-directories">
<title>Directoris compartits</title>

<para>Compartits: No específics d'una arquitectura, poden ser compartits per diferents arquitectures.</para>

<variablelist>
<varlistentry>
<term><filename class="directory">share/applnk</filename></term>
<listitem><para>fitxers <literal role="extension">.desktop</literal> per al menú &kde; (antic)</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/applications</filename></term>
<listitem><para>fitxers <literal role="extension">.desktop</literal> per al menú &kde; (des de &kde; 3.2).</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/apps</filename></term>
<listitem><para>Conté fitxers de dades per a aplicacions específiques. Cada aplicació te aquí un subdirectori per a desar fitxers de dades addicionals.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/config</filename></term>
<listitem><para>Fitxers de configuració. Els fitxers de configuració normalment tenen el mateix nom que l'aplicació a la qual pertanyen més les lletres <quote>rc</quote>. Un cas especial és <filename>kdeglobals</filename>. Aquest fitxer és llegit per totes les aplicacions &kde;.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename
class="directory">share/config/session</filename></term>
<listitem><para>Aquest directori s'usa per a la gestió de la sessió i tan sols està disponible sota <filename class="directory">$<envar>TDEHOME</envar></filename>. Al final d'una sessió de &kde; les aplicacions desen aquí el seu estat. Els noms dels fitxers es componen del nom de l'aplicació seguit per un número. El gestor de la sessió <command>ksmserver</command> desa referències a aquests números quan desa una sessió en <filename>ksmserverrc</filename>.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/doc/HTML</filename></term>
<listitem><para>Aquest directori conté la documentació per a les aplicacions de &kde;. La documentació està separada per idiomes i per l'aplicació propietària de la mateixa. Normalment al menys hi ha dos fitxers en un directori <filename>index.docbook</filename>, el qual conté la documentació en format DocBook sense formatar i <filename>index.cache.bz2</filename>, que te la mateixa informació formatada com a &HTML; compremut amb <command>bzip2</command>. La versió &HTML; és usada per &khelpcenter;. Si falta la versió &HTML; &khelpcenter; la regenerarà a partir de la versió DocBook però això consumeix temps de procés.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/icons</filename></term>
<listitem><para>En aquest directori es desen les icones. Les icones es divideixen per temes, dimensions i categoria d'ús.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/mimelnk</filename></term>
<listitem><para>En aquest directori, es desen els fitxers <literal role="extension">.desktop</literal> descrits pels tipus &MIME;. &kde; usa els tipus &MIME; per identificar el tipus d'un fitxer.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/services</filename></term>
<listitem><para>Aquest directori conté els fitxers <literal role="extension">.desktop</literal> que descriuen serveis. Els serveis són com aplicacions però que són carregats per d'altres aplicacions en comptes de l'usuari. Els serveis no apareixen en el menú &kde;.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/servicetypes</filename></term>
<listitem><para>Aquest directori conté fitxers <literal role="extension">.desktop</literal> que descriuen tipus de servei. Un tipus de servei sol representar una determinada interfície de programació. Les aplicacions i serveis inclouen en els seus propis fitxers <literal role="extension">.desktop</literal> els tipus de servei que proveeixen.</para> </listitem></varlistentry>

<varlistentry>
<term><filename class="directory">share/sounds</filename></term>
<listitem><para>Aquest directori conté fitxers de so.</para></listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/templates</filename></term>
<listitem><para>Aquest directori conté plantilles per a crear fitxers de diversos tipus. Una plantilla és un fitxer <literal role="extension">.desktop</literal> que descriu el fitxer i que inclou un referència a un fitxer en el subdirectori <filename class="directory">.source</filename>. Les plantilles d'aquest directori apareixen en el menú <guimenu>Crea nou</guimenu> disponible en l'escriptori i en el navegador de fitxers. Quan un usuari selecciona una plantilla d'aquest menú es copia el seu fitxer font.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename class="directory">share/wallpapers</filename></term>
<listitem><para>Aquest directori conté imatges que es poden usar com a imatge de fons</para></listitem>
</varlistentry>

</variablelist>

</sect1>

<sect1 id="host-specific-directories">
<title>Directoris específics de la màquina</title> 

<para>Hi ha tres directoris específics que solen ser enllaços simbòlics a altres localitzacions. Si els directoris no existeixen, es podran crear els següents enllaços simbòlics i directoris usant la utilitat <command>lnusertemp</command>:</para>

<variablelist>

<varlistentry>
<term><filename>$<envar>TDEHOME</envar>/socket-$<envar>HOSTNAME</envar></filename></term>
<listitem><para>Normalment <filename class="directory">/tmp/tdesocket-$<envar>USER</envar>/</filename>, sol ser usat per diverses connexions &UNIX;.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename>$<envar>TDEHOME</envar>/tmp-$<envar>HOSTNAME</envar></filename></term>
<listitem><para>Normalment <filename class="directory">/tmp/tde-$<envar>USER</envar>/</filename>, s'usa per als fitxers temporals.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename>$<envar>TDEHOME</envar>/cache-$<envar>HOSTNAME</envar></filename></term>
<listitem><para>Normalment <filename class="directory">/var/tmp/tdecache-$<envar>USER</envar>/</filename>, s'usa per als fitxers a la memòria cau.</para>
</listitem>
</varlistentry>
</variablelist>

<para>Atès que tant <filename class="directory">/tmp</filename> com <filename class="directory">/var/tmp</filename> es poden escriure per tots, és possible que un d'aquests directoris ja existeixi però que sigui propietat d'un altra usuari. En aquest cas la utilitat <command>lnusertemp</command> crearà un nou directori amb un nom alternatiu i l'enllaçarà.</para>

</sect1>

<sect1 id="configuration-files">
<title>Fitxers de configuració</title> <para>&kde; usa un format de fitxer basat en text simple per a tots els seus fitxers de configuració. Consisteix en claus-valor parelles que són situades per grups. Tots els fitxers de configuració de &kde; usen <acronym>UTF</acronym>-8 codificant el text extern en <acronym>ASCII</acronym>.</para>

<para>L'inici d'un grup és indicat per un nom de grup situat entre claudàtors. Totes les entrades clau-valor que segueixen pertanyen al grup. El grup finalitza quan s'inicia un altra grup o quan s'abasta el final del fitxer. Les entrades de la part superior del fitxer que no estan precedides pel nom de grup pertanyen al grup per omissió.</para>

<informalexample><para>El següent exemple mostra un fitxer de configuració que conté dos grups. El primer conté les claus <varname>LargeCursor</varname> i <varname>SingleClick</varname>, el segon conté les claus <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>Les entrades den un grup estan formades per una clau i un valor separats per un signe igual. La clau pot contenir espais i la pot seguir les opcions col·locades entre claudàtors. La part posterior al signe igual és el valor de l'entrada. Qualsevol espai en blanc que rodegi al signe igual serà ignorat, com si no n'hi fos. Per a ser més concís, el format és:</para>

<programlisting><replaceable>entrada</replaceable>=<replaceable>valor</replaceable>
</programlisting>

<para>Si un valor es suposa que ha d'incloure un espai al començament o al final llavores podrà ser arxivat usant una barra invertida seguida d'una <quote>s</quote>.</para>

<para>Hi ha alguns altres codis de barra invertida, aquí està la llista completa: <itemizedlist>
<listitem><para><token>\s</token> se pot usar com un espai</para>
</listitem>
<listitem><para><token>\t</token> es pot usar per incloure un tabulador</para>
</listitem>
<listitem><para><token>\r</token> per a un caràcter de retorn de carro</para>
</listitem>
<listitem><para><token>\n</token> per a un caràcter de retorn de línia (nova línia)</para>
</listitem>
<listitem><para><token>\\</token> per incloure la barra invertida</para>
</listitem>
</itemizedlist></para>

<informalexample><para>En el següent exemple el valor de l'entrada <varname>Caption</varname> s'inicia amb dos espais mentre que l'entrada <varname>Description</varname> conté tres línies de text. Els salts de línia en la notació de barra invertida s'usen per a separar les línies diferents.</para>

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

<para>Les línies buides en els fitxers de configuració són ignorades, així com les línies que comencin amb una marca de número (<quote>#</quote>). La marca de número es pot usar per afegir comentaris als fitxers de configuració. Hauríeu de tenir en compte que quan una aplicació &kde; actualitza un fitxer de configuració els comentaris <emphasis>no</emphasis> són conservats.</para>

<para>Poden haver-hi múltiples fitxers de configuració amb el mateix nom en el subdirectori <filename class="directory">share/config</filename> o en diversos directoris de l'arbre de directoris de &kde;. En aquest cas la informació d'aquests fitxers de configuració es combinen en una base clau per clau. Si la mateixa clau d'un grup es defineix en diversos llocs, el valor de la clau es prendrà de l'arbre de directoris amb major prioritat. Els fitxers de configuració sota <filename class="directory">$<envar>TDEHOME</envar></filename> sempre tindran la màxima prioritat. Si una clau en un determinat grup es defineix diverses vegades en un mateix fitxer, es prendrà el valor de l'última entrada usada.</para>

<informalexample>
<para>Si <filename>$<envar>HOME</envar>/.trinity/share/config/foobar</filename> conté: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting> i <filename>/etc/opt/kde3/share/config/foobar</filename> conté <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting> el resultat serà: <programlisting>[MyGroup]
Color=red
Shape=circle
Position=10,10
</programlisting>
</para>
</informalexample>

<informalexample>
<para>Si <filename>$<envar>HOME</envar>/.trinity/share/config/foobar</filename> conté <programlisting>
[MyGroup]
Color=red
Shape=circle
[MyGroup]
Color=green
</programlisting> i <filename>/opt/kde_staff/share/config/foobar</filename> conté <programlisting>
[MyGroup]
Color=purple
Position=20,20
</programlisting> i <filename>/etc/opt/kde3/share/config/foobar</filename> conté <programlisting>
[MyGroup]
Color=blue
Position=10,10
</programlisting> el resultat serà: <programlisting>[MyGroup]
Color=green
Shape=circle
Position=20,20
</programlisting>
</para>
</informalexample>

<para>Per evitar que els usuaris siguin capaços de sobreescriure les configuracions per omissió, aquestes configuracions es marquen com a no modificables. Les configuracions es poden fer no modificables de forma individual, per grups o per fitxer. Una entrada individual es pot blocar afegint <userinput>[$i]</userinput> al darrera de la clau, &pex;: <programlisting>Color[$i]=blue
</programlisting>
</para>
<para>Un grup d'entrades es pot blocar col·locant <userinput>[$i]</userinput> al darrera del nom de grup, &pex;: <programlisting>[MyGroup][$i]
</programlisting>
</para>
<para>Per a blocar un fitxer complet, inicia el fitxer amb <userinput>[$i]</userinput> en una sola línia, &ead;: <programlisting>[$i]
</programlisting>
</para>

<informalexample>
<para>Si <filename>$<envar>HOME</envar>/.trinity/share/config/foobar</filename> conté: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting> i <filename>/etc/opt/kde3/share/config/foobar</filename> conté: <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting> el resultat serà: <programlisting>[MyGroup]
Color=blue
Position=10,10
</programlisting>
</para>
</informalexample>

<informalexample><para>Si <filename>$<envar>HOME</envar>/.trinity/share/config/foobar</filename> conté: <programlisting>
[MyGroup]
Color=red
Shape=circle
</programlisting> i <filename>/opt/kde_staff/share/config/foobar</filename> conté <programlisting>
[MyGroup]
Color=purple
Shape=rectangle
</programlisting> i <filename>/etc/opt/kde3/share/config/foobar</filename> conté <programlisting>
[MyGroup][$i]
Color=blue
Position=10,10
</programlisting> el resultat serà <programlisting>[MyGroup]
Color=purple
Shape=rectangle
Position=10,10
</programlisting>
</para>
</informalexample>


<para>L'anomenada <quote>expansió de l'intèrpret de comandaments</quote> es pot usar per a proveir més valors dinàmics per omissió. Amb la expansió de l'intèrpret de comandaments el valor d'una clau de configuració es pot construir a partir del valor d'una variable d'entorn o a partir de la sortida d'un comandament de l'intèrpret de comandaments. Per habilitar la expansió de l'intèrpret de comandaments per a una entrada de configuració, la clau haurà d'estar seguida per <token>[$e]</token>. Normalment la forma estesa està escrita en els fitxers de configuració dels usuaris després de la primera vegada que s'usa. Per prevenir-ho, és recomanable blocar l'entrada de configuració usant <token>[$ie]</token>. L'usuari no podrà canviar-la per descomptat.</para>

<informalexample>
<para>En el següent exemple el valor per a l'entrada <varname>Host</varname> està determinada per la sortida del programa <command>hostname</command>. Aquesta configuració també està blocada per assegurar-se que el valor serà sempre determinat dinàmicament.</para>

<para>El valor per a l'entrada <varname>Email</varname> es determina omplint els valors de les variables d'entorn $<envar>USER</envar> i $<envar>HOST</envar>. Quan <systemitem class="username">jordi</systemitem> es connecta en <systemitem class="systemname">jordi_màquina</systemitem> es retornarà un valor igual a <literal>jordi@jordi_màquina</literal>. La configuració no està blocada.</para>

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

<para>La majoria de les entrades es poden indexar amb un codi d'idioma. En aquest cas, l'idioma seleccionat per l'usuari per a usar-lo en el seu escriptori és l 'usat com a valor clau. Si l'idioma per omissió (anglès americà) ha estat seleccionat o si no hi ha índex corresponent a l'idioma seleccionat, s'usarà l'entrada clau sense índex.</para>

<informalexample>
<para>En el següent exemple el valor de l'entrada <varname>Caption</varname> dependrà de l'idioma. Si l'usuari ha seleccionat francès com a idioma (codi d'idioma <literal>fr</literal>) el valor de l'entrada serà <quote>Ma L&eacute;gende</quote>. En qualsevol altra cas el valor usat serà <quote>My caption</quote>.</para>

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

<informalexample>
<para>En aquest exemple el valor de l'entrada <varname>Caption</varname> dependrà de l'idioma. Si l'usuari ha seleccionat francès com a idioma (codi d'idioma <literal>fr</literal>) el valor de l'entrada serà <quote>Ma L&eacute;gende</quote>. En qualsevol altra cas el valor usat serà <quote>My caption</quote>.</para>

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

<para>En general les entrades que apareixen en un fitxer de configuració no estan documentades. Amb &kde; 3.2 s'ha començat a canviar això. En <filename class="directory">$<envar>TDEDIR</envar>/share/config.kcfg</filename>, es poden trobar els fitxers que proveeixen una descripció formal de les possibles entrades en un fitxer de configuració. Aquestes s'usaran per al nou editor de configuració de &kde; quan estigui disponible.</para>

<informalexample>
<para>Aquí hi ha un exemple d'un fitxer de configuració &XML;: <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>Tindrà el mateix efecte que: <programlisting>[General]
Auto Save=false
Auto Save Interval=25
</programlisting>
</para>
</informalexample>

</sect1>

<sect1 id="kde-startup-sequence">
<title>Seqüència d'inici de &kde;</title>

<sect2 id="tdm">
<title>&tdm;</title>

<para>Sempre s'executa com a <systemitem class="username">root</systemitem>! Usa <filename>$<envar>TDEDIR</envar>/share/config/tdmrc</filename> i <filename>/etc/X11/xdm/Xservers</filename>. L'últim conté una entrada com:</para>

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

<para>També són fitxers rellevants per a l'inici: </para>
<simplelist>
<member>La secció [X-*-Core] en <filename>tdmrc</filename> </member>
<member>Configuració: <filename>/etc/X11/xdm/Xsetup</filename> </member>
<member>Els usuaris introdueixen el nom d'usuari i la contrasenya </member>
<member>Inici: <filename>/etc/X11/xdm/Xstartup</filename> - com a root </member>
<member>Sessió: <filename>/etc/X11/xdm/Xsession</filename> - inicia la sessió com a usuari </member>
<member>= Per a una sessió KDE: <command>kde</command> o <command>starttde</command> </member>
<member>= Si està present <filename>~/.xsession</filename> o <filename>~/.xinitrc</filename> </member>
<member>Tornar a inciar: <filename>/etc/X11/xdm/Xreset</filename> - després de finalitzar la sessió </member>
</simplelist>

</sect2>

<sect2 id="starttde">
<title>L'script d'inici de &kde;: <command>starttde</command></title>

<para>La seqüència d'inici de &kde; comença amb l'script <filename>starttde</filename>. En la majoria de casos aquest script crida al gestor de la pantalla (&tdm;) una vegada que l'usuari s'ha autenticat. Hi ha dues línies molt importants en l'script <filename>starttde</filename>:</para>

<programlisting>LD_BIND_NOW=true tdeinit +kcminit +knotify i kwrapper
ksmserver $TDEWM
</programlisting>

<para>La primera línia inicia el procés mestre <command>tdeinit</command>. El procés mestre <command>tdeinit</command> s'usa per iniciar tots els altres processos de &kde;. Apareix en la sortida de <command>ps <option>aux</option></command> com a <computeroutput>tdeinit: Running...</computeroutput>. Els arguments després de <command>tdeinit</command> són els noms dels processos que s'iniciaràn. <token>+</token> indica que <command>tdeinit</command> necessita esperar a que el procés finalitzi. <command>tdeinit</command> també inicia <command>dcopserver</command>, <command>tdelauncher</command> i <command>kded</command>.</para>

<para>La segona de les dos línies indica a <command>tdeinit</command> que iniciï el procés de gestió de la sessió <command>ksmserver</command>. El gestor de la sessió determina el temps de vida d'aquesta. Quan aquest procés surt, l'usuari ha sortit.</para>

</sect2>
</sect1>

<sect1 id="background-processes">
<title>Processos en segon pla</title>

<para>Tots els serveis en segon pla de &kde; tenen un ús específic: A diferència del sistema de dimonis no són compartits pels usuaris. Com són únics per a cada usuari també són únics per a cada pantalla del servidor X. Els processos són:</para>

<variablelist>
<varlistentry>
<term><command>dcopserver</command></term>
<listitem><para>Comunicació amb l'escriptori</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>kded</command></term>
<listitem><para>Dimoni de servei genèric.</para>
<para>Inicien <link linkend="tdesycoca">Sycoca</link> per actualitzar la base de dades sempre que sigui necessari</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>kcminit</command></term>
<listitem><para>Inicialització de servei</para>
<para>Mireu <xref linkend="kcminit"/> per obtenir més informació.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>tdelauncher</command></term>
<listitem><para>Carrega el programa (aquest <emphasis>no</emphasis> és el diàleg <keycombo action="simul">&Alt;<keycap>F2</keycap> </keycombo>!).</para>
<para>Mireu <xref linkend="tdelauncher"/> per obtenir més informació.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>knotify</command></term>
<listitem><para>Notificacions d'usuari.</para>
<para>Mireu <xref linkend="knotify"/> per obtenir més informació.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>ksmserver</command></term>
<listitem><para>Gestió de la sessió</para>
<para>Mireu <xref linkend="ksmserver"/> per obtenir més informació.</para>
</listitem>
</varlistentry>

</variablelist>

<sect2 id="tdeinit">
<title><command>tdeinit</command></title>
<para><command>tdeinit</command> s'usa per iniciar tots els demés programes de &kde;. <command>tdeinit</command> pot iniciar tant fitxers de programa binari així com mòduls carregables per <command>tdeinit</command> (els <acronym>KLM</acronym>). Els <acronym>KLM</acronym> funcionen de manera similar als fitxers de programa binari però es poden iniciar d'una forma més eficient. Els <acronym>KLM</acronym> es troben en <filename class="directory">$<envar>TDEDIR</envar>/lib/kde3</filename></para>

<para>L'inconvenient dels programes iniciats d'aquesta manera és que apareixeran com a <computeroutput><command>tdeinit</command></computeroutput> en la sortida de <command>top</command> i <command>ps</command>. Useu <command>top <option>-c</option></command> o <command>ps <option>aux</option></command> per al nom actual del 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 tdeinit: Running...
waba     23187  0.1  2.1 23200 11124 ?        S    21:41   0:00 tdeinit: dcopserver --nosid
waba     23189  0.2  2.4 25136 12496 ?        S    21:41   0:00 tdeinit: tdelauncher
waba     23192  0.7  2.8 25596 14772 ?        S    21:41   0:00 tdeinit: kded
waba     23203  0.8  3.4 31516 17892 ?        S    21:41   0:00 tdeinit:
knotify
</computeroutput>
</screen>

<para><computeroutput>tdeinit:Runing...</computeroutput> identifica el procés mestre <command>tdeinit</command>. Els d'altres processos llistats són els programes iniciats com als <acronym>KLM</acronym>.</para>

<para>Quan <command>tdeinit</command> és executat per primera vegada iniciarà <command>dcopserver</command>, <command>tdelauncher</command> i <command>kded</command>, així com aquells programes addicionals especificats a la seva línia de comandaments en el script <command>starttde</command>, normalment <command>kcminit</command> i <command>knotify</command>.</para>

</sect2>

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

<para><command>dcopserver</command> és un dimoni que proveeix capacitats per a permetre la comunicació entre processos (&DCOP;) per a totes les aplicacions &kde;. Les capacitats &DCOP; són accessibles des de l'intèrpret de comandaments a través del comandament <command>dcop</command>. &DCOP; és essencial per a totes les aplicacions &kde;.</para>

<para>Alguns fitxers relacionats:</para>

<variablelist>
<varlistentry>
<term><filename>$<envar>HOME</envar>/.DCOPserver_$<envar>HOSTNAME</envar>_$<envar>DISPLAY</envar></filename></term>
<listitem><para>&pex;, <filename>.DCOPserver_linux__0</filename>. Controlat per $<envar>DCOPAUTHORITY</envar></para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename>/tmp/.ICE-unix/dcop<replaceable>número</replaceable>-<replaceable>pid</replaceable></filename></term>
<listitem><para>&pex;, <filename>dcop7634-1069677856</filename>. Aquest és el fitxer al que apunta <filename>DCOPserver</filename>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><filename>$<envar>HOME</envar>/.ICEauthority</filename></term>
<listitem><para>Autorització de la informació controlada per $<envar>ICEAUTHORITY</envar></para>
</listitem>
</varlistentry>
</variablelist>

</sect2>

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

<para><command>kcminit</command> executa els serveis d'inicialització durant l'arrencada. Els serveis inicialitzats s'especifiquen en els fitxers .desktop de les aplicacions o serveis mitjançant la línia <varname>X-TDE-Init</varname>:</para>

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

<para>La inicialització de serveis es sol emprar per a inicialitzar maquinari basat en les configuracions especifiques de l'usuari.</para>

<para><userinput><command>kcminit <option>--list</option></command></userinput> es pot usar per a mostrar tots els serveis inicialitzats i <userinput><command>kcminit <replaceable>servei</replaceable></command></userinput> es pot usar per executar un determinat servei de forma explícita. Això pot resultar molt pràctic per esbrinar problemes d'inici.</para>

</sect2>

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

<para><command>tdelauncher</command> es un dimoni responsable del servei d'activació en el &kde;. Opera en connexió directa amb el procés mestre <command>tdeinit</command> per iniciar nous processos. Les aplicacions &kde; es comuniquen amb <command>tdelauncher</command> a través de &DCOP; per iniciar noves aplicacions o serveis.</para>

<para>El més conegut és el missatge d'error: <computeroutput><errortext> TDELauncher could not be reached via DCOP </errortext></computeroutput> el qual indica un seriós problema amb <command>dcopserver</command> o que <command>tdelauncher</command> ha petat.</para>

<para><command>tdelauncher</command> es pot tornar a iniciar amb <command>tdeinit</command> des d'una finestra de consola. Abans de fer-ho assegureu-vos que $<envar>HOME</envar>, $<envar>DISPLAY</envar> i la resta de les variables $<envar>TDEDIR(S)</envar> estan correctament configurades!</para>

</sect2>

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

<para>La principal tasca de <command>knotify</command> és transmetre les notificacions de so al servidor de so, a la vegada que proveeix mètodes de notificació alternatius.</para>

</sect2>


</sect1>

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

<para><command>ksmserver</command> és el gestor de sessions de &kde;. A l'iniciar-se el gestor de sessions s'inicien les aplicacions auto-arrencables i es restauren les aplicacions de la sessió anterior. Les aplicacions auto-arrencables són les que són indicades pels fitxers <literal role="extension">.desktop</literal> en el directori <filename class="directory">$<envar>TDEDIR</envar>/share/autostart</filename>. L'auto-arrencada d'una aplicació pot estar condicionada per l'entrada <varname>X-TDE-autostart-condition</varname> en el fitxer <literal role="extension">.desktop</literal>.</para>

<informalexample>
<para>Per exemple el fitxer <filename>ktip.desktop</filename> conté:</para>

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

<para>Això vol dir que el fitxer de configuració <filename>ktiprc</filename> serà marcat amb una entrada <varname>RunOnStart</varname> en la secció <varname>[TipOfDay]</varname>. Si no es troba l'entrada, s'assumeix el valor <literal>true</literal>, el qual vol dir que <application>ktip</application> és una de les aplicacions que per omissió seran auto-arrencades.</para>
</informalexample>

<para>Algunes de les aplicacions auto-arrencables per <command>ksmserver</command> són:</para>

<variablelist>

<varlistentry>
<term><command>kdesktop</command></term>
<listitem><para>L'escriptori de &kde;</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>&kicker;</command></term>
<listitem><para>El plafó de &kde;</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>ktip</command></term>
<listitem><para>Un programa amb el consell del dia</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>kwrited</command></term>
<listitem><para>Una utilitat per a rebre missatges del sistema enviats a l'usuari</para>
</listitem>
</varlistentry>

<varlistentry>
<term>&klipper;</term>
<listitem><para>Una utilitat de portapapers que s'ancora en el plafó</para>
</listitem>
</varlistentry>

<varlistentry>
<term><command>kalarm</command></term>
<listitem><para>Una utilitat que us avisa quan es produeix una cita</para>
</listitem>

</varlistentry>
</variablelist>

<para><command>kdesktop</command> inicia aquelles aplicacions desades en <filename class="directory">$<envar>TDEHOME</envar>/Autostart</filename>. <command>kdesktop</command> obrirà automàticament qualsevol fitxer desat en aquest directori incloguen documents, fitxers binaris o aplicacions en forma de fitxers <literal role="extension">.desktop</literal>.</para>

<para>El gestor de sessió de &kde; també restaura una de les sessions anteriors. Una sessió conté una col·lecció d'aplicacions així com informació especifica de l'aplicació que reflexa l'estat de l'aplicació en el moment en que es va desar la sessió. Les sessions es desen en el fitxer de configuració <filename>ksmserverrc</filename> que conté referències a la informació especifica de l'estat d'una aplicació. La informació especifica de l'estat d'una aplicació es desa en <filename class="directory">$<envar>TDEHOME</envar>/share/config/session</filename>. La informació de l'estat de &twin; conté la col·locació de les finestres de totes les aplicacions de la sessió. </para>

</sect1>

<sect1 id="environment-variables">
<title>Variables d'entorn</title>

<para>Algunes variables d'entorn importants usades per &kde;:</para>

<variablelist>

<varlistentry>
<term>$<envar>TDEDIR</envar></term>
<listitem><para>Ha d'estar establerta si <envar>TDEDIRS</envar> no ho està i haurà d'apuntar al directori arrel de l'arbre de la instal·lació de &kde;. Permet al &kde; trobar les seves dades com ara les icones, menús i biblioteques.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDEDIRS</envar></term>
<listitem><para>Solapa <envar>TDEDIR</envar> i us permet especificar múltiples directoris en els que &kde; cercarà les seves dades. És pràctic si voleu o teniu instal·lats alguns programes en un lloc diferent que a la resta de &kde;.</para> 
</listitem>
</varlistentry>

<varlistentry><term><envar>$TDEHOME</envar></term><listitem><para>Si no està establerta, &kde; usa <filename class="directory">~/.trinity</filename> com a directori en el que es desaran dades personals.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDEROOTHOME</envar></term><listitem><para>Si no està establerta, &kde; usa <filename class="directory">~root/.trinity</filename> com a directori en el que es desaran les dades personals del <systemitem class="username">root</systemitem>. S'ha introduït per evitar que &kde; sobreescrigui accidentalment dades dels usuaris amb els permisos de root quan l'usuari executa un programa de &kde; després de convertir-se en <systemitem class="username">root</systemitem> amb el comandament <command>su</command>.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDEWM</envar></term><listitem><para>Si la variable d'entorn <envar>TDEWM</envar> ha estat assignada, llavores el seu contingut serà usat com al gestor de finestres de &kde; dins del script <command>starttde</command> en comptes de &twin;.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_LANG</envar></term><listitem><para>Solapa la configuració de l'idioma de &kde;, &pex;, <userinput>TDE_LANG=fr kprograma &amp;</userinput> inicia un programa amb la traducció francesa si els fitxers necessaris estan instal·lats.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_MULTIHEAD</envar></term><listitem><para>Si el contingut d'aquesta variable és <literal>true</literal> indica que &kde; s'executa en un sistema amb múltiples monitors.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_FORK_SLAVES</envar></term>
<listitem><para>(&kde; 3.2.3) Estableix aquesta variable per a generar <acronym>TDEIO</acronym>-slaves directament des del mateix procés de l'aplicació. Per omissió els <acronym>TDEIO</acronym>-slaves són generats usant <command>tdelauncher</command>/<command>tdeinit</command>. Aquesta opció és pràctica si el <acronym>TDEIO</acronym>-slave ha d'executar-se en el mateix entorn que l'aplicació. Aquest pot ser el cas de <application>Clearcase</application>.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_HOME_READONLY</envar></term>
<listitem><para>Establir aquesta variable per indicar si el vostre directori d'inici està muntat en tan sols lectura.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_NO_IPV6</envar></term><listitem><para>(Des de &kde; 3.2.3) - Establir aquesta variable per a deshabilitar el suport <acronym>IPv6</acronym> i les recerques <acronym>DNS</acronym> <acronym>IPv6</acronym>.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_IS_PRELINKED</envar></term><listitem><para>(Des de &kde; 3.2) - Establir aquesta variable per indicar que heu pre-enllaçat els vostres binaris i biblioteques &kde;. Això pot tancar <command>tdeinit</command>.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_UTF8_FILENAMES</envar></term><listitem><para>Si aquesta aquesta variable d'entorn està establerta, &kde; assumeix que tots els noms de fitxer estan codificats en <acronym>UTF-8</acronym> independentment de la codificació local.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDE_FULL_SESSION</envar></term><listitem><para>(Des de &kde; 3.2) &kde; estableix automàticament a l'arrencar, &pex;, s'usa en &konqueror; per a saber si quan es tanqui s'hauria de mantenir-se en memòria per a un ús futur. Si no està establerta, &konqueror; finalitzarà després que es tanqui (&pex;, &tdesu; ho fa, també és molt útil per a la depuració).</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDESYCOCA</envar></term><listitem><para>Us permet especificar la ruta i el nom de fitxer del fitxer cau del sistema de configuració generat pel &kde;.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDETMP</envar></term><listitem><para>Us permet especificar una altra ruta diferent que <filename class="directory">/tmp</filename> per a que &kde; hi desi els fitxers temporals.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>TDEVARTMP</envar></term><listitem><para>Us permet especificar una altra ruta diferent que <filename class="directory">/var/tmp</filename> per a que &kde; hi desi els seus fitxers de variable.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>XDG_DATA_HOME</envar></term><listitem><para>(Des de &kde; 3.2) Defineix el directori base relatiu al lloc en el que s'haurien de desar els fitxers de dades específiques de l'usuari. Per omissió és <filename class="directory">$<envar>HOME</envar>/.local/share</filename></para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>XDG_DATA_DIRS</envar></term><listitem><para>(Des de &kde; 3.2) Defineix l'ordre de preferència en l'assignació de directoris base per a la recerca de fitxers de dades addicionals al directori base <filename class="directory">$<envar>XDG_DATA_HOME</envar></filename>. Per omissió és <literal>/usr/local/share/:/usr/share/</literal></para>

<para>&kde; afegeix localitzacions per a $<envar>TDEDIRS</envar> així com perfils. S'usa per als fitxers de menú <literal role="extension">.desktop</literal> i <literal role="extension">.directory</literal>. Els fitxers <literal role="extension">.desktop</literal> estan en <filename class="directory">$<envar>XDG_DATA_DIRS</envar>/applications</filename>. Els fitxers <literal role="extension">.directory</literal> estan sota $XDG_DATA_DIRS/desktop-directories. </para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>XDG_CONFIG_HOME</envar></term><listitem><para>(&kde; 3.2) - Defineix el directori base relatiu en el que s'han de desar els fitxers de configuració específics de l'usuari. Per omissió és <filename class="directory">$<envar>HOME</envar>/.config</filename>.</para>
</listitem>
</varlistentry>

<varlistentry><term>$<envar>XDG_CONFIG_DIRS</envar></term><listitem><para>(&kde; 3.2) - Defineix l'ordre de preferència dels directoris base per a cercar fitxers de configuració addicionals al directori base $<envar>XDG_CONFIG_HOME</envar>. Per omissió és <filename class="directory">/etc/xdg</filename>. &kde; també afegeix les localitzacions i perfils de $<envar>TDEDIRS</envar>. Emprat per les descripcions de <literal role="extension">.menu</literal> en <filename class="directory">$<envar>XDG_CONFIG_DIRS</envar>/menus</filename>. </para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="the-tdeinit-mystery">
<title>El misteriós tdeinit</title>

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

<para><command>tdeinit</command> és usat per iniciar tots els demés programes de &kde;. <command>tdeinit</command> pot iniciar tant fitxers de programes binaris com mòduls carregables per <command>tdeinit</command> (els <acronym>KLM</acronym>). Els <acronym>KLM</acronym> funcionen de manera similar als fitxers de programes binaris però es poden iniciar d'una forma més eficient. Els <acronym>KLM</acronym> es troben en <filename class="directory">$<envar>TDEDIR</envar>/lib/kde3</filename>.</para>

<para>L'inconvenient dels programes iniciats d'aquesta manera és que apareixeran com a <computeroutput><command>tdeinit</command></computeroutput> en la sortida de <command>top</command> i <command>ps</command>. Useu <command>top <option>-c</option></command> o <command>ps <option>aux</option></command> per al nom actual del 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 tdeinit: Running...
bastian  26064  0.0  2.2 24036 11524 ?       S    21:27   0:00 tdeinit: dcopserver
bastian  26066  0.1  2.5 26056 12988 ?       S    21:27   0:00 tdeinit: tdelauncher
bastian  26069  0.4  3.2 27356 16744 ?       S    21:27   0:00 tdeinit: kded
bastian  26161  0.2  2.7 25344 14096 ?       S    21:27   0:00 tdeinit: ksmserver
bastian  26179  1.1  3.4 29716 17812 ?       S    21:27   0:00 tdeinit: kicker
bastian  26192  0.4  3.0 26776 15452 ?       S    21:27   0:00 tdeinit: klipper
bastian  26195  1.0  3.5 29200 18368 ?       S    21:27   0:00 tdeinit: kdesktop
</computeroutput>
</screen>
<para>Com és possible que hageu sentit a dir, això disposa d'una altra efecte, fent dificultós el matar un procés que estigui causant un problema:</para>

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

<para>Podeu estar intentant usar <userinput><command>killall tdeinit</command></userinput>, però el matar tots els processos de tdeinit provocarà que es tanqui tot el &kde;. En efecte. Destrucció total!</para>

<para>Hi ha dues solucions simples a això:</para>

<screen><prompt>%</prompt> <userinput><command>tdekillall kdesktop</command></userinput>
o millor l'antic
<prompt>%</prompt> <userinput><command>kill 26195</command></userinput></screen>
<para><command>tdekillall</command> forma part del paquet <acronym>SDK</acronym> de &kde;.</para>

</sect1>

</chapter>

<chapter id="customizing-kde">
<title>Personalitzar el &kde;</title>


<sect1 id="desktop-icons">
<title>Icones de l'escriptori</title>

<para>&kde; usa diversos tipus d'icones:</para>
<itemizedlist>
<listitem><para>Documents</para>
</listitem>
<listitem><para>Enllaços a llocs web (usant fitxers <literal role="extension">.desktop</literal>)</para>
</listitem>
<listitem><para>Enllaços a aplicacions (usant fitxers <literal role="extension">.desktop</literal>)</para>
</listitem>
<listitem><para>Dispositius - Discs, particions i perifèrics: <itemizedlist>
<listitem><para>Usar explícitament fitxers <literal role="extension">.desktop</literal></para>
</listitem>
<listitem><para>Automàticament mitjançant devices:// io-slave</para>
</listitem>
</itemizedlist>
</para>
</listitem>
<listitem><para>Específics del venedor (&pex;, El meu ordinador amb &SuSE;).</para>
</listitem>
</itemizedlist>

<sect2 id="desktop-icons-websites">
<title>Llocs web</title>
<para>Enllaços als llocs web usant fitxers <literal role="extension">.desktop</literal>: <menuchoice><guimenu>Crea nou</guimenu><guisubmenu>Fitxer</guisubmenu><guimenuitem>Enllaç a la localització (URL)</guimenuitem></menuchoice>. Canvieu la icona usant els diàlegs de <guilabel>Propietats</guilabel>. El fitxer <literal role="extension">.desktop</literal> resultant serà: <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>Aplicacions</title>

<para>Enllaçar aplicacions usant fitxers <literal role="extension">.desktop</literal>: <menuchoice><guimenu>Crea nou</guimenu><guisubmenu>Fitxer</guisubmenu><guimenuitem>Enllaç a aplicació</guimenuitem></menuchoice>. Podeu proporcionar els vostres propis detalls. Arrossegar des del menú &kde;: Tant copiar com enllaçar (crear un enllaç simbòlic) és molt fàcil</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&euml;t
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>Informació de resum</para>
</callout>
<callout arearefs="generic-desc"><para>Descripció genèrica traduïda, no s'usa a l'escriptori</para>
</callout>
<callout arearefs="legacy"><para>Heretat, es pot eliminar</para>
</callout>
<callout arearefs="translated"><para>Nombre traduït tal i com apareixerà a l'escriptori</para>
</callout>
</calloutlist>

<para>Icones de l'escriptori</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-TDE-StartupNotify=true<co id="co-x-tde-startupnotify"/>
X-DCOP-ServiceType=Multi<co id="co-x-dcop-servicetype"/>
Categories=Qt;TDE;Network<co id="co-categories"/>
</programlisting>

<calloutlist>
<callout arearefs="co-mimetype"><para>Suporta tipus &MIME;, no s'usa a l'escriptori</para>
</callout>
<callout arearefs="co-exec"><para>La línia de comandaments a executar</para>
</callout>
<callout arearefs="co-icon"><para>La icona, que s'obté a partir del tema d'icona o la ruta completa</para>
</callout>
<callout arearefs="co-terminaloptions"><para>Tan sols s'usa si és necessari el terminal</para>
</callout>
<callout arearefs="co-path"><para>Directori de treball per al comandament</para>
</callout>
<callout arearefs="co-type"><para>Més informació de resum</para>
</callout>
<callout arearefs="co-terminal"><para>Useu true si es necessita terminal, aplicació de text</para>
</callout>
<callout arearefs="co-x-tde-startupnotify"><para>Mostra el cursor saltarí, deshabilitar si no funciona.</para>
</callout>
<callout arearefs="co-x-dcop-servicetype"><para>S'ha iniciat l'aplicació correctament? Eliminar si no funciona</para>
</callout>
<callout arearefs="co-categories"><para>Categories per al menú &kde;, no usat a l'escriptori</para>
</callout>
</calloutlist>



</sect2>

<sect2 id="desktop-icons-exec">
<title>L'opció <varname>Exec</varname> en els fitxers <literal role="extension">.desktop</literal></title>

<para>Junt al comandament, podeu col·locar alguns ítems que seran substituïts amb els valors actuals amb els que s'està executant el programa actual: <variablelist>
<varlistentry>
<term>%f</term> <listitem><para>Un únic nom de fitxer; usat quan es deixa anar el fitxer sobre una icona, o amb les associacions de fitxer.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%F</term>
<listitem><para>Una llista de fitxers; usat per aplicacions que poden obrir diversos fitxers locals a la vegada.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%u</term>
<listitem><para>Una única &URL; senzilla: Si l'aplicació pot manejar, &pex;, les &URL; &FTP; o &HTTP; per si mateixa, d'altra manera usarà el &kde;.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%U</term>
<listitem><para>Una llista de les &URL;; primer descarregarà el fitxer i passarà un fitxer local a l'aplicació (!!)</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%d</term>
<listitem><para>La carpeta del fitxer a obrir; d'utilitat si l'aplicació necessita tenir un fitxer en el directori de treball actual.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%D</term>
<listitem><para>Una llista de carpetes, no és gaire pràctic.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%i</term> 
<listitem><para>La icona; l'opció <option>--icon</option>; l'aplicació de &kde; usarà la icona de la línia <varname>Icon</varname>= en la barra de tasques.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%m</term>
<listitem><para>La mini icona; heretada.</para>
</listitem>
</varlistentry>

<varlistentry>
<term>%c</term> 
<listitem><para>L'etiqueta; l'opció <option>--caption</option>; l'aplicació &kde; usarà el nom des de la línia <varname>Name</varname>= en la barra de tasques.</para>
</listitem>
</varlistentry>

</variablelist>
</para>

<informalexample>
<para>Exemples: <segmentedlist>
<segtitle>Línia <varname>Exec</varname></segtitle>
<segtitle>Comandament executat</segtitle>
<seglistitem><seg>ksirc %i</seg><seg><command>ksirc --icon ksirc</command></seg>
</seglistitem>
<seglistitem><seg>cd %d; kedit $(basename %f)</seg><seg><command>cd /tmp; kedit fitxer.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>Dispositius</title>
<para>Enllaços als dispositius usant fitxers <literal role="extension">.desktop</literal>: Crea nou -> Dispositiu </para>
</sect2>

<sect2 id="where-to-define">
<title>A on es defineix</title>

<para>Alguns llocs a on definir les icones de l'escriptori: <itemizedlist>

<listitem><para><filename class="directory">~/Desktop</filename>: copiat des de <filename class="directory">/etc/skel/Desktop</filename>.</para></listitem>

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

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

<listitem><para>Icones de dispositiu (fusionats dinàmicament)</para></listitem>

<listitem><para>La distribució SUSE Linux copia algunes icones en starttde.theme des de <filename class="directory">/opt/kde3/share/config/SuSE/default/</filename></para></listitem>

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

<sect1 id="tde-menu">
<title>El menú &kde;</title>

<sect2 id="how-it-works">
<title>Com funciona</title>

<para>En &kde; 3.2 s'introdueix un format de menú comú en <ulink url="http://freedesktop.org/Standards/menu-spec/">http://freedesktop.org/Standards/menu-spec/</ulink>.</para>
<para>Abans de &kde; 3.2: <itemizedlist>

<listitem><para>Estructura de directoris sota <filename class="directory">share/applnk</filename></para></listitem>

<listitem><para>La estructura de directoris representa la estructura de menús</para></listitem>

<listitem><para>Cada fitxer <literal role="extension">.desktop</literal> representa una única aplicació</para></listitem>

</itemizedlist>
</para>

<para>És dificultós el tornar a col·locar la estructura en &kde; 3.2 per tant el nou format és: <itemizedlist>
<listitem><para>Defineix la estructura en un únic fitxer .menu</para></listitem>
<listitem><para>Està basat en categories</para></listitem>
<listitem><para>es compartit per <acronym>GNOME</acronym> i &kde;</para></listitem>
<listitem><para>Suporta l'estil de menús applnk</para></listitem>
</itemizedlist>
</para>

<informalexample>
<para>Exemple de <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;tde-kpresenter.desktop&lt;/Filename&gt;
                &lt;Filename&gt;tde-kword.desktop&lt;/Filename&gt;
            &lt;/Include&gt;
        &lt;Menu&gt;
</markup>
</programlisting>
</para>
<para>Entrada de menú amb 3 aplicacions: <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 on es desen?</title>

<para>Els fitxers <literal role="extension">.menu</literal> descriuen la estructura del menú. Els fitxers es desen en <filename class="directory">$<envar>TDEDIR</envar>/etc/xdg/menus</filename> i <filename class="directory">/etc/xdg/menus</filename>. Aquí es desa tota la estructura del menú i està controlada per $<envar>XDB_CONFIG_DIRS</envar>. <filename class="directory">$<envar>HOME</envar>/.config/menus</filename> desa els canvis de la estructura del menú específics de l'usuari i està control.lat per $<envar>XDG_CONFIG_HOME</envar>. Per a més informació, mireu <ulink url="http://www.freedesktop.org/Standards/basedir-spec">http://www.freedesktop.org/Standards/basedir-spec</ulink>.</para>

<para>Els fitxers <literal role="extension">.desktop</literal> descriuen les aplicacions i es desen en: <filename class="directory">$<envar>TDEDIR</envar>/share/applications</filename>, <filename class="directory">/usr/share/applications</filename>, <filename class="directory">/usr/local/share/applications</filename>. Aquí es troben els fitxers <literal role="extension">.desktop</literal> de les aplicacions del sistema, que són control.lades per $<envar>XDG_DATA_DIRS</envar>.</para>

<para><filename class="directory">$<envar>HOME</envar>/.local/applications</filename> conté fitxers <literal role="extension">.desktop</literal> específics de cada usuari i els seus canvis. Són controlats per $<envar>XDG_DATA_HOME</envar>. Per a més informació, mireu <ulink url="http://www.freedesktop.org/Standards/basedir-spec">http://www.freedesktop.org/Standards/basedir-spec</ulink></para>


<para>Els fitxers <literal role="extension">.directory</literal> descriuen els submenús i es desen en: <filename class="directory">$<envar>TDEDIR</envar>/share/desktop-directories</filename>, <filename class="directory">/usr/share/desktop-directories</filename>, <filename class="directory">/usr/local/share/desktop-directories</filename>. Aquests són els fitxers <literal role="extension">.directory</literal> que contenen el menú de tot el sistema, i són controlats per $<envar>XDG_DATA_DIRS</envar>. Els canvis específics de l'usuari són desats en <filename class="directory">$<envar>HOME</envar>/.local/desktop-directories</filename>. Aquests són controlats per $<envar>XDG_DATA_HOME</envar>. Per a més informació, mireu <ulink url="http://www.freedesktop.org/Standards/basedir-spec">http://www.freedesktop.org/Standards/basedir-spec</ulink></para>

<informalexample>
<para>Exemple de <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> és el nom intern per a aquest menú. <filename>suse-edutainment-art.directory</filename> defineix el nom i la icona per aquest menú, i el menú inclou totes les aplicacions que tenen <literal>X-SuSE-Art</literal> llistat com a categoria, &pex;: <programlisting>Categories=Qt;TDE;Education;X-SuSE-Art
</programlisting></para>

<para><filename>suse-edutainment-art.directory</filename> defineix el nom i la icona per aquest menú: <programlisting>[Desktop Entry]
Name=Art and Culture
Icon=kcmsystem
</programlisting>
</para>
</informalexample>
</sect2>

<sect2 id="common-pitfalls">
<title>Trencacolls comuns</title>

<para>Les aplicacions que <emphasis>no</emphasis> s'inclouen en el menú <emphasis>no</emphasis> existeixen per a la resta d'aplicacions o per a les associacions de fitxer: Si s'elimina una aplicació del menú, &kde; assumeix que no la voleu usar.</para>

<para>Quan no es volen aplicacions en el menú, poden col·locar-se en un menú <filename>.hidden</filename> (ocult) o en un menú dedicat amb <programlisting>
NoDisplay=true
</programlisting> en el fitxer <literal role="extension">.directory</literal></para>
</sect2>

<sect2 id="essential-menus">
<title>Menús essencials</title>

<para><filename class="directory">$<envar>TDEDIR</envar>/etc/xdg/menus/applications-merged/</filename> conté <filename>kde-essential.menu</filename> que inclou alguns menús essencials que no es mostren en el menú &kde; per si mateixos: <itemizedlist>
<listitem><para>El centre de control conté un menú Preferències que està ocult, definit per <filename>kde-settings.menu</filename> i amb icones i noms definits per <filename>kde-settings.directory</filename></para>
</listitem>
<listitem><para>El centre d'informació conté un menú Informació que està ocult, definit per <filename>kde-information.menu</filename> i amb icones i noms definits per <filename>kde-information.directory</filename>.</para>
</listitem>

<listitem><para>Els salvapantalles contenen un menú Sistema/Salvapantalles que està ocult, definit per <filename>kde-screensavers.menu</filename> i amb icones i noms establerts per <filename>kde-screensavers.directory</filename>. <filename>$<envar>TDEDIR</envar>/share/desktop-directories/kde-system-screensavers.directory</filename> conté: <programlisting>NoDisplay=true
</programlisting>
</para>
</listitem>
</itemizedlist></para>
</sect2>

<sect2 id="old-style-menus">
<title>Menús a l'estil antic</title>

<para>&kde; continua suportant els menús a l'estil antic que és definit per l'estructura de directoris de <filename class="directory">$<envar>TDEDIR</envar>/share/applnk</filename> (tot el sistema) i <filename class="directory">$<envar>HOME</envar>/.trinity/share/applnk</filename> (específic de l'usuari). Es poden veure a menys que el fitxer <literal role="extension">.desktop</literal> tingui una línia <varname>Categories</varname>=. En aquest cas la categoria determinarà la localització en el menú.</para>
</sect2>

<sect2 id="tdesycoca">
<title><application>KSycoca</application></title>
<para><application>KSycoca</application> desa a la memòria cau la estructura de menús i informació sobre totes les aplicacions. Podeu reconstruir la base de dades amb <userinput><command>tdebuildsycoca</command></userinput>. La base de dades que es construeix està en <filename class="directory">/var/tmp/tdecache-${<envar>USER</envar>}/tdesycoca</filename>. És usada automàticament per <application>KDED</application>, comprovada durant l'accés a &kde;, i <application>KDED</application> cerca canvis mentre s'està accedint.</para>

<para>Per a deshabilitar la recerca de canvis (pot no funcionar sobre NFS) afegiu el següent a <filename>kdedrc</filename>: <programlisting>[General]
CheckSycoca=false
</programlisting>
</para>

<para>Per a forçar la regeneració, executeu <userinput><command>touch $<envar>TDEDIR</envar>/share/services/update_tdesycoca</command></userinput>.</para>

</sect2>

<sect2 id="kmenuedit">
<title>&kmenuedit;</title>

<para>L'objectiu de &kmenuedit; és ajudar a un usuari amb la configuració. Els canvis en la estructura del menú són desats a <filename>~/.config/menus/applications-tdemenuedit.menu</filename>, els canvis de les aplicacions són desades en <filename class="directory">~/.local/share/applications/</filename> i els canvis dels submenús (icona, nom) són desats en <filename class="directory">~/.local/share/desktop-directories/</filename>. L'eina d'administració KIOSK usa &kmenuedit; i copia els canvis anteriors en les localitzacions de perfil o de tot el sistema. </para>

</sect2>

</sect1>

<!-- This section might be redundant. If it isn't, it needs some screenies -->
<sect1 id="kde-panel">
<title>El plafó de &kde;</title>

<para>El plafó de &kde; també conegut com a &kicker;. És modular i consisteix dels següents components: <itemizedlist>
<listitem><para>Applets</para></listitem>
<listitem><para>Botons d'aplicació</para></listitem>
<listitem><para>Botons especials</para></listitem>
</itemizedlist>
</para>

<para>Per omissió, el plafó conté els següents applets: <itemizedlist> <listitem><para>El paginador - mostra els escriptoris virtuals</para></listitem> <listitem><para>Barra de tasques</para></listitem> <listitem><para>Safata del sistema</para></listitem> <listitem><para>Rellotge.</para></listitem> </itemizedlist> i els següents botons especials: <itemizedlist>
<listitem><para>El menú &kde;</para></listitem>
<listitem><para>Botó de l'escriptori</para></listitem>
</itemizedlist>
</para>

<para>També s'han afegit diversos botons d'aplicació, es permeten espais: <itemizedlist>
<listitem><para>Botó d'inici</para></listitem>
<listitem><para>Botó del fullejador</para></listitem>
<listitem><para>Botó de KMail</para></listitem>
</itemizedlist>
</para>
</sect1>

<sect1 id="file-associations">
<title>Associacions de fitxer</title>

<para>Les associacions de fitxer associen un tipus de fitxer amb una aplicació o aplicacions. El tipus de fitxer ve determinat pel seu tipus &MIME;. Els tipus &MIME; coneguts pel &kde; es desen en <filename class="directory">$<envar>TDEDIR</envar>/share/mimelnk</filename> i els fitxers <literal role="extension">.desktop</literal> de les aplicacions contenen una llista dels tipus &MIME; suportats per aquesta aplicació.</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>Ambdós poden obrir image/gif, llavores. Quin s'usarà per obrir un fitxer <literal role="extension">.gif</literal>?</para>

<para>L'aplicació amb la preferència més alta! <filename>kview.desktop</filename> conté <programlisting>
InitialPreference=3
</programlisting> a on <filename>kuickshow.desktop</filename> conté <programlisting>
InitialPreference=6
</programlisting> De manera que, &kuickshow; serà usat per obrir els fitxers <literal role="extension">.gif</literal>. </para>

<para>Com podem aconseguir que s'usi &kview; per omissió?</para>

<para>Un usuari pot canviar l'associació de fitxers en el &centrecontrol;. Aquests canvis es desen en <filename>$<envar>HOME</envar>/.trinity/share/config/profilerc</filename>. Per usar la mateixa configuració per a varis usuaris, deseu aquesta configuració en el directori del perfil d'usuari o en el directori de configuració global de &kde; si el voleu usar com a per omissió per a múltiples usuaris.</para>

</informalexample>

</sect1>

</chapter>

<chapter id="locking-down-kde">
<title>Blocats de seguretat al &kde;</title>

<sect1 id="how-it-works-the-basics">
<title>Com funciona - El bàsic</title>

<para>&kde; incorpora característiques de blocats de seguretat que es centren en les següents opcions:</para>

<itemizedlist>
<listitem><para><link linkend="immutable-configuration-options">Crear opcions de configuració immutables</link></para></listitem>
<listitem><para><link linkend="action-restrictions">Restricció d'accions específiques</link></para></listitem>
<listitem><para><link linkend="url-restrictions">Restricció de l'accés a certes &URL;</link></para></listitem>
<listitem><para><link linkend="configuration-modules">Restricció d'accés a certs mòduls de configuració</link></para></listitem>
</itemizedlist>

</sect1>

<sect1 id="immutable-configuration-options">
<title>Opcions de configuració immutables</title>
<subtitle>Blocats de seguretat al &kde;</subtitle>

<para>Les opcions immutables permeten a l'administrador del sistema proveir una configuració per omissió que no pugui ser canviada per l'usuari.</para>

<para>Les opcions de configuració preexistents de l'usuari seran ignorades una vegada que aquesta opció s'hagi tornat immutable.</para>

<para>Les opcions es poden controlar per a cada entrada base, per grups d'entrades o un fitxer a partir del fitxer base.</para>

<para>Si un fitxer o grup és immutable, totes les opcions de configuració per aquest fitxer o grup romandran immutables, fins i tot si l'administrador del sistema no n'ha proveït una per omissió.</para>

<note><para>El suport en les aplicacions per a les opcions immutables poden variar d'unes a altres. Encara que l'usuari no sigui capaç de fer canvis permanents a les opcions de configuració immutable, a l'usuari se li presentarà una opció en la interfície d'usuari per a realitzar dit canvi.</para></note>

</sect1>

<sect1 id="action-restrictions">
<title>Restricció d'accions</title>

<para>Les aplicacions &kde; estan construïdes sota el concepte acció. Les accions es poden activar de diverses maneres, habitualment a través de la barra de menú, de la barra d'eines o d'una drecera de teclat. <action>Desa document</action> és un exemple d'una acció. Si coneixeu el nom intern de l'acció és possible restringir-la. Quan una acció està restringida no apareixerà en la barra de menús o en la barra d'eines. El nom interno per a l'acció <action>Desa document</action> és <option>action/file_save</option>. La infraestructura de blocat de seguretat també proveeix un conjunt de restriccions més abstractes que es poden usar per a deshabilitar la funcionalitat no coberta per una única acció. Un exemple és la restricció <option>shell_access</option> que deshabilita totes les funcionalitats que ofereix a l'usuari l'accés a un intèrpret de comandaments &UNIX;.</para>

<example>
<title>Restricció a l'usuari de l'accés a un intèrpret de comandaments</title>

<para>Per a prevenir que un usuari pugui accedir a l'intèrpret de comandaments podem restringir l'acció <option>shell_access</option> afegint el següent a <filename>kdeglobals</filename>: </para> 

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

<para>Atès que això afecta al menú &kde; i a les aplicacions disponibles, haurem de forçar l'actualització de la base de dades sycoca:</para>

<screen><userinput><command>touch</command> <filename>$<envar>TDEDIR</envar>/share/services/update_tdesycoca</filename></userinput></screen>

<para>Ara torneu a accedir al &kde; i verifiqueu els següents punts:</para>

<itemizedlist>
<listitem><para>El &kmenu;</para></listitem>
<listitem><para>En &konqueror;, <menuchoice><guimenu>Eines</guimenu><guimenuitem>Obre terminal</guimenuitem></menuchoice></para></listitem>
<listitem><para>L'execució d'un comandament <keycombo action="simul">&Alt;<keycap>F2</keycap></keycombo></para></listitem>
</itemizedlist>
</example>
<para>Tota la documentació sobre les accions disponibles es poden trobar en <ulink url="http://www.kde.org/areas/sysadmin/">http://www.kde.org/areas/sysadmin/</ulink></para>

<para>Algunes de les accions més interessants són les llistades a sota:</para>

<variablelist>
<varlistentry>
<term><option>action/options_configure</option></term>
<listitem><para>L'opció <guimenuitem>Configura</guimenuitem> del menú <guimenu>Arranjament</guimenu></para></listitem>
</varlistentry>
<varlistentry>
<term><option>action/help_report_bug</option></term>
<listitem><para>L'opció <guimenuitem>Informe d'errors</guimenuitem> del menú <guimenu>Ajuda</guimenu></para></listitem>
</varlistentry>
<varlistentry>
<term><option>action/kdesktop_rmb</option></term>
<listitem><para>El menú del &BDR; sobre l'escriptori.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>action/kicker_rmb</option></term>
<listitem><para>El menú del &BDR; sobre el plafó.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>user/root</option></term>
<listitem><para>Oculta totes les accions o aplicacions que requereixen accés de <systemitem class="username">root</systemitem>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>shell_access</option></term>
<listitem><para>Oculta totes les accions o aplicacions que proveeixen accés a l'intèrpret de comandaments.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>print/system</option></term>
<listitem><para>Deshabilita l'opció per a seleccionar el sistema d'impressió (motor).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>lock_screen</option></term>
<listitem><para>Indica si l'usuari pot blocar la pantalla</para></listitem>
</varlistentry>
<varlistentry>
<term><option>start_new_session</option></term>
<listitem><para>Indica si l'usuari pot iniciar una segona sessió del sistema X (mireu també &tdm;)</para></listitem>
</varlistentry>
<varlistentry>
<term><option>opengl_screensavers</option></term>
<listitem><para>Indica si estan permesos els salvapantalles OpenGL per a l'usuari.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>manipulatescreen_screensavers</option></term>
<listitem><para>Permet als salvapantalles no ocultar tota la pantalla</para></listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="url-restrictions">
<title>Restriccions a les &URL;</title>

<para>Hi ha tres tipus de restriccions que es poden aplicar a les &URL;:</para>

<variablelist>
<varlistentry>
<term>list</term>
<listitem><para>Per a controlar si està permès el llistat d'un directori.</para></listitem>
</varlistentry>
<varlistentry>
<term>open</term>
<listitem><para>Per a controlar si es poden obrir certes &URL;</para></listitem>
</varlistentry>
<varlistentry>
<term>Redirect</term>
<listitem><para>Per a controlar si una &URL; en pot obrir una altra, encara que sigui automàticament o a través d'hiperenllaços.</para></listitem>
</varlistentry>
</variablelist>

<para>Les regles són comprovades en l'ordre en que han estat definides. L'última regla que és aplicable a una &URL; defineix si es pot accedir a la &URL;.</para>

<para>Les següents regles deshabiliten obrir les &URL; http i https externes a <systemitem class="domainname">.nostra-empresa.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,*.nostra-empresa.com,,true</screen></screenco>

<calloutlist>
<callout arearefs="url_commas">
<para>Les primeres quatre comes salten a la selecció sobre la que es van a establir els criteris que originen la &URL;. Aquesta part tan sols serà necessària amb les regles de tipus redirect.</para> 
</callout>
<callout arearefs="url_rule1"><para><option>rule_1</option> prohibeix obrir qualsevol &URL; http o https</para></callout>
<callout arearefs="url_rule2"><para><option>rule_2</option> permet obrir qualsevol &URL; http i https en el domini <systemitem class="domainname">.nostra-empresa.com</systemitem>. Tingueu present que el joquer <token>*</token> tan sols està permès al començament d'un domini.</para></callout>
</calloutlist>

<para>Les següents regles fan que un usuari no pugui navegar pels directoris del sistema de fitxers local que estiguin fora del seu directori $<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> prohibeix llistar qualsevol directori local</para></callout>
<callout arearefs="home_rule2"><para><option>rule_2</option> permet llistar els directoris que estan sota el vostre directori $<envar>HOME</envar>.</para></callout>
</calloutlist>

<para>$<envar>HOME</envar> i $<envar>TMP</envar> són valors especials que indiquen els directoris inici dels usuaris i el directori temporal de &kde; per als usuaris, &pex;, <filename class="directory">/tmp/tde-bastian</filename></para>

<para>Les següents regles fan que un usuari no pugui obrir fitxers locals que estiguin fora del seu directori $<envar>HOME</envar>:</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> prohibeix obrir qualsevol fitxer local</para></callout>
<callout arearefs="local_rule2"><para><option>rule_2</option> permet obrir fitxers que estiguin sota el vostre directori $<envar>HOME</envar>.</para></callout>
<callout arearefs="local_rule3"><para><option>rule_3</option> permet obrir fitxers en el directori temporal de &kde; de l'usuari. Això és necessari per a certes aplicacions &kde; que primer descarreguen el fitxer o document en un directori temporal i després l'obren en una aplicació.</para></callout>
</calloutlist>


<para>L'opció de redirecció controla si els documents de certs llocs poden fer referència, encara que sigui de forma automàtica o manual a través d'hiperenllaços, a una altra localització. Hi ha presents un conjunt de regles per omissió com a mesura de seguretat general. Per exemple, els documents localitzats sobre la Internet no poden fer referència a documents desats localment.</para>

<para>Per exemple, si volem donar al servidor intranet <systemitem class="systemname">www.meva-empresa.com</systemitem> la possibilitat de fer referència a fitxers locals haurem d'afegir la següent regla:</para>

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

<para>En comptes de llistar un protocol pel nom, també és possible especificar un grup de protocols. Per a fer això s'han definit els següents grups:</para>

<variablelist>
<varlistentry>
<term>:local</term>
<listitem><para>Protocols que accedeixen de forma local a la informació desada, per exemple file:/, man:/, fonts:/, floppy:/</para></listitem>
</varlistentry>
<varlistentry>
<term>:internet</term>
<listitem><para>Protocols comuns a Internet com http i ftp</para></listitem>
</varlistentry>
</variablelist>

<para>La informació sobre aquests protocols es desa en fitxers <literal role="extension">*.protocol</literal> que són desats en <filename class="directory">$<envar>TDEDIR</envar>/share/services</filename>.</para>

<para>L'entrada <option>Class</option>= defineix el grup del qual forma part el protocol: <userinput><command>grep</command> <option>Class=</option> <filename>$<envar>TDEDIR</envar>/share/services/*.protocol</filename></userinput></para>

<para>Regles generals:</para>

<itemizedlist>
<listitem><para>Els protocols :local poden fer referència a qualsevol altra protocol</para></listitem>
<listitem><para>Sempre es permet fer referència a un protocol :internet</para></listitem>
<listitem><para>No tots els protocols formen part d'un grup, fish:/ per exemple.</para></listitem>
</itemizedlist>

</sect1>

<sect1 id="configuration-modules">
<title>Mòduls de configuració</title>

<para>&kde; te mòduls de configuració per a configurar varis aspectes de l'entorn &kde;. Els mòduls de configuració apareixen en el centre de control, en el diàleg de configuració d'una aplicació o en ambdós.</para>

<informalexample>
<para>El mòdul de configuració de l'intermediari es troba en el centre de control però també forma part del diàleg <guilabel>Configura Konqueror</guilabel> en &konqueror;</para>

<para>Els mòduls de configuració individual es poden iniciar amb <command>tdecmshell</command> <replaceable>mòdul</replaceable></para>

<para>Per iniciar el mòdul de l'intermediari useu:</para>
<itemizedlist>
<listitem><para><command>tdecmshell</command> <filename>tde-proxy.desktop</filename></para></listitem>
<listitem><para><command>tdecmshell</command> proxy</para></listitem>
</itemizedlist>

<para><note><para>No totes les aplicacions usen mòduls de configuració, i el diàleg de configuració forma part integral de la pròpia aplicació.</para></note></para>
</informalexample>

<para>Tots els mòduls de configuració són parlant estrictament part del menú &kde;.</para>

<itemizedlist>
<listitem>
<para>Els mòduls que són visibles en el centre de control normalment tenen un fitxer <literal role="extension">.desktop</literal> en <filename class="directory">$<envar>TDEDIR</envar>/share/applications/kde</filename> i estan ordenats en el menú ocult <guimenu>Settings-Modules</guimenu> en <filename>kde-settings.menu</filename>, inclòs en <filename>kde-essential.menu</filename>.</para>
<screen><userinput><command>tdebuildsycoca</command> <option>--menutest</option> 2&gt; /dev/null | <command>grep</command> Settings-Modules</userinput></screen>
</listitem>
<listitem>
<para>Els mòduls específics de les aplicacions solen tenir un fitxer <literal role="extension">.desktop</literal> en <filename>$<envar>TDEDIR</envar>/share/applnk/.hidden</filename> que corresponen al menú ocult .hidden, inclòs com a un resultat de <markup>&lt;KDELegacyDirs/&gt;</markup>.</para>
<screen><userinput><command>tdebuildsycoca</command> <option>--menutest</option> 2&gt; /dev/null | <command>grep</command> .hidden</userinput></screen>
</listitem>
<listitem><para>En &kde; 3.3 és possible editar el centre de control amb <application>kcontroledit</application>. <application>kcontroledit</application> funciona de forma similar a <application>kmenuedit</application>, fent els canvis tan sols per a un usuari. Useu <application>kiosktool</application> per a fer els canvis per a tothom.</para></listitem> 
</itemizedlist>

<para>Els mòduls de configuració individual poden ser deshabilitats afegint el següent a <filename>kdeglobals</filename>:</para>

<screen>[KDE Control Module Restrictions]
<replaceable>id-mòdul</replaceable>=false</screen>
<para>Per exemple, per a deshabilitar el mòdul de l'intermediari useu:</para>
<screen>[KDE Control Module Restrictions]
tde-proxy.desktop=false</screen>
<para>Marqueu el centre de control i el diàleg <guilabel>Configura Konqueror</guilabel> si la configuració de l'intermediari encara és allí.</para>

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

Making It Work
KDE 3.2: Set $TDEDIRS from starttde script
Distribute profiles to all clients

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

<chapter id="the-lazy-admin">
<title>L'administració ràpida</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/tderc, 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>Compartir l'escriptori remot</title>

<para>Compartir l'escriptori remot permet als usuaris veure i de forma opcional controlar l'escriptori de l'usuari actual. L'usuari remot necessitarà enviar una invitació, i si és possible crear una contrasenya per a protegir-la. És ideal per a equips de suport tècnic o per a administradores que requereixin obtenir accés als escriptoris dels usuaris amb la finalitat de resoldre un problema o guiar a l'usuari a través d'un procediment.</para>

<para>Compartir l'escriptori remot involucra a dues aplicacions: &krfb; (memòria cau del marc remot de &kde;, un servidor VNC) i &krdc; (connexió a l'escriptori remot de &kde;, un client VNC).</para>

<para>&krfb; pot ser usat per qualsevol usuari per a crear i gestionar invitacions. Les invitacions permetran al destinatari, usant la contrasenya, connectar-se al vostre escriptori. Per omissió són vàlides per a una única connexió, i expiren després d'una hora si no són usades.</para>

<para>Les connexions entrants són manejades pel mòdul kinetd kded. Podeu usar el comandament <userinput><command>dcop</command> kded kinetd services</userinput> per a veure si està en execució. Per omissió &krfb; espera connexions sobre el port 5900. Quan es fa una connexió entrant, apareix un diàleg per a demanar confirmació a l'usuari actual.</para>

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

</sect1>

<sect1 id="kde-diy">
<title>&kde; DIY - Construir les vostres pròpies eines</title>

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

<para>El protocol de comunicació de l'escriptori, <acronym>DCOP</acronym> (Desktop COmmunication Protocol), és un mecanisme lleuger per a la comunicació entre processos. <acronym>DCOP</acronym> permet usar la interacció entre programes que s'estiguin executant. &kde; proporciona dos programes per a usar <acronym>DCOP</acronym>: <application>dcop</application>, un programa de línia de comandaments, i <application>kdcop</application>, un programa amb una <acronym>IGU</acronym>. </para>
<para>Algunes notes sobre l'ús de <command>dcop</command>: </para>

<para>
<itemizedlist>
<listitem>
<para><command>dcop</command> [opcions] [aplicació [objecte [funció [arg1] [arg2] ... ] ] ] </para>
</listitem>
<listitem>
<para>Aquestes aplicacions poden obrir més d'una finestra a la vegada que seran llistades com a &lt;aplicació&gt;-<acronym>PID</acronym> </para>
</listitem>
<listitem>
<para>Tots els arguments són sensibles a majúscules i minúscules. setFullScreen i setfullscreen són dues funcions diferents. </para>
</listitem>
<listitem>
<para>La marca d'expressió regular * es pot usar en l'aplicació i en els arguments objecte. <screen><prompt>&percnt; </prompt><userinput><command>dcop</command><option> kon*</option></userinput>
konqueror-16006
konsole-8954
</screen>
</para>
</listitem>

</itemizedlist>

</para>

<para>Alguns exemples de comandament i les seves corresponents sortides són les següents: </para>

<informalexample>
<screen><prompt>&percnt; </prompt><userinput><command>dcop</command><option> konsole*</option></userinput>
konsole-8954
</screen>
<para>Una &konsole; s'està executant amb un <acronym>PID</acronym> de 8954.</para>

<screen><prompt>&percnt; </prompt><userinput><command>dcop</command><option> konsole-8954</option></userinput>
KBookmarkManager-.../share/apps/tdefile/bookmarks.xml
KBookmarkManager-.../share/apps/konqueror/bookmarks.xml
KBookmarkNotifier
KDebug
MainApplication-Interface
konsole (default)
konsole-mainwindow#1
tdesycoca
session-1
session-2
session-3
session-4
</screen>
<para>Aquí podeu veure que hi ha quatre sessions executant-se.</para>

<screen><prompt>&percnt; </prompt><userinput><command>dcop</command><option> konsole-8954</option><option> konsole</option></userinput>
QCStringList interfaces()
QCStringList functions()
int sessionCount()
TQString currentSession()
TQString newSession()
TQString newSession(TQString type)
TQString sessionId(int position)
void activateSession(TQString sessionId)
void nextSession()
void prevSession()
void moveSessionLeft()
void moveSessionRight()
bool fullScreen()
void setFullScreen(bool on)
ASYNC reparseConfiguration()
</screen>
<para>Aquí estan les opcions per al programa principal &konsole;. </para>

<screen><prompt>&percnt; </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(TQString name)
TQString sessionName()
int sessionPID()
TQString schema()
void setSchema(TQString schema)
TQString encoding()
void setEncoding(TQString encoding)
TQString keytab()
void setKeytab(TQString keyboard)
QSize size()
void setSize(QSize size)
</screen>
<para>Aquestes són les opcions per a la primera sessió, session-1.</para>

<screen><prompt>&percnt; </prompt><userinput><command>dcop</command><option> konsole-8954</option><option> konsole</option><option> setFullScreen</option><parameter> true</parameter></userinput>
</screen>
<para>Això estableix que &konsole; sigui mostrat a pantalla completa.</para>

</informalexample>

<para>Quan s'usa més d'una aplicació/objecte, quina s'hauria d'usar? Li fem una referència? </para>
<screen><prompt>&percnt; </prompt><userinput><command>echo</command><option> $KONSOLE_DCOP</option></userinput>
DCOPRef(konsole-7547,konsole)

<prompt>&percnt; </prompt><userinput><command>dcop</command><option> $KONSOLE_DCOP</option><option> newSession</option></userinput>
session-6

<prompt>&percnt; </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>KDialog</title>
<subtitle>&kde; DIY - Crear les vostres pròpies eines</subtitle>

<para>Podeu usar els diàlegs de &kde; des dels vostres propis scripts, per a combinar el poder dels scripts a l'intèrpret de comandaments de &UNIX; amb la facilitat d'ús de &kde;.</para>

<screen><userinput><command>kdialog</command> <option>--msgbox 'Teniu correu nou!'</option></userinput></screen>

<screen><userinput><command>kdialog</command> <option>--title 'Correu nou'</option> <option>--msgbox 'Teniu correu nou!'</option></userinput></screen>

<para>La part <application>KDialog</application> del títol es podeu canviar mitjançant l'opció <option>--caption</option></para>

<screen><userinput><command>kdialog</command> <option>--title 'Correu nou'</option> <option>--msgbox '¡Teniu nou correu!'</option> <option>--dontagain myfile:mykey</option></userinput></screen>

<para>Desa si es mostra altra vegada en <filename>$<envar>TDEHOME</envar>/share/config/myfile</filename> (escrivint en aquest fitxer les següents línies):</para>

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

<para>En comptes de <option>--msgbox</option> podeu també usar <option>--sorry</option> i <option>--error</option>, de la forma apropiada. Per exemple, podeu usar <command>kdialog</command> <option>--sorry 'No s'ha pogut abastar la xarxa'</option> o <command>kdialog</command> <option>--error 'No es pot obrir la bústia de correu'</option>.</para>

<para>També és possible crear caixes de missatge que accepten si o no com resposta.</para>

<screen><command>kdialog</command> <option>--yesno 'Voleu connectar
a Internet?'</option> <command>echo</command> <returnvalue>$?</returnvalue></screen>

<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Valor retornat</entry>
<entry>Significat</entry>
</row>
</thead>
<tbody>
<row><entry>0</entry><entry>Sí, Bé, Continua</entry></row>
<row><entry>1</entry><entry>No</entry></row>
<row><entry>2</entry><entry>Cancel·la</entry></row>
</tbody>
</tgroup>
</informaltable>

<para>Assegureu-vos de desar el resultat en una variable si no el va a usar directament, el següent comandament omplirà $? amb un valor nou. Podeu usar aquí l'opció <option>--dontagain</option> de tal manera que recordarà l'elecció i la retornarà les següents vegades sense tornar a mostrar el diàleg.</para>

<para>Algunes variacions són:</para>

<variablelist>
<varlistentry>
<term><option>--warningyesno</option></term>
<listitem>
<para>similar a <option>--yesno</option> però amb una icona diferent</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--warningcontinuecancel</option></term>
<listitem><para>Amb els botons <guibutton>Continua</guibutton> i <guibutton>Cancel·la</guibutton>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--warningyesnocancel</option></term>
<listitem><para>Amb els botons <guibutton>Sí</guibutton>, <guibutton>No</guibutton> i <guibutton>Cancel·la</guibutton>. Per exemple:</para>
<screen><command>kdialog</command> <option>--warningyesnocancel 'Voleu desar
els canvis?'</option></screen>
</listitem>
</varlistentry>
</variablelist>

<screen><command>kdialog</command> <option>--inputbox "Introduïu el vostre nom:" "VostreNom"</option></screen>

<para>El resultat serà imprès a la stdout, per assignar-lo a una variable podeu usar <userinput>name=$(kdialog --inputbox "Introduïu el vostre nom:" "VostreNom")</userinput>. L'últim argument és opcional, i s'usa per a omplir amb anterioritat el diàleg.</para>

<screen><userinput><varname>password</varname>=$(<command>kdialog</command> <option>--password "Introduïu la contrasenya:"</option>)</userinput></screen>

<para>L'opció <option>--dontagain</option> no funciona amb <option>--inputbox</option> o <option>--password</option></para>

<para>Hi ha dos diàlegs que permeten a l'usuari fer l'elecció des d'una llista:</para>

<variablelist>
<varlistentry>
<term><option>--menu</option></term>
<listitem>
<para>Permet a l'usuari seleccionar un únic ítem des d'una llista.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--checklist</option></term>
<listitem>
<para>Permet a l'usuari escollir un o més d'un ítem des d'una llista.</para>
</listitem>
</varlistentry>
</variablelist>

<screen><userinput><varname>city</varname>=$(<command>kdialog</command> <option>--menu "Seleccioneu una ciutat" a Londres b Madrid c París d Berlín</option>)</userinput></screen>

<para><varname>$city</varname> serà <returnvalue>a</returnvalue>, <returnvalue>b</returnvalue>, <returnvalue>c</returnvalue> o <returnvalue>d</returnvalue>.</para>

<screen><userinput><varname>city</varname>=$(<command>kdialog</command> <option>--checklist "Seleccioneu ciutats" a Londres off b Madrid on c París on d Berlín off</option>)</userinput></screen>

<para>Madrid i París estan seleccionades amb anterioritat. El resultat amb Madrid i París seleccionades serà <returnvalue>"b"</returnvalue> <returnvalue>"c"</returnvalue>.</para>

<para>Si afegiu l'opció <option>--separate-output</option>, situareu <returnvalue>b</returnvalue> i <returnvalue>c</returnvalue> cadascuna en la seva pròpia línia, fent el resultat més fàcil de processar.</para>

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

</sect2>

</sect1>

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