# Configuration du contrôles à distance de KDE

## Introduction

Ce module permet de configurer les touches de votre télécommande, auxquelles vous assignez des actions exécutées en appuyant sur un bouton. Les actions peuvent lancer des applications, les contrôler ou exécuter des commandes systèmes telles que l'arrêt de votre ordinateur.

### Conditions préalables

Pour utiliser &kremotecontrol;, vous devez avoir configuré un moteur de gestion de télécommandes. Actuellement, seul le moteur LIRC est disponible. Si LIRC est correctement paramétré, l'icône de &kremotecontrol; apparaîtra en rouge dans la boîte à miniatures . Sinon, il sera gris et barré .

Pour de plus amples informations sur LIRC, consultez leur site web à l'adresse http://www.lirc.org.

## Utilisation

Le module de configuration présente deux listes. Celle de gauche affiche les télécommandes disponibles et leurs modes. La liste de droite contient toutes les actions configurées pour le mode de la télécommande actuellement sélectionnée. Configuration de KRemoteControl Liste les télécommandes avec leurs modes et actions configurés

### Télécommandes et modes

Chaque télécommande peut avoir un certain nombre de modes. Utiliser de multiples modes permet à un même bouton de commander différentes actions en différentes situations ; tout comme le ferait une télécommande universelle TV / Vidéo / Satellite / DVD. Au lieu d'employer plusieurs télécommandes pour différentes applications, vous pouvez modifier le comportement d'une télécommande pour qu'elle s'adapte à une utilisation en créant différents modes et en passant d'un à l'autre lorsque nécessaire. Les actions définies directement sur la télécommande seront toujours accessibles, quel que soit le mode actuel de la télécommande. Les actions définies dans un mode ne sont exécutées que lorsque la télécommande fait usage de ce mode. Une télécommande ne gère qu'un mode à la fois. Elle peut n'avoir aucun mode ce qui signifie que les actions génériques seront exécutées en appuyant sur les touches. Vous pouvez également définir un mode par défaut qui sera automatiquement assigné au démarrage.

Vous pouvez ajouter des modes à une télécommande en sélectionnant cette dernière, puis le bouton + situé à côté de la liste. Lors de la création d'un mode, vous devrez le nommer. Il est également possible d'assigner un bouton qui activera le mode ainsi qu'une icône utilisée par les notifications. Pour supprimer des modes, sélectionnez-les et cliquez sur le bouton -. Ajouter un mode Ajout d'un nouveau mode

Par défaut, si plusieurs modes sont assignés au même bouton, celui-ci passera d'un mode à l'autre. Cela vous permettant de grouper les modes. Par exemple, vous pourriez utiliser un bouton Musique afin de passer des modes &amarok; à &juk;, alors que le bouton Vidéo alternera entre les modes pour &dragon; et KMplayer. Si vous préférez un bouton pour alterner entre tous les modes et un autre pour parcourir la liste en sens inverse, vous pourrez définir ce comportement dans les préférences de la télécommande en sélectionnant cette dernière et en cliquant sur le bouton d'édition. Modifier une télécommande Modifie une télécommande

### Actions

Après avoir sélectionné une télécommande ou un mode, ajoutez-lui des actions à l'aide du bouton + situé à droite. Il y a deux façons de créer des actions : avec un modèle ou en parcourant manuellement le bus de la session D-Bus. Ajouter une action Ajout d'une action

La création d'actions à partir de modèles est aisée mais limitée. Vous trouverez des modèles pour les applications les plus courantes telles qu'&amarok; ou le lanceur d'applications de &kde; ainsi que les commandes systèmes pour éteindre votre ordinateur. Ces modèles sont regroupés par tâches similaires aux seins de profils. Par exemple, le profil dénommé Gestion de l'alimentation contient des modèles permettant d'éteindre ou de mettre en hibernation votre ordinateur. Ajout d'un profil à une action Ajout d'une action à l'aide d'un modèle

Créer des actions en parcourant D-Bus liste toutes les applications en cours d'exécutions. Parcourez-les et découvrez leurs fonctions. Cela demande un minimum de connaissances sur la manière dont fonctionne D-Bus mais vous pourrez utiliser plus d'applications et de fonctions que proposées par la liste des modèles. Ajout d'une action D-Bus Ajout d'une action à l'aide de D-Bus

Lors de l'ajout d'une action, vous pourrez régler d'autres options. La première définit si l'action est exécutée à plusieurs reprises en maintenant le bouton de la télécommande enfoncé. Ceci est utile pour augmenter ou diminuer le volume mais sera nuisible à des actions comme la mise en lecture / pause d'un lecteur multimédia. La seconde détermine si le programme cible devra être lancé en appuyant sur le bouton, si ce n'est pas déjà fait. Par exemple, il est inutile qu'une action fermant un programme l'ouvre dans la foulé. La troisième et dernière option définit l'instance d'une application devant réceptionner l'action lorsque plusieurs instances sont en cours d'exécution. Si vous sélectionnez une application ne pouvant être lancée à de multiples reprises, cette option sera désactivée.

Options d'ajout d'une action Options d'actions

Les actions peuvent également être automatiquement assignées à l'aide du bouton « assistant ». Cela signifie que &kremotecontrol; tentera de lier les boutons à des fonctions. La boîte de dialogue « Auto-peupler » affiche toutes les collections de modèles disponibles. En fonction de la couleur du drapeau, votre télécommande sera pleinement, partiellement ou pas du tout prise en charge par le profil. Vert signifie que tous les modèles trouveront un bouton sur votre télécommande, jaune que quelques actions correspondent et rouge qu'aucun modèle ne pourra être assigné aux boutons de votre télécommande. Cette indication ne vous empêche pas d'utiliser ces modèles. Il vous faudra néanmoins les configurer à la main, en désignant le bouton souhaité. Auto-peupler Génère automatiquement les actions à l'aide de modèles

Remarque : si votre télécommande n'est pas compatible avec les profils, il se pourrait que vous n'ayez pas configuré LIRC à l'aide d'un espace de noms.

## Informations avancées

Ce chapitre présente des informations susceptibles d'intéresser les développeurs et utilisateurs confirmés. Vous apprendrez à créer vos propres profils.

### Créer un profil

#### Introduction

Pratiquement toutes les applications gérant &DBus; peuvent être contrôlées par &kremotecontrol; sans effort. Cependant, afin de fournir une configuration agréable et permettre à l'application d'apparaître dans la boîte de dialogue d'auto-peuplement, vous souhaiterez sûrement créer un profil adapté.

Un profil renseigne &kremotecontrol; (et l'utilisateur !) sur le fonctionnement des divers appels &DBus;. Essentiellement, cela revient à documenter les appels &DBus;. Il n'est pas nécessaire d'inclure tous les appels &DBus;, seulement ceux que vous jugez utiles aux utilisateurs (donc plutôt les appels influant sur l'interface que ceux rassemblant des informations).

#### Comment créer un profil

1. #### &DBus;

   Assurez-vous que l'application pour laquelle vous créez un profil prend en charge le bus de session &DBus;. Vous pouvez le vérifier en essayant d'ajouter des actions pour cette application grâce à la méthode manuelle proposée par &kremotecontrol;. qdbusviewer, un programme livré avec votre installation de Qt4 est également un bon outil pour s'informer sur les capacités &DBus; des applications.

2. #### Pas à pas

   Une fois les fonctions &DBus; appropriées identifiées, vous devrez les décrire dans un document `nomapp.profile.xml`. Voici un bref guide expliquant comment créer ces fichiers :

   1. Commencez par créer un fichier en y insérant le contenu ci-dessus. La balise name définit un nom court décrivant le profil. Ajoutez une description du profil dans la balise description. Inscrivez votre nom dans la balise author et un numéro de version dans la balise version. Le numéro de version est primordial pour pouvoir mettre à jour votre profil. &kremotecontrol; emploiera celui ayant le nombre le plus élevé si de multiples versions de votre profil existent sur le système.

          <xml version="1.0" encoding="UTF-8"?>
          <profile xmlns="urn:org-kde-kremotecontrol"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd">

              <name>Mon profil</name>
              <version>0.1</version>
              <author>Moi</author>
              <description>Des informations décrivant la fonction du profil</description>
              <action>
                  <--  Cette balise sera expliquée lors de la prochaine étape-->
              <action>

          </profile>

   2. Le squelette de votre profil créé, passons à l'ajout de quelques modèles d'actions.

          <xml version="1.0" encoding="UTF-8"?>
          <profile xmlns="urn:org-kde-kremotecontrol"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd">

              <name>Mon profil</name>
              <version>0.1</version>
              <author>Moi</author>
              <description>Des informations décrivant la fonction du profil</description>

              <action id="unIdUnique"  repeat="true|false" button="unBouton">
                <name>Mon action</name>
                <description>Une description de l'action</description>
                <prototype>
                  <--  Cette balise sera expliquée lors de la prochaine étape-->
                <prototype>
                <ifmulti>siOptionMulti</ifmulti>
              </action>

          </profile>

      Commencez par définir un identifiant unique. Il sera utilisé par &kremotecontrol; pour relier les actions existantes à celles du modèle, pour afficher la description par exemple. Cet id doit être unique au sein du profil. L'attribut button (bouton) est utilisé par la fonction d'auto-peuplement. Voir le fichier schéma profile.xsd contenant la liste complète des noms de boutons utilisables. L'attribut repeat (répéter) exprime la possibilité d'exécuter une action à plusieurs reprises si le bouton de la télécommande est maintenu enfoncé. Si l'application doit être lancée alors qu'elle ne l'est pas encore, mettez autostart à true (vrai) pour le faire lors d'une pression sur un bouton. Les attributs button, repeat et autostart sont optionnels. Si repeat et autostart ne sont pas définis, leur valeur par défaut sera false (faux).

      Ajoutez un nom court à la balise nom et une description à l'aide de la balise description. La propriété ifmulti précise à &kremotecontrol; la marche à suivre en cas d'instances multiples en cours d'exécution lorsqu'on appuie sur un bouton. Elle accepte les valeurs suivantes : sendtotop (envoie l'appel à l'instance au sommet de la pile de fenêtres), sendtobottom (envoie l'appel à la dernière instance dans la pile de fenêtres), sendtoall (transmet à toutes les instances), dontsend (n'envoie rien à personne) et unique (cette application n'autorise pas les instances multiples). Si cette balise n'est pas définie, &kremotecontrol; supposera que les applications ne peuvent pas se lancer à plusieurs reprises et utilisera alors la valeur unique.

   3. Définissez ensuite la fonction &DBus; à exécuter à l'aide de la balise prototype :

          <xml version="1.0" encoding="UTF-8"?>
          <profile xmlns="urn:org-kde-kremotecontrol"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd">

              <name>Mon profil</name>
              <version>0.1</version>
              <author>Moi</author>
              <description>Des informations décrivant la fonction du profil</description>

              <action id="unIdUnique"  repeat="true|false" button="unBouton">
                <name>Mon action</name>
                <description>Une description de l'action</description>

                <prototype>
                  <serviceName>org.exemple.application</serviceName>
                  <node>Un/Nœud</node>
                  <function>fonction</function>
                </prototype>

                <ifmulti>siOptionMulti</ifmulti>
              </action>

          </profile>

      servicename contient le nom du service &DBus; de l'application, &pex; org.kde.plasma-desktop. node indique le nœud &DBus; correspondant, tel que App. Ajoutez à la balise function le nom de la fonction sans la valeur renvoyée ou les arguments. Par exemple, toggleDashboard.

   4. Si la fonction accepte des paramètres, vous devrez décrire chacun d'eux à l'utilisateur, sans oublier un type et une valeur par défaut optionnelle. Une liste des types pris en charge est disponible dans le fichier de schéma profile.xsd. La balise comment proposera une description accessible expliquant l'utilisation du paramètre. Vous devrez aussi déclarer une valeur par défaut pour chaque paramètre en utilisant la balise default. Notez que les modèle incluant un bouton devront fournir une valeur par défaut pour tous les arguments, sinon la fonction d'auto-peuplement ne pourra créer des fonctions valables.

          <xml version="1.0" encoding="UTF-8"?>
          <profile xmlns="urn:org-kde-kremotecontrol"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd">

              <name>Mon profil</name>
              <version>0.1</version>
              <author>Moi</author>
              <description>Des informations décrivant la fonction du profil</description>

              <action id="unIdUnique"  repeat="true|false" button="unBouton">
                <name>Mon action</name>
                <description>Une description de l'action</description>

                <prototype>
                  <serviceName>org.exemple.application</serviceName>
                  <node>Un/Nœud</node>
                  <function>fonction</function>

                  <arguments>
                    <argument type="QString">
                      <comment>Commentaire additionnel</comment>
                      <default>uneValeur</default>
                    </argument>
                  </arguments>

                </prototype>

                <ifmulti>siOptionMulti</ifmulti>
              </action>

          </profile>

#### Installation

Pour tester votre profil, vous devrez le copier dans `$(kde_datadir)/profiles` et relancer &kremotecontrol;.

Si vous souhaitez intégrer le profil à &kde; SC, veuillez l'envoyer à l'équipe de kdeutils par kde-utils-devel@kde.org.