>&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"
> (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
>&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
>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>
>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"
>. 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>
> 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
> 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"
> 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>
>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
> 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é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é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é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é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"
>, 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>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
<kcfg>
<kcfgfile name="korganizerrc"/>
<group name="General">
<entry type="Bool" key="Auto Save">
<label>Enable automatic saving of calendar</label>
>. 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
> 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>
> é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
> é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"
> 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"
> 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>
> 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
> 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"
>(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>
>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"
> 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
>. 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ë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>
>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>
> 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>
>, 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"
>. 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>
>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"
>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
> 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"
>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>
>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"
>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
>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
>&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
> (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>