# &kde; per administradors

## Interioritats de &kde;

### Vista general

per escriure

### Distribució de directoris

&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.

Per omissió &kde; usa dos arbres de directori:

- Un a nivell de sistema (per exemple `/opt/kde3`).

- Un altra a nivell d'usuari en el directori inici de l'usuari (normalment `~/.kde`)

Com administrador del sistema podreu crear arbres addicionals. Es poden usar arbres addicionals per als perfils

&SuSE; &Linux; per exemple usa:

- `$`HOME`/.kde`

- `/opt/kde3` (Aquest és específic per a &SuSE;. D'altres distribucions poden usar `/usr` o `/usr/kde3`)

- `/etc/opt/kde3` (Aquest fou afegit per &SuSE;).

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: ``kiosktool-kdedirs` `--check``

&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.

Per obtenir informació sobre escriure el tipus &MIME; `text/plain` es cerquen els següents fitxers:

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

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

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

Si un usuari fa un canvi, el canvi s'escriu en `$`HOME`/.kde/share/mimelnk/text/plain.desktop`

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.

Per exemple, si hi ha els dos següents fitxers amb aquests continguts:

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

-     Color=red
      Shape=circle

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

-     Color=blue
      Position=10,10

Els fitxers seran fusionats donant el següent resultat:

    Color=red
    Shape=circle
    Position=10,10

### Especificar directoris

Variable d'entorn Exemple(s) de configuració Comentari
- `KDEHOME` `~/.kde`
- `KDEROOTHOME` `/root/.kde` Aquesta variable és diferent de $KDEHOME per evitar que el root escrigui la variable $KDEHOME de l'usuari després d'executar `su`.
- `KDEDIR` `/opt/kde3`, `/usr`, `/usr/kde3` Dependrà del venedor. Usat per &kde;2. Si no està establerta, s'usarà la compilació per omissió.
- `KDEDIRS` `/opt/kde3`, `/usr`, `/usr/kde3` Nou en &kde; 3. Pot llistar múltiples localitzacions separades per dos punts. Si no està establerta, s'usarà $`KDEDIR`

No necessita ser establerta, els valors per omissió funcionen perfectament.

I si es volen executar alternativament &kde; 2 i &kde; 3? $`KDEDIR` apuntarà a &kde; 2 i $`KDEDIRS` a &kde; 3.

Un membre d'una universitat podria tenir la següent configuració:

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

### Perfils d'usuari

En l'exemple anterior `/opt/kde_staff` conté configuracions i aplicacions addicionals per als membres. Els Perfils d'usuari us permetran afegir aquest directori tan sols per a uns usuaris i no per a d'altres. Afegiu el següent a `/etc/kderc`:

    [Directories-staff]
    prefixes=/opt/kde_staff

Això crea un perfil anomenatstaff que afegeix `/opt/kde_staff` a l'arbre de directoris. (Per exemple &SuSE; &Linux; usa `/etc/kde3rc` en lloc de `/etc/kderc`). Ara que hem indicat nombre al perfil hi haurà que assignar als usuaris.

El mapa de perfils d'usuari precisa d'un fitxer que s'ha d'especificar en `/etc/kderc`:

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

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

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

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

També és possible assignar un perfil a tan sols un usuari:

    [Users]
    bastian=staff

### Revisió de la distribució de directoris

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 `$`KDEHOME`` però no en qualsevol altra arbre de directoris.

### Directoris específics de l'arquitectura

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

`bin`

- Usat per als executables de &kde;.

`lib`

- Usat per les biblioteques de &kde;.

`lib/kde3`

- Aquest directori conté components, connectors i d'altres objectes usats per les aplicacions &kde; 3.`x` que es poden carregar en temps d'execució.

### Directoris compartits

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

`share/applnk`

- fitxers `.desktop` per al menú &kde; (antic)

`share/applications`

- fitxers `.desktop` per al menú &kde; (des de &kde; 3.2).

`share/apps`

- Conté fitxers de dades per a aplicacions específiques. Cada aplicació te aquí un subdirectori per a desar fitxers de dades addicionals.

`share/config`

- Fitxers de configuració. Els fitxers de configuració normalment tenen el mateix nom que l'aplicació a la qual pertanyen més les lletres rc. Un cas especial és `kdeglobals`. Aquest fitxer és llegit per totes les aplicacions &kde;.

`share/config/session`

- Aquest directori s'usa per a la gestió de la sessió i tan sols està disponible sota `$`KDEHOME``. 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ó `ksmserver` desa referències a aquests números quan desa una sessió en `ksmserverrc`.

`share/doc/HTML`

- 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 `index.docbook`, el qual conté la documentació en format DocBook sense formatar i `index.cache.bz2`, que te la mateixa informació formatada com a &HTML; compremut amb `bzip2`. 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.

`share/icons`

- En aquest directori es desen les icones. Les icones es divideixen per temes, dimensions i categoria d'ús.

`share/mimelnk`

- En aquest directori, es desen els fitxers `.desktop` descrits pels tipus &MIME;. &kde; usa els tipus &MIME; per identificar el tipus d'un fitxer.

`share/services`

- Aquest directori conté els fitxers `.desktop` 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;.

`share/servicetypes`

- Aquest directori conté fitxers `.desktop` 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 `.desktop` els tipus de servei que proveeixen.

`share/sounds`

- Aquest directori conté fitxers de so.

`share/templates`

- Aquest directori conté plantilles per a crear fitxers de diversos tipus. Una plantilla és un fitxer `.desktop` que descriu el fitxer i que inclou un referència a un fitxer en el subdirectori `.source`. Les plantilles d'aquest directori apareixen en el menú Crea nou 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.

`share/wallpapers`

- Aquest directori conté imatges que es poden usar com a imatge de fons

### Directoris específics de la màquina

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 `lnusertemp`:

`$`KDEHOME`/socket-$`HOSTNAME``

- Normalment `/tmp/ksocket-$`USER`/`, sol ser usat per diverses connexions &UNIX;.

`$`KDEHOME`/tmp-$`HOSTNAME``

- Normalment `/tmp/kde-$`USER`/`, s'usa per als fitxers temporals.

`$`KDEHOME`/cache-$`HOSTNAME``

- Normalment `/var/tmp/kdecache-$`USER`/`, s'usa per als fitxers a la memòria cau.

Atès que tant `/tmp` com `/var/tmp` 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 `lnusertemp` crearà un nou directori amb un nom alternatiu i l'enllaçarà.

### Fitxers de configuració

&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 UTF-8 codificant el text extern en ASCII.

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ó.

El següent exemple mostra un fitxer de configuració que conté dos grups. El primer conté les claus `LargeCursor` i `SingleClick`, el segon conté les claus `Show hidden files` i `Sort by`:

    [KDE]
    LargeCursor=false
    SingleClick=true

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

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:

    entrada=valor

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 s.

Hi ha alguns altres codis de barra invertida, aquí està la llista completa:

- \s se pot usar com un espai

- \t es pot usar per incloure un tabulador

- \r per a un caràcter de retorn de carro

- \n per a un caràcter de retorn de línia (nova línia)

- \\ per incloure la barra invertida

En el següent exemple el valor de l'entrada `Caption` s'inicia amb dos espais mentre que l'entrada `Description` 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.

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

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 (#). 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 no són conservats.

Poden haver-hi múltiples fitxers de configuració amb el mateix nom en el subdirectori `share/config` 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 `$`KDEHOME`` 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.

Si `$`HOME`/.kde/share/config/foobar` conté:

    [MyGroup]
    Color=red
    Shape=circle

i `/etc/opt/kde3/share/config/foobar` conté

    [MyGroup]
    Color=blue
    Position=10,10

el resultat serà:

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

Si `$`HOME`/.kde/share/config/foobar` conté

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

i `/opt/kde_staff/share/config/foobar` conté

    [MyGroup]
    Color=purple
    Position=20,20

i `/etc/opt/kde3/share/config/foobar` conté

    [MyGroup]
    Color=blue
    Position=10,10

el resultat serà:

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

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 `[$i]` al darrera de la clau, &pex;:

    Color[$i]=blue

Un grup d'entrades es pot blocar col·locant `[$i]` al darrera del nom de grup, &pex;:

    [MyGroup][$i]

Per a blocar un fitxer complet, inicia el fitxer amb `[$i]` en una sola línia, &ead;:

    [$i]

Si `$`HOME`/.kde/share/config/foobar` conté:

    [MyGroup]
    Color=red
    Shape=circle

i `/etc/opt/kde3/share/config/foobar` conté:

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

el resultat serà:

    [MyGroup]
    Color=blue
    Position=10,10

Si `$`HOME`/.kde/share/config/foobar` conté:

    [MyGroup]
    Color=red
    Shape=circle

i `/opt/kde_staff/share/config/foobar` conté

    [MyGroup]
    Color=purple
    Shape=rectangle

i `/etc/opt/kde3/share/config/foobar` conté

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

el resultat serà

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

L'anomenada expansió de l'intèrpret de comandaments 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 [$e]. 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 [$ie]. L'usuari no podrà canviar-la per descomptat.

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

El valor per a l'entrada `Email` es determina omplint els valors de les variables d'entorn $`USER` i $`HOST`. Quan `jordi` es connecta en `jordi_màquina` es retornarà un valor igual a `jordi@jordi_màquina`. La configuració no està blocada.

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

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.

En el següent exemple el valor de l'entrada `Caption` dependrà de l'idioma. Si l'usuari ha seleccionat francès com a idioma (codi d'idioma `fr`) el valor de l'entrada serà Ma Légende. En qualsevol altra cas el valor usat serà My caption.

    [Preview Image]
    Caption=My Caption
    Caption[fr]=Ma Légende

En aquest exemple el valor de l'entrada `Caption` dependrà de l'idioma. Si l'usuari ha seleccionat francès com a idioma (codi d'idioma `fr`) el valor de l'entrada serà Ma Légende. En qualsevol altra cas el valor usat serà My caption.

    [Preview Image]
    Caption=My Caption
    Caption[fr]=Ma Légende

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 `$`KDEDIR`/share/config.kcfg`, 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.

Aquí hi ha un exemple d'un fitxer de configuració &XML;:

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

Tindrà el mateix efecte que:

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

### Seqüència d'inici de &kde;

#### &kdm;

Sempre s'executa com a `root`! Usa `$`KDEDIR`/share/config/kdmrc` i `/etc/X11/xdm/Xservers`. L'últim conté una entrada com:

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

També són fitxers rellevants per a l'inici:

- La secció [X-*-Core] en `kdmrc`
- Configuració: `/etc/X11/xdm/Xsetup`
- Els usuaris introdueixen el nom d'usuari i la contrasenya
- Inici: `/etc/X11/xdm/Xstartup` - com a root
- Sessió: `/etc/X11/xdm/Xsession` - inicia la sessió com a usuari
- = Per a una sessió KDE: `kde` o `startkde`
- = Si està present `~/.xsession` o `~/.xinitrc`
- Tornar a inciar: `/etc/X11/xdm/Xreset` - després de finalitzar la sessió

#### L'script d'inici de &kde;: `startkde`

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

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

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

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

### Processos en segon pla

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:

`dcopserver`

- Comunicació amb l'escriptori

`kded`

- Dimoni de servei genèric.

  Inicien Sycoca per actualitzar la base de dades sempre que sigui necessari

`kcminit`

- Inicialització de servei

  Mireu kcminit per obtenir més informació.

`klauncher`

- Carrega el programa (aquest no és el diàleg &Alt;F2 !).

  Mireu klauncher per obtenir més informació.

`knotify`

- Notificacions d'usuari.

  Mireu knotify per obtenir més informació.

`ksmserver`

- Gestió de la sessió

  Mireu ksmserver per obtenir més informació.

#### `kdeinit`

`kdeinit` s'usa per iniciar tots els demés programes de &kde;. `kdeinit` pot iniciar tant fitxers de programa binari així com mòduls carregables per `kdeinit` (els KLM). Els KLM funcionen de manera similar als fitxers de programa binari però es poden iniciar d'una forma més eficient. Els KLM es troben en `$`KDEDIR`/lib/kde3`

L'inconvenient dels programes iniciats d'aquesta manera és que apareixeran com a ``kdeinit`` en la sortida de `top` i `ps`. Useu `top `-c`` o `ps `aux`` per al nom actual del programa:

    %ps aux

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

`kdeinit:Runing...` identifica el procés mestre `kdeinit`. Els d'altres processos llistats són els programes iniciats com als KLM.

Quan `kdeinit` és executat per primera vegada iniciarà `dcopserver`, `klauncher` i `kded`, així com aquells programes addicionals especificats a la seva línia de comandaments en el script `startkde`, normalment `kcminit` i `knotify`.

#### `dcopserver`

`dcopserver` é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 `dcop`. &DCOP; és essencial per a totes les aplicacions &kde;.

Alguns fitxers relacionats:

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

- &pex;, `.DCOPserver_linux__0`. Controlat per $`DCOPAUTHORITY`

`/tmp/.ICE-unix/dcop`número`-`pid``

- &pex;, `dcop7634-1069677856`. Aquest és el fitxer al que apunta `DCOPserver`.

`$`HOME`/.ICEauthority`

- Autorització de la informació controlada per $`ICEAUTHORITY`

#### kcminit

`kcminit` 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 `X-KDE-Init`:

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

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

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

#### `klauncher`

`klauncher` es un dimoni responsable del servei d'activació en el &kde;. Opera en connexió directa amb el procés mestre `kdeinit` per iniciar nous processos. Les aplicacions &kde; es comuniquen amb `klauncher` a través de &DCOP; per iniciar noves aplicacions o serveis.

El més conegut és el missatge d'error: `KLauncher could not be reached via DCOP` el qual indica un seriós problema amb `dcopserver` o que `klauncher` ha petat.

`klauncher` es pot tornar a iniciar amb `kdeinit` des d'una finestra de consola. Abans de fer-ho assegureu-vos que $`HOME`, $`DISPLAY` i la resta de les variables $`KDEDIR(S)` estan correctament configurades!

#### `knotify`

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

### KSMServer

`ksmserver` é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 `.desktop` en el directori `$`KDEDIR`/share/autostart`. L'auto-arrencada d'una aplicació pot estar condicionada per l'entrada `X-KDE-autostart-condition` en el fitxer `.desktop`.

Per exemple el fitxer `ktip.desktop` conté:

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

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

Algunes de les aplicacions auto-arrencables per `ksmserver` són:

`kdesktop`

- L'escriptori de &kde;

`&kicker;`

- El plafó de &kde;

`ktip`

- Un programa amb el consell del dia

`kwrited`

- Una utilitat per a rebre missatges del sistema enviats a l'usuari

&klipper;

- Una utilitat de portapapers que s'ancora en el plafó

`kalarm`

- Una utilitat que us avisa quan es produeix una cita

`kdesktop` inicia aquelles aplicacions desades en `$`KDEHOME`/Autostart`. `kdesktop` obrirà automàticament qualsevol fitxer desat en aquest directori incloguen documents, fitxers binaris o aplicacions en forma de fitxers `.desktop`.

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ó `ksmserverrc` 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 `$`KDEHOME`/share/config/session`. La informació de l'estat de &kwin; conté la col·locació de les finestres de totes les aplicacions de la sessió.

### Variables d'entorn

Algunes variables d'entorn importants usades per &kde;:

$`KDEDIR`

- Ha d'estar establerta si `KDEDIRS` 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.

$`KDEDIRS`

- Solapa `KDEDIR` 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;.

`$KDEHOME`

- Si no està establerta, &kde; usa `~/.kde` com a directori en el que es desaran dades personals.

$`KDEROOTHOME`

- Si no està establerta, &kde; usa `~root/.kde` com a directori en el que es desaran les dades personals del `root`. 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 `root` amb el comandament `su`.

$`KDEWM`

- Si la variable d'entorn `KDEWM` ha estat assignada, llavores el seu contingut serà usat com al gestor de finestres de &kde; dins del script `startkde` en comptes de &kwin;.

$`KDE_LANG`

- Solapa la configuració de l'idioma de &kde;, &pex;, `KDE_LANG=fr kprograma &` inicia un programa amb la traducció francesa si els fitxers necessaris estan instal·lats.

$`KDE_MULTIHEAD`

- Si el contingut d'aquesta variable és `true` indica que &kde; s'executa en un sistema amb múltiples monitors.

$`KDE_FORK_SLAVES`

- (&kde; 3.2.3) Estableix aquesta variable per a generar KIO-slaves directament des del mateix procés de l'aplicació. Per omissió els KIO-slaves són generats usant `klauncher`/`kdeinit`. Aquesta opció és pràctica si el KIO-slave ha d'executar-se en el mateix entorn que l'aplicació. Aquest pot ser el cas de Clearcase.

$`KDE_HOME_READONLY`

- Establir aquesta variable per indicar si el vostre directori d'inici està muntat en tan sols lectura.

$`KDE_NO_IPV6`

- (Des de &kde; 3.2.3) - Establir aquesta variable per a deshabilitar el suport IPv6 i les recerques DNS IPv6.

$`KDE_IS_PRELINKED`

- (Des de &kde; 3.2) - Establir aquesta variable per indicar que heu pre-enllaçat els vostres binaris i biblioteques &kde;. Això pot tancar `kdeinit`.

$`KDE_UTF8_FILENAMES`

- Si aquesta aquesta variable d'entorn està establerta, &kde; assumeix que tots els noms de fitxer estan codificats en UTF-8 independentment de la codificació local.

$`KDE_FULL_SESSION`

- (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;, &kdesu; ho fa, també és molt útil per a la depuració).

$`KDESYCOCA`

- Us permet especificar la ruta i el nom de fitxer del fitxer cau del sistema de configuració generat pel &kde;.

$`KDETMP`

- Us permet especificar una altra ruta diferent que `/tmp` per a que &kde; hi desi els fitxers temporals.

$`KDEVARTMP`

- Us permet especificar una altra ruta diferent que `/var/tmp` per a que &kde; hi desi els seus fitxers de variable.

$`XDG_DATA_HOME`

- (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 `$`HOME`/.local/share`

$`XDG_DATA_DIRS`

- (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 `$`XDG_DATA_HOME``. Per omissió és `/usr/local/share/:/usr/share/`

  &kde; afegeix localitzacions per a $`KDEDIRS` així com perfils. S'usa per als fitxers de menú `.desktop` i `.directory`. Els fitxers `.desktop` estan en `$`XDG_DATA_DIRS`/applications`. Els fitxers `.directory` estan sota $XDG_DATA_DIRS/desktop-directories.

$`XDG_CONFIG_HOME`

- (&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 `$`HOME`/.config`.

$`XDG_CONFIG_DIRS`

- (&kde; 3.2) - Defineix l'ordre de preferència dels directoris base per a cercar fitxers de configuració addicionals al directori base $`XDG_CONFIG_HOME`. Per omissió és `/etc/xdg`. &kde; també afegeix les localitzacions i perfils de $`KDEDIRS`. Emprat per les descripcions de `.menu` en `$`XDG_CONFIG_DIRS`/menus`.

### El misteriós kdeinit

`kdeinit` és usat per iniciar tots els demés programes de &kde;. `kdeinit` pot iniciar tant fitxers de programes binaris com mòduls carregables per `kdeinit` (els KLM). Els KLM funcionen de manera similar als fitxers de programes binaris però es poden iniciar d'una forma més eficient. Els KLM es troben en `$`KDEDIR`/lib/kde3`.

L'inconvenient dels programes iniciats d'aquesta manera és que apareixeran com a ``kdeinit`` en la sortida de `top` i `ps`. Useu `top `-c`` o `ps `aux`` per al nom actual del programa:

    % ps aux | grep bastian

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

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:

    % killall kdesktop
    kdesktop: no process killed

Podeu estar intentant usar ``killall kdeinit``, però el matar tots els processos de kdeinit provocarà que es tanqui tot el &kde;. En efecte. Destrucció total!

Hi ha dues solucions simples a això:

    % kdekillall kdesktop
    o millor l'antic
    % kill 26195

`kdekillall` forma part del paquet SDK de &kde;.

## Personalitzar el &kde;

### Icones de l'escriptori

&kde; usa diversos tipus d'icones:

- Documents

- Enllaços a llocs web (usant fitxers `.desktop`)

- Enllaços a aplicacions (usant fitxers `.desktop`)

- Dispositius - Discs, particions i perifèrics:

  - Usar explícitament fitxers `.desktop`

  - Automàticament mitjançant devices:// io-slave

- Específics del venedor (&pex;, El meu ordinador amb &SuSE;).

#### Llocs web

Enllaços als llocs web usant fitxers `.desktop`: Crea nou Fitxer Enllaç a la localització (URL). Canvieu la icona usant els diàlegs de Propietats. El fitxer `.desktop` resultant serà:

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

#### Aplicacions

Enllaçar aplicacions usant fitxers `.desktop`: Crea nou Fitxer Enllaç a aplicació. 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

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

- Informació de resum

- Descripció genèrica traduïda, no s'usa a l'escriptori

- Heretat, es pot eliminar

- Nombre traduït tal i com apareixerà a l'escriptori

Icones de l'escriptori

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

- Suporta tipus &MIME;, no s'usa a l'escriptori

- La línia de comandaments a executar

- La icona, que s'obté a partir del tema d'icona o la ruta completa

- Tan sols s'usa si és necessari el terminal

- Directori de treball per al comandament

- Més informació de resum

- Useu true si es necessita terminal, aplicació de text

- Mostra el cursor saltarí, deshabilitar si no funciona.

- S'ha iniciat l'aplicació correctament? Eliminar si no funciona

- Categories per al menú &kde;, no usat a l'escriptori

#### L'opció `Exec` en els fitxers `.desktop`

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:

%f

- Un únic nom de fitxer; usat quan es deixa anar el fitxer sobre una icona, o amb les associacions de fitxer.

%F

- Una llista de fitxers; usat per aplicacions que poden obrir diversos fitxers locals a la vegada.

%u

- Una única &URL; senzilla: Si l'aplicació pot manejar, &pex;, les &URL; &FTP; o &HTTP; per si mateixa, d'altra manera usarà el &kde;.

%U

- Una llista de les &URL;; primer descarregarà el fitxer i passarà un fitxer local a l'aplicació (!!)

%d

- La carpeta del fitxer a obrir; d'utilitat si l'aplicació necessita tenir un fitxer en el directori de treball actual.

%D

- Una llista de carpetes, no és gaire pràctic.

%i

- La icona; l'opció `--icon`; l'aplicació de &kde; usarà la icona de la línia `Icon`= en la barra de tasques.

%m

- La mini icona; heretada.

%c

- L'etiqueta; l'opció `--caption`; l'aplicació &kde; usarà el nom des de la línia `Name`= en la barra de tasques.

Exemples:

Línia `Exec` Comandament executat
- ksirc %i `ksirc --icon ksirc`
- cd %d; kedit $(basename %f)`cd /tmp; kedit fitxer.txt`

#### Dispositius

Enllaços als dispositius usant fitxers `.desktop`: Crea nou -> Dispositiu

#### A on es defineix

Alguns llocs a on definir les icones de l'escriptori:

- `~/Desktop`: copiat des de `/etc/skel/Desktop`.

- `$`KDEDIR`/apps/kdesktop/Desktop` (fusionat)

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

- Icones de dispositiu (fusionats dinàmicament)

- La distribució SUSE Linux copia algunes icones en startkde.theme des de `/opt/kde3/share/config/SuSE/default/`

### El menú &kde;

#### Com funciona

En &kde; 3.2 s'introdueix un format de menú comú en http://freedesktop.org/Standards/menu-spec/.

Abans de &kde; 3.2:

- Estructura de directoris sota `share/applnk`

- La estructura de directoris representa la estructura de menús

- Cada fitxer `.desktop` representa una única aplicació

És dificultós el tornar a col·locar la estructura en &kde; 3.2 per tant el nou format és:

- Defineix la estructura en un únic fitxer .menu

- Està basat en categories

- es compartit per GNOME i &kde;

- Suporta l'estil de menús applnk

Exemple de `applications.menu`:

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

Entrada de menú amb 3 aplicacions:

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

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

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

#### A on es desen?

Els fitxers `.menu` descriuen la estructura del menú. Els fitxers es desen en `$`KDEDIR`/etc/xdg/menus` i `/etc/xdg/menus`. Aquí es desa tota la estructura del menú i està controlada per $`XDB_CONFIG_DIRS`. `$`HOME`/.config/menus` desa els canvis de la estructura del menú específics de l'usuari i està control.lat per $`XDG_CONFIG_HOME`. Per a més informació, mireu http://www.freedesktop.org/Standards/basedir-spec.

Els fitxers `.desktop` descriuen les aplicacions i es desen en: `$`KDEDIR`/share/applications`, `/usr/share/applications`, `/usr/local/share/applications`. Aquí es troben els fitxers `.desktop` de les aplicacions del sistema, que són control.lades per $`XDG_DATA_DIRS`.

`$`HOME`/.local/applications` conté fitxers `.desktop` específics de cada usuari i els seus canvis. Són controlats per $`XDG_DATA_HOME`. Per a més informació, mireu http://www.freedesktop.org/Standards/basedir-spec

Els fitxers `.directory` descriuen els submenús i es desen en: `$`KDEDIR`/share/desktop-directories`, `/usr/share/desktop-directories`, `/usr/local/share/desktop-directories`. Aquests són els fitxers `.directory` que contenen el menú de tot el sistema, i són controlats per $`XDG_DATA_DIRS`. Els canvis específics de l'usuari són desats en `$`HOME`/.local/desktop-directories`. Aquests són controlats per $`XDG_DATA_HOME`. Per a més informació, mireu http://www.freedesktop.org/Standards/basedir-spec

Exemple de `applications.menu`:

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

`Art` és el nom intern per a aquest menú. `suse-edutainment-art.directory` defineix el nom i la icona per aquest menú, i el menú inclou totes les aplicacions que tenen `X-SuSE-Art` llistat com a categoria, &pex;:

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

`suse-edutainment-art.directory` defineix el nom i la icona per aquest menú:

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

#### Trencacolls comuns

Les aplicacions que no s'inclouen en el menú no 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.

Quan no es volen aplicacions en el menú, poden col·locar-se en un menú `.hidden` (ocult) o en un menú dedicat amb

    NoDisplay=true

en el fitxer `.directory`

#### Menús essencials

`$`KDEDIR`/etc/xdg/menus/applications-merged/` conté `kde-essential.menu` que inclou alguns menús essencials que no es mostren en el menú &kde; per si mateixos:

- El centre de control conté un menú Preferències que està ocult, definit per `kde-settings.menu` i amb icones i noms definits per `kde-settings.directory`

- El centre d'informació conté un menú Informació que està ocult, definit per `kde-information.menu` i amb icones i noms definits per `kde-information.directory`.

- Els salvapantalles contenen un menú Sistema/Salvapantalles que està ocult, definit per `kde-screensavers.menu` i amb icones i noms establerts per `kde-screensavers.directory`. `$`KDEDIR`/share/desktop-directories/kde-system-screensavers.directory` conté:

      NoDisplay=true

#### Menús a l'estil antic

&kde; continua suportant els menús a l'estil antic que és definit per l'estructura de directoris de `$`KDEDIR`/share/applnk` (tot el sistema) i `$`HOME`/.kde/share/applnk` (específic de l'usuari). Es poden veure a menys que el fitxer `.desktop` tingui una línia `Categories`=. En aquest cas la categoria determinarà la localització en el menú.

#### KSycoca

KSycoca desa a la memòria cau la estructura de menús i informació sobre totes les aplicacions. Podeu reconstruir la base de dades amb ``kbuildsycoca``. La base de dades que es construeix està en `/var/tmp/kdecache-${`USER`}/ksycoca`. És usada automàticament per KDED, comprovada durant l'accés a &kde;, i KDED cerca canvis mentre s'està accedint.

Per a deshabilitar la recerca de canvis (pot no funcionar sobre NFS) afegiu el següent a `kdedrc`:

    [General]
    CheckSycoca=false

Per a forçar la regeneració, executeu ``touch $`KDEDIR`/share/services/update_ksycoca``.

#### &kmenuedit;

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

### El plafó de &kde;

El plafó de &kde; també conegut com a &kicker;. És modular i consisteix dels següents components:

- Applets

- Botons d'aplicació

- Botons especials

Per omissió, el plafó conté els següents applets:

- El paginador - mostra els escriptoris virtuals

- Barra de tasques

- Safata del sistema

- Rellotge.

i els següents botons especials:

- El menú &kde;

- Botó de l'escriptori

També s'han afegit diversos botons d'aplicació, es permeten espais:

- Botó d'inici

- Botó del fullejador

- Botó de KMail

### Associacions de fitxer

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 `$`KDEDIR`/share/mimelnk` i els fitxers `.desktop` de les aplicacions contenen una llista dels tipus &MIME; suportats per aquesta aplicació.

`kview.desktop`:

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

`kuickshow.desktop`:

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

Ambdós poden obrir image/gif, llavores. Quin s'usarà per obrir un fitxer `.gif`?

L'aplicació amb la preferència més alta! `kview.desktop` conté

    InitialPreference=3

a on `kuickshow.desktop` conté

    InitialPreference=6

De manera que, &kuickshow; serà usat per obrir els fitxers `.gif`.

Com podem aconseguir que s'usi &kview; per omissió?

Un usuari pot canviar l'associació de fitxers en el ¢recontrol;. Aquests canvis es desen en `$`HOME`/.kde/share/config/profilerc`. 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.

## Blocats de seguretat al &kde;

### Com funciona - El bàsic

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

- Crear opcions de configuració immutables

- Restricció d'accions específiques

- Restricció de l'accés a certes &URL;

- Restricció d'accés a certs mòduls de configuració

### Opcions de configuració immutables

Blocats de seguretat al &kde;

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

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

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

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ó.

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.

### Restricció d'accions

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. Desa document é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ó Desa document és `action/file_save`. 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ó `shell_access` que deshabilita totes les funcionalitats que ofereix a l'usuari l'accés a un intèrpret de comandaments &UNIX;.

#### Restricció a l'usuari de l'accés a un intèrpret de comandaments

Per a prevenir que un usuari pugui accedir a l'intèrpret de comandaments podem restringir l'acció `shell_access` afegint el següent a `kdeglobals`:

    [KDE Action Restrictions]
    shell_access=false

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:

    touch $KDEDIR/share/services/update_ksycoca

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

- El &kmenu;

- En &konqueror;, Eines Obre terminal

- L'execució d'un comandament &Alt;F2

Tota la documentació sobre les accions disponibles es poden trobar en http://www.kde.org/areas/sysadmin/

Algunes de les accions més interessants són les llistades a sota:

`action/options_configure`

- L'opció Configura del menú Arranjament

`action/help_report_bug`

- L'opció Informe d'errors del menú Ajuda

`action/kdesktop_rmb`

- El menú del &BDR; sobre l'escriptori.

`action/kicker_rmb`

- El menú del &BDR; sobre el plafó.

`user/root`

- Oculta totes les accions o aplicacions que requereixen accés de `root`.

`shell_access`

- Oculta totes les accions o aplicacions que proveeixen accés a l'intèrpret de comandaments.

`print/system`

- Deshabilita l'opció per a seleccionar el sistema d'impressió (motor).

`lock_screen`

- Indica si l'usuari pot blocar la pantalla

`start_new_session`

- Indica si l'usuari pot iniciar una segona sessió del sistema X (mireu també &kdm;)

`opengl_screensavers`

- Indica si estan permesos els salvapantalles OpenGL per a l'usuari.

`manipulatescreen_screensavers`

- Permet als salvapantalles no ocultar tota la pantalla

### Restriccions a les &URL;

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

list

- Per a controlar si està permès el llistat d'un directori.

open

- Per a controlar si es poden obrir certes &URL;

Redirect

- Per a controlar si una &URL; en pot obrir una altra, encara que sigui automàticament o a través d'hiperenllaços.

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;.

Les següents regles deshabiliten obrir les &URL; http i https externes a `.nostra-empresa.com`:

    [KDE URL Restrictions]
    rule_count=2
    rule_1=open,,,,http,,,false
    rule_2=open,,,,http,*.nostra-empresa.com,,true

- 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.

- `rule_1` prohibeix obrir qualsevol &URL; http o https

- `rule_2` permet obrir qualsevol &URL; http i https en el domini `.nostra-empresa.com`. Tingueu present que el joquer * tan sols està permès al començament d'un domini.

Les següents regles fan que un usuari no pugui navegar pels directoris del sistema de fitxers local que estiguin fora del seu directori $`HOME`:

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

- `rule_1` prohibeix llistar qualsevol directori local

- `rule_2` permet llistar els directoris que estan sota el vostre directori $`HOME`.

$`HOME` i $`TMP` són valors especials que indiquen els directoris inici dels usuaris i el directori temporal de &kde; per als usuaris, &pex;, `/tmp/kde-bastian`

Les següents regles fan que un usuari no pugui obrir fitxers locals que estiguin fora del seu directori $`HOME`:

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

- `rule_1` prohibeix obrir qualsevol fitxer local

- `rule_2` permet obrir fitxers que estiguin sota el vostre directori $`HOME`.

- `rule_3` 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ó.

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.

Per exemple, si volem donar al servidor intranet `www.meva-empresa.com` la possibilitat de fer referència a fitxers locals haurem d'afegir la següent regla:

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

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:

:local

- Protocols que accedeixen de forma local a la informació desada, per exemple file:/, man:/, fonts:/, floppy:/

:internet

- Protocols comuns a Internet com http i ftp

La informació sobre aquests protocols es desa en fitxers `*.protocol` que són desats en `$`KDEDIR`/share/services`.

L'entrada `Class`= defineix el grup del qual forma part el protocol: ``grep` `Class=` `$`KDEDIR`/share/services/*.protocol``

Regles generals:

- Els protocols :local poden fer referència a qualsevol altra protocol

- Sempre es permet fer referència a un protocol :internet

- No tots els protocols formen part d'un grup, fish:/ per exemple.

### Mòduls de configuració

&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.

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

Els mòduls de configuració individual es poden iniciar amb `kcmshell` `mòdul`

Per iniciar el mòdul de l'intermediari useu:

- `kcmshell` `kde-proxy.desktop`

- `kcmshell` proxy

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

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

- Els mòduls que són visibles en el centre de control normalment tenen un fitxer `.desktop` en `$`KDEDIR`/share/applications/kde` i estan ordenats en el menú ocult Settings-Modules en `kde-settings.menu`, inclòs en `kde-essential.menu`.

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

- Els mòduls específics de les aplicacions solen tenir un fitxer `.desktop` en `$`KDEDIR`/share/applnk/.hidden` que corresponen al menú ocult .hidden, inclòs com a un resultat de `<KDELegacyDirs/>`.

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

- En &kde; 3.3 és possible editar el centre de control amb kcontroledit. kcontroledit funciona de forma similar a kmenuedit, fent els canvis tan sols per a un usuari. Useu kiosktool per a fer els canvis per a tothom.

Els mòduls de configuració individual poden ser deshabilitats afegint el següent a `kdeglobals`:

    [KDE Control Module Restrictions]
    id-mòdul=false

Per exemple, per a deshabilitar el mòdul de l'intermediari useu:

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

Marqueu el centre de control i el diàleg Configura Konqueror si la configuració de l'intermediari encara és allí.

## L'administració ràpida

### Compartir l'escriptori remot

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.

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).

&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.

Les connexions entrants són manejades pel mòdul kinetd kded. Podeu usar el comandament ``dcop` kded kinetd services` 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.

### &kde; DIY - Construir les vostres pròpies eines

#### DCOP

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

Algunes notes sobre l'ús de `dcop`:

- `dcop` [opcions] [aplicació [objecte [funció [arg1] [arg2] ... ] ] ]

- Aquestes aplicacions poden obrir més d'una finestra a la vegada que seran llistades com a <aplicació>-PID

- Tots els arguments són sensibles a majúscules i minúscules. setFullScreen i setfullscreen són dues funcions diferents.

- La marca d'expressió regular * es pot usar en l'aplicació i en els arguments objecte.

      % dcop kon*
      konqueror-16006
      konsole-8954

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

    % dcop konsole*
    konsole-8954

Una &konsole; s'està executant amb un PID de 8954.

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

Aquí podeu veure que hi ha quatre sessions executant-se.

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

Aquí estan les opcions per al programa principal &konsole;.

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

Aquestes són les opcions per a la primera sessió, session-1.

    % dcop konsole-8954 konsole setFullScreen true

Això estableix que &konsole; sigui mostrat a pantalla completa.

Quan s'usa més d'una aplicació/objecte, quina s'hauria d'usar? Li fem una referència?

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

    % dcop $KONSOLE_DCOP newSession
    session-6

    % dcopstart konsole
    konsole-9058

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

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

    session=$(dcop $konsole konsole newSession)
    dcop $konsole $session renameSession Code
    dcop $konsole $session sendSession 'cd /my/work/directory'

#### KDialog

&kde; DIY - Crear les vostres pròpies eines

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;.

    kdialog --msgbox 'Teniu correu nou!'

    kdialog --title 'Correu nou' --msgbox 'Teniu correu nou!'

La part KDialog del títol es podeu canviar mitjançant l'opció `--caption`

    kdialog --title 'Correu nou' --msgbox '¡Teniu nou correu!' --dontagain myfile:mykey

Desa si es mostra altra vegada en `$`KDEHOME`/share/config/myfile` (escrivint en aquest fitxer les següents línies):

    [Notification Messages]
    mykey=false

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

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

    kdialog --yesno 'Voleu connectar
    a Internet?' echo $?

Valor retornat | Significat
0 | Sí, Bé, Continua
1 | No
2 | Cancel·la

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ó `--dontagain` de tal manera que recordarà l'elecció i la retornarà les següents vegades sense tornar a mostrar el diàleg.

Algunes variacions són:

`--warningyesno`

- similar a `--yesno` però amb una icona diferent

`--warningcontinuecancel`

- Amb els botons Continua i Cancel·la.

`--warningyesnocancel`

- Amb els botons Sí, No i Cancel·la. Per exemple:

      kdialog --warningyesnocancel 'Voleu desar
      els canvis?'

    kdialog --inputbox "Introduïu el vostre nom:" "VostreNom"

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

    password=$(kdialog --password "Introduïu la contrasenya:")

L'opció `--dontagain` no funciona amb `--inputbox` o `--password`

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

`--menu`

- Permet a l'usuari seleccionar un únic ítem des d'una llista.

`--checklist`

- Permet a l'usuari escollir un o més d'un ítem des d'una llista.

    city=$(kdialog --menu "Seleccioneu una ciutat" a Londres b Madrid c París d Berlín)

`$city` serà a, b, c o d.

    city=$(kdialog --checklist "Seleccioneu ciutats" a Londres off b Madrid on c París on d Berlín off)

Madrid i París estan seleccionades amb anterioritat. El resultat amb Madrid i París seleccionades serà "b" "c".

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

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

&groupware-with-kontact;