1
<chapter id="tinkering-under-the-hood">
2
<!-- Uncomment the <*info
3
> below and add your name to be -->
4
<!-- credited for writing this section. -->
11
>Your First Name here</firstname>
13
>Your Surname here </surname>
20
>Les secrets de &kde;</title>
22
<sect1 id="hand-editing-config-files">
33
>goutte@kde.org</email
38
>Fichiers de configuration à modifier à la main</title>
40
<sect2 id="hand-editing-intro">
44
>Dans &kde;, les fichiers de configuration sont faciles à modifier avec un simple éditeur de texte comme &kate; puisque les fichiers de configuration sont des fichiers texte.</para>
47
>Un exemple de fichier texte :</para>
52
LastFile=/var/tmp/test.txt</programlisting>
55
>Les fichiers de configuration propres à l'utilisateur sont stockés dans <filename class="directory"
56
>.kde/share/config</filename
57
> (remplacez <filename
59
> par votre paramètre $<envar
61
>) et les fichiers globaux dans le sous-dossier <filename class="directory"
62
>share/config</filename
63
> du chemin d'installation de &kde; (vous pouvez trouver ce chemin d'accès en exécutant la commande <command
64
>kde4-config --prefix</command
65
>). Leurs noms de fichiers se terminent généralement par « rc » (sans point initial), par exemple <filename
71
>Modifier des fichiers de configuration à la main peut mettre en péril la stabilité de votre installation &kde;. Les applications ne vérifient d'ordinaire ce qu'elles lisent dans les fichiers de configuration. Cela signifie qu'elles peuvent être perturbées par ce qu'elles obtiennent comme configuration, voire planter ».</para
76
<sect2 id="hand-editing-backups">
81
>Donc, la première règle est de faire une sauvegarde de votre fichier avant de le modifier. Il vaut mieux stocker la sauvegarde en dehors de tout sous-dossier <filename class="directory"
83
> (ou le dossier $<envar
85
> correspondant). Les sauvegardes sont de toute façon une bonne idée en cas de dysfonctionnement majeur de &kde; qui endommagerait des fichiers de configuration importants (par exemple vos paramètres &kmail; qui sont dans le fichier <filename
87
>). Un tel dysfonctionnement majeur a peu de chances de se produire, mais cela peut toujours arriver.</para>
90
<sect2 id="hand-editing">
95
>Donc pourquoi voudriez-vous toucher aux fichiers de configuration en fait ? Bien, en premier lieu, vous devrez le faire quand vous voulez mettre en application le mode KIOSK. Peut-être un développeur vous a-t-il demandé d'ajouter un élément pour l'aider à résoudre un problème avec l'application. Peut-être voulez-vous vous tirer d'un problème sans avoir à supprimer tout le dossier <filename class="directory"
97
>. Ou alors voulez-vous approfondir les arcanes de &kde;.</para>
100
>De toute façon, quelle que soit votre motivation, vous voulez modifier à la main un fichier de configuration.</para>
103
>Lorsque vous projetez de modifier un tel fichier, assurez-vous que l'application qui l'utilise ne tourne pas. Si c'est un des fichiers de configuration fondamentaux, pensez à le modifier quand &kde; ne tourne pas du tout.</para>
106
>Prêt ? Donc, faites une sauvegarde du fichier (vous l'ai-je déjà dit ?), démarrez votre éditeur favori (supposons que ce soit &kate;), chargez le fichier (veillez à le charger au format UTF-8, &kate; l'affiche en tant que « utf8 »).</para>
109
>Maintenant, vous avez un fichier comme :</para>
115
Key3=Value3</programlisting>
118
>Vous pouvez maintenant le modifier (avec prudence !) puis l'enregistrer (à nouveau, soyez sûr qu'il est au format <acronym
123
>À présent, vous pouvez tester l'application et, si cette dernière ne fonctionne plus correctement, la fermer et restaurer la sauvegarde du fichier de configuration.</para>
127
>Informations connexes</title>
132
><xref linkend="kde-for-administrators"/> offre plus d'informations sur la structure de &kde; pour vous aider à chercher le fichier que vous devez modifier.</para>
141
<sect1 id="scripting-the-desktop">
143
>Scriptage du bureau</title>
146
>&kde; fournit un système de communication interprocessus puissant nommé &DCOP; (<foreignphrase
147
>Deskop COmmunication Protocol</foreignphrase
148
> ou protocole de communication pour l'environnement de bureau). En utilisant &DCOP;, vous pouvez contrôler un large ensemble de fonctions dans &kde; depuis la ligne de commande ou en écrivant un script dans votre langage de scripts favori. Vous pouvez également obtenir des informations sur les applications &kde;. Par exemple, plusieurs lecteurs multimédia de &kde; fournissent des méthodes pour les interroger à propos du morceau en cours de lecture.</para>
151
>De manière plus générale, chaque application &kde; fournit une ou plusieurs <firstterm
152
>interfaces</firstterm
153
> &DCOP;, qui à leur tour fournissent des méthodes (ou, si vous préférez, des fonctions) qu'une autre application peut appeler. Ainsi, la première étape dans l'utilisation de &DCOP; est de trouver la méthode appropriée pour la tâche en question. La façon la plus simple pour cela est d'utiliser l'interface graphique <application
155
> pour les méthodes &DCOP; disponibles.</para>
160
> depuis une &konsole; ou le mini<acronym
162
> (la fenêtre qui apparaît avec <keycombo action="simul"
166
>). La fenêtre de <application
168
> affiche les applications en cours d'exécution qui fournissent des interfaces &DCOP;, en utilisant une vue arborescente. En général, trouver la méthode correcte nécessite un peu de recherche dans cette arborescence, mais voici une petite astuce : les interfaces marquées <quote
170
> contiennent habituellement les fonctions les plus souvent utilisées.</para>
175
>Afin de tester que la fonction fait bien ce qu'on attend d'elle, double-cliquez sur l'élément <guilabel
177
>. Pour régler la couleur <varname
179
>, cliquez sur le bouton de sélection de couleurs, et choisissez une couleur. Choisissez si la couleur doit être une couleur A avec la case à cocher. Cliquez sur <guilabel
181
> et la couleur de fond est appliquée.</para>
184
>Pour accéder aux méthodes &DCOP; à partir de votre langage de script favori, vous pouvez soit utiliser les <foreignphrase
185
>bindings</foreignphrase
186
> &DCOP; s'ils sont disponibles dans le module kdebindings, soit appeler l'application <command
188
> en ligne de commande. Pour des utilisations simples, l'appel en ligne de commande de <command
190
> est suffisant. Pour appeler une méthode &DCOP; depuis la ligne de commande, nous avons besoin de spécifier l'application et l'interface auxquelles appartient la méthode, la méthode elle-même, et les arguments, dans une forme adéquate pour la console.</para>
193
>Nous spécifions l'application, l'interface et la méthode dans cet ordre, suivi des arguments dans le même ordre que celui montré dans <application
197
> dispose de beaucoup d'autres options : jetez un coup d'œil à la sortie de <userinput
206
>C'en est en fini de la théorie, il est temps maintenant de passer à la pratique : </para>
210
>Voici un script permettant de changer la couleur de fond avec &DCOP;</title>
213
>Avec l'application en ligne de commande <command
215
> et un peu de Perl, nous allons faire un script simple qui modifie lentement la couleur de fond du bureau de manière cyclique, en passant par toutes les couleurs de l'arc-en-ciel.</para>
218
>Tout d'abord, nous cherchons la méthode appropriée avec <application
220
>. Pour cet exemple, nous court-circuitons la recherche, et y allons directement : la méthode qui nous intéresse est <menuchoice
224
>KBackgroundIface</guisubmenu
226
>setColor</guimenuitem
228
>. Les types des arguments et de la valeur retournée sont montrés avec le style du langage C++. Pour <methodname
229
>setColor</methodname
230
>, les arguments sont une couleur, <varname
232
>, qui spécifie la nouvelle couleur d'arrière-plan, et une valeur booléenne (vrai ou faux), <varname
234
>, qui spécifie s'il s'agit de la première ou de la seconde couleur (ceci est utile pour configurer des gradients).</para>
237
>Pour utiliser notre méthode <methodname
238
>setColor</methodname
239
> depuis la ligne de commande, nous utilisons ce qui suit : <screen
245
> kdesktop KBackgroundIface setColor '#ffffff' false</userinput
251
>Pour spécifier la couleur, nous utilisons une valeur RGB hexadécimale, comme en &HTML;. Notez qu'elle est entourée par des guillemets simples pour protéger le <token
253
> depuis la console.</para>
256
>Pour trouver la valeur RGB hexadécimale de la couleur, ouvrez n'importe quelle boîte de dialogue de sélection de couleur dans une application &kde; (par exemple, dans ¢reConfiguration;, <menuchoice
258
>Apparence et thèmes</guimenu
260
>Couleurs</guimenuitem
262
>), choisissez la couleur et utilisez la valeur donnée dans la zone de texte <guilabel
268
>C'est tout ce dont nous avons besoin pour &DCOP;, maintenant il s'agit d'écrire le script correspondant. C'est une implémentation (extrêmement ! ) difficile : <programlisting
270
$min=49; # Minimum value of R, G, or B colour
271
$max=174; # Maximum value of R, G, or B colour
272
$step=5; # Amount to step colour by on each step
273
$sleeptime=15; # Interval in seconds between each step
275
@start = ($max, $min, $min);
280
my $which = $_ % 3; # Which colour (R, G or B) to change
281
my $updown = $_ % 2; # Whether to increase or decrease the colour value
283
if ($updown == 0) { $colour[$which]+=$step; }
284
if ($updown == 1) { $colour[$which]-=$step; }
285
my $dcopcall=sprintf "dcop kdesktop KBackgroundIface setColor '#%x%x%x' true\n", @colour;
288
} while (($colour[$which]
289
>= $min) and ($colour[$which] <= $max));
297
>Exécutez simplement le scripts sans arguments, et l'arrière plan changera de manière cyclique sur tout le spectre des couleurs, jusqu'à ce que le script soit arrêté, et voilà !</para>
302
>Bien évidemment, Perl n'est pas le seul langage que vous pouvez utiliser pour écrire des scripts avec &DCOP;—si vous préférez le scripts shell, c'est également possible : </para>
306
>Régler l'arrière plan depuis internet</title>
309
>Le script suivant récupère l'image principale de la BD <quote
310
>User Friendly</quote
311
> et la met comme papier peint du bureau, en utilisant les outils disponibles classiques et un peu de &DCOP; :</para>
316
COMICURL=`wget -qO - http://www.userfriendly.org/static/index.html | \
317
grep Latest | sed -e "s,.*SRC=\",," -e "s,\"
319
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
320
wget -q -O $TMPFILE $COMICURL
321
dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 1
326
>La première ligne après #!/bin/sh utilise <command
328
> et des expressions rationnelles magiques pour extraire l'emplacement de l'image depuis le source de la page principale &HTML;. La deuxième et la troisième ligne téléchargent l'image, et enfin <command
330
> met l'image téléchargée en fond d'écran.</para>
337
>Related Information</title>
340
>to be written</para>
349
<sect1 id="adding-extra-keys">
351
>Ajout d'associations de touches supplémentaires à &kde;</title>
354
>De nombreux claviers modernes contiennent des touches supplémentaires qui ne sont par défaut affectées à aucune action.</para>
357
>Les claviers « multimédia » offrent souvent de générer un signal et on peut simplement les choisir en tant qu'association de touches à l'intérieur d'une application exactement comme on choisirait n'importe quelle autre touche. Certaines touches, cependant, ne sont pas détectées et appuyer dessus dans <guilabel
358
>Configurer les raccourcis clavier...</guilabel
359
> n'a aucun effet.</para>
362
>Certains ordinateurs portables IBM, par exemple, ont des touches supplémentaires autour des touches fléchées gauche et droite, qui ressemblent à <guiicon
363
>page gauche</guiicon
365
>page droite</guiicon
373
> pour chercher le code des touches. Dans ce cas, il s'agit de 233 et234. </para
377
>Choisissez les symboles des touches. Comme il y en a toute une série qui ne sont pas utilisées par défaut, beaucoup sont libres. Vous pouvez en trouver la liste dans <filename
378
>/usr/X11R6/include/X11/keysymdef.h</filename
379
> (ou son équivalent sur votre système).</para
383
>Créez un fichier dans votre dossier personnel appelé <filename
385
> et ajoutez-le à ceci :</para>
387
>keycode 233 = Ecran_Virtuel_Suivant
388
keycode 234 = Ecran_Virtuel_Precedent</screen>
392
>Exécutez la commande <userinput
396
>~/.Xmodmap</filename
403
>À ce stade, vous devriez pouvoir exécuter <command
405
> à nouveau et constater que les touches génèrent maintenant les symboles de touches que vous avez affectés. Vous pouvez à présent simplement les affecter à n'importe quelle action, normalement.</para>
409
>Informations connexes</title>
412
>La page de manuel <command
414
>. Vous pouvez la consulter en saisissant <userinput
416
> dans une fenêtre &konqueror; ou en saisissant <userinput
420
> dans un terminal.</para
426
<sect1 id="keys-for-scripts">
428
>Ajout d'associations de touches pour de nouvelles actions</title>
431
>La plupart des actions, soit dans le bureau, soit dans les applications, sont aisément disponibles pour une association de touche. Si l'action pour laquelle vous voulez un raccourci est quelque chose que vous avez écrit vous-même ou n'est pas disponible autrement, vous pouvez toujours affecter un raccourci.</para>
434
>Pour relier les deux sections précédentes, peut-être voulez-vous affecter une touche inutilisée autrement sur votre clavier, à un script ou à une commande dcop. Notre exemple ici consistera à affecter les deux touches que nous avons ajoutées dans <xref linkend="adding-extra-keys"/> pour aller sur le bureau virtuel précédent ou suivant, deux fonctions pour lesquelles vous aurez besoin de DCOP (comme étudié dans <xref linkend="scripting-the-desktop"/>.</para>
437
>Vous y arriverez facilement à l'aide de la méthode suivante :</para>
442
>Ouvrez le ¢reConfiguration; et, dans la section <guilabel
443
>Régionalisation et accessibilité</guilabel
444
>, sélectionnez <guilabel
445
>Actions d'entrées</guilabel
450
>choisissez <guibutton
451
>Nouvelle action</guibutton
456
>nommez la nouvelle action, &pex; <userinput
457
>Écran virtuel suivant</userinput
462
>sélectionnez <guilabel
463
>Raccourcis clavier -> Commande / URL (simple)</guilabel
465
>Type de l'action :</guilabel
470
>dans l'onglet <guilabel
471
>Raccouci clavier</guilabel
472
>, cliquez sur bouton dont vous souhaitez qu'il déclenche la commande. Pour cet exemple, cliquez sur celui sur lequel il y a l'image <guiicon
473
>Page suivante</guiicon
475
>Ecran_virtuel_suivant</keysym
476
> apparaît alors dans l'image de la touche,</para>
480
>dans l'onglet <guilabel
481
>Paramètres de la commande / de l'URL</guilabel
482
>, saisissez la commande à exécuter dans le champ : <userinput
484
>dcop kwin default nextDesktop</command
491
>Répétez l'opération avec la touche <keysym
492
>Ecran_virtuel_precedent</keysym
495
>dcop kwin default previousDesktop</command
500
>Maintenant, appuyer sur <keysym
501
>Ecran_virtuel_precedent</keysym
503
>Ecran_virtuel_suivant</keysym
504
> vous fera basculer sur le bureau virtuel précédent et suivant, respectivement.</para>
507
>Évidemment, vous pouvez affecter n'importe quelle touche libre à n'importe quelle action.</para>
511
>Informations connexes</title
515
>Reportez-vous à la documentation de <application
516
>KHotKeys</application
517
> en la cherchant dans le ¢reAide; ou en saisissant <userinput
518
>help:/khotkeys</userinput
519
> dans une fenêtre &konqueror;.</para
524
><xref linkend="adding-extra-keys"/></para
528
><xref linkend="scripting-the-desktop"/></para
534
<sect1 id="kdebugdialog">
545
>groot@kde.org</email
551
>&kdebugdialog; - Contrôle de la sortie de débogage de &kde;</title>
553
<sect2 id="kdebugdialog-basic-usage">
555
>Utilisation de base</title>
558
>&kdebugdialog; n'est pas dans le &menuk; par défaut. Vous devez le lancer depuis le shell ou le mini-CLI avec la commande <userinput
560
>kdebugdialog</command
562
>. &kdebugdialog; fait apparaître une fenêtre avec une longue liste de zones de débogage. Chaque zone comporte une case que vous pouvez (dé)cocher afin de (dés)activer la sortie de débogage pour cette partie de &kde;.</para>
565
>Comme la liste des zones de débogage est triée numériquement et non alphabétiquement, « kio » (127) vient avant « artskde » (400). Les nombres vont jusqu'à 200000 ou environ, mais il n'y a réellement que 400 zones. Vous n'avez donc pas à faire défiler la liste entière pour trouver la zone dont vous avez besoin. Il y a une zone de modification au début de la boîte de dialogue, où vous pouvez saisir une partie du nom de la zone que vous voulez. La liste des éléments qui est affichée est filtrée de façon à n'inclure que les zones de débogage qui contiennent le texte que vous avez saisi. Par exemple, la saisie de <userinput
567
> ne filtre rien du tout, mais la saisie de <userinput
569
> vous affichera juste les zones de débogage de &kontact;. Comme moyen encore plus rapide de (dés)activer la sortie de débogage, il y a également les boutons <guibutton
570
>Tout sélectionner</guibutton
572
>Tout désélectionner</guibutton
573
>, qui amèneront &kde; à produire une énorme quantité de sortie de débogage ou très peu.</para>
576
<sect2 id="kdebugdialog-fullmode">
578
>KDebugDialog en mode complet</title>
580
<!-- this text partly taken from the kdebugdialog handbook -->
583
>En mode complet, ce que vous obtenez quand vous démarrez kdebugdialog en <userinput
585
>kdebugdialog</command
589
>, la même liste de zones de débogage qu'en mode plein est disponible, mais vous ne pouvez en sélectionner qu'une à la fois dans une liste déoulante. Vous pouvez ensuite définir la sortie pour divers types de messages : Informations, Avertissement, Erreur et Erreur fatale. Pour chacun de ces types, vous pouvez choisir où sont envoyés les messages. Les choix sont :</para>
592
>Fichier, dans lequel vous pouvez saisir un nom de fichier. Ce fichier est écrit dans votre dossier $<envar
597
>Boîte de dialogue. Chaque message de débogage est affiché dans une boîte de dialogue d'information et vous devez cliquer sur <guibutton
599
> pour continuer avec l'application.</para>
602
>Shell, l'élément par défaut. Les messages sont affichés sur stderr et apparaîtront soit dans la fenêtre du shell où l'application a été démarrée, soit dans <filename
603
>.xsession-errors</filename
607
>Journal système. Cette option envoie chaque message de débogage à la fonction de journalisation système, qui peut effectuer son propre traitement du message.</para>
610
>Aucun. Cette option supprime la sortie de ce type de message.</para>
613
>Pour les messages générés par des erreurs fatales, il est en principe peu judicieux de choisir « Aucun » ou « Syslog », puisque dans les deux cas, vous ne verrez probablement pas le message et que l'application qui rencontre l'erreur fatale disparaîtra sans laisser d'indices quant à la raison de sa disparition. Vous pouvez contrôler que l'application disparaisse ou non sur une erreur fatale avec la case <guilabel
614
>Arrêter lors de problèmes critiques</guilabel
615
>, qui est cochée par défaut — mais vous pourriez vous attendre à ce qu'une application « plante » (d'une manière brutale) si elle rencontre une erreur fatale, de toute façon.</para>
617
<!-- Add links to "further reading" here -->
620
>Related Information</title>
623
>to be written</para>
634
<!-- Keep this comment at the end of the file
639
sgml-namecase-general:nil
640
sgml-general-insert-case:lower
641
sgml-minimize-attributes:nil
642
sgml-always-quote-attributes:t
644
sgml-indent-data:true
645
sgml-parent-document:("index.docbook" "book" "chapter")
646
sgml-exposed-tags:nil
647
sgml-local-catalogs:nil
648
sgml-local-ecat-files:nil