<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour comprendre comment fonctionne et comment configurer KDE en modifiant les fichiers « .desktop »</p>

<h2>Les types de fichiers (Type mime)</h2>
<p class="spip">Avant de déterminer les actions possible pour chaque type de fichier, il faut déjà comprendre le fonctionnement des types mime.</p>

<p class="spip">Les types mimes sont configurés dans les dossiers suivant :
<br /></p>
<li> /usr/share/mimelnk/
<br /><li>  /.kde/share/mimelnk
<p class="spip"><strong class="spip">Remarque</strong> : Le dossier du profil utilisateur à toujours la priorité sur le dossier système.</p>

<p class="spip">Les types de fichiers sont classés par catégorie et chaque catégorie est représenté par un dossier :
<br /></p>
<li> all, application, audio, fonts, image, inode, magic, media, message, model, multipart, print, text, uri,  video
<p class="spip">Dans chaque dossiers nous retrouvons des fichiers « .desktop » correspondant aux types de fichiers existant.</p>

<p class="spip">En exemple, voici le contenu partiel (sans les traductions) du fichier « image / jpeg.desktop » :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[Desktop Entry]<br />
Encoding=UTF-8<br />
Type=MimeType<br />
MimeType=image/jpeg<br />
Icon=image<br />
Patterns=*.jpg;*.JPG;*.jpeg;*.JPEG;<br />
Comment=JPEG Image</code></div>
<li> Type=MimeType : Inique que ce fichier contient un paramétrage de type de fichier
<br /><li> MimeType=image/jpeg : Nom du type de fichier
<br /><li> Icon=image : Image associée à ce type de fichier (Les images sont enregistrées dans « /usr/share/icons/default.kde/xxx/mimetypes »
<br /><li> Patterns=*.jpg... : Extensions des fichiers correspondantes à ce type mime
<p class="spip">Il est également possible de rechercher un mime-type à partir d’une extensions avec Konqueror :
<br /></p>
<li> Menu « Configuration / Configurer Konqueror »
<br /><li> Rubrique « Association de fichiers »
<br /><li> Saisir un motif de fichier (ex : jpg)  et La liste des types de fichiers correspondant à cette extension doit apparaître
<p class="spip"><strong class="spip">Remarque 1</strong> : Pour créer un nouveau type de fichier, il faut donc créer un fichier .desktop</p>

<p class="spip"><strong class="spip">Remarque 2</strong> : Il est possible de créer de nouvelles catégories de types de fichiers en créant de nouveaux dossiers.</p>

<p class="spip"><strong class="spip">Remarque 3</strong> : Pour que les modifications soient prise en comptes instantanément, il faut exécuter cette commande en tant que simple utilisateur :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ kbuildsycoca</code></p>

<h2>Exemple de programme utilisant les fichiers .desktop : Kaffeine</h2>
<p class="spip">Tous les programmes récents sous KDE ou Gnome utilise des fichiers .desktop pour leur configuration.</p>

<p class="spip">En effet ces fichiers sont normalisés par le standard « freedesktop »</p>

<p class="spip">Dans ce mémo, nous allons prendre pour exemple le lecteur multi-média « Kaffeine » qui utilise la plupart des types de « .desktop » :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># dpkg -L kaffeine | grep desktop<br />
/usr/share/services/xine_part.desktop<br />
/usr/share/services/kaffeineoggvorbis.desktop<br />
/usr/share/apps/konqueror/servicemenus/kaffeine_open_directory.desktop<br />
/usr/share/apps/konqueror/servicemenus/kaffeine_append_file.desktop<br />
/usr/share/apps/konqueror/servicemenus/kaffeine_play_audiocd.desktop<br />
/usr/share/apps/konqueror/servicemenus/kaffeine_play_dvd.desktop<br />
/usr/share/apps/konqueror/servicemenus/kaffeine_play_vcd.desktop<br />
/usr/share/servicetypes/kaffeineaudioencoder.desktop<br />
/usr/share/servicetypes/kaffeinedvbplugin.desktop<br />
/usr/share/applications/kde/kaffeine.desktop<br />
/usr/share/mimelnk/application/x-kaffeine.desktop</code></div>
<h2>Les services : /usr/share/services/</h2>
<p class="spip">Le fichier « <strong class="spip">xine_part.desktop</strong> » permet à Kaffeine d’ajouter au menu « Aperçu avec » du clic-droit de Konqueror l’entrée « Kaffeine-Xine ». Si Kaffeine est le seul lecture proposant un aperçu pour ce type de fichier, l’entrée apparaîtra à la racine du menu.</p>

<p class="spip">Voici un extrait de ce fichier :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[Desktop Entry]<br />
Encoding=UTF-8<br />
Icon=kaffeine<br />
MimeType=application/x-ogg;audio/basic;.....<br />
Name=Kaffeine-Xine<br />
Comment=A Kaffeine engine based on xine.<br />
ServiceTypes=KParts/ReadOnlyPart,KaffeinePart<br />
Type=Service<br />
X-KDE-Library=libxinepart<br />
InitialPreference=9</code></div>
<p class="spip">La ligne « <strong class="spip">InitialPreference </strong> », permet de déterminer l’ordre dans le menu. Le numéro le plus important apparaîtra en haut du menu.</p>

<p class="spip"><strong class="spip">Attention</strong> : Le fichier « <strong class="spip"> /.kde/share/configprofilerc</strong> » permet également de déterminer l’ordre mais non pas par application mais par type mime.</p>

<h2>Comment configurer avec Konqueror les entrées du menu « Aperçu avec »</h2>
<br /><li> Menu « Configuration / Configurer Konqueror »
<br /><li> Rubrique « Association de fichiers »
<br /><li> Saisir un motif de fichier (ex : jpg)
<br /><li> Sélectionner le type connu « image / jpeg »
<br /><li> Cliquer sur l’onglet « Incorporation ». 
<br /><li> Dans cet onglet, il est possible de modifier l’ordre d’indiquer si l’application doit se lancer dans Konqueror ou en dehors de Konqueror
<p class="spip"><strong class="spip">Remarque 1</strong> : Cela, va créer ou modifier le fichier « <strong class="spip"> /.kde/share/configprofilerc</strong> ». Si ce fichier est modifié manuellement, il faut lancer cette commande en tant que simple utilisateur pour que la modification soit prise en compte :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ kbuildsycoca</code></p>

<p class="spip"><strong class="spip">Remarque 2</strong> : Dans le fichier « <strong class="spip">configprofilerc </strong> », nous retrouvons les entrées du menu « Ouvrir avec » et celles du menu « Aperçu avec » pour le type mime modifié</p>

<p class="spip"><strong class="spip">Remarque 3</strong> : L’ordre de préférence du fichier  « <strong class="spip">configprofilerc </strong> » a priorité sur celle des fichiers « .desktop »</p>

<p class="spip"><strong class="spip">Remarque 4</strong> : Dans l’onglet « Incorporation », en sélectionnant « Ouvrir en dehors de Konqueror, ce sont les entrées du menu « Ouvrir avec » qui seront utilisées</p>

<p class="spip">Cette option, va créer ou modifier le fichier « jpeg.desktop » du dossier «  /.kde/share/mimelnk/image »</p>

<p class="spip">Voici son contenu :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[Desktop Entry]<br />
Comment=Image JPEG<br />
Hidden=false<br />
Patterns=*.jpg;*.JPG;*.jpeg;*.JPEG<br />
X-KDE-AutoEmbed=false</code></div>
<p class="spip">La dernière ligne si le document sera ouvert en aperçu dans Konqueror ou ouvert par une autre application en dehors de Konqueror</p>

<p class="spip">Il est possible également d’ajouter cette ligne au fichier « <strong class="spip">/usr/share/mimelnk/image/jpeg.desktop</strong> » pour que la modification soit valable pour tous les utilisateurs.</p>

<h2>Lien</h2>
<p class="spip">La documentation officielle des fichiers « .desktop » :
<br /></p>
<li> <a href="http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys" class="spip_out">http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>29/08/07</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.2</td><td>31/05/08</td><td>Mise en ligne</td></tr>
</tbody>
</table>