# KDE afstandsbediening-instellingen

Michael Zanetti

    michael_zanetti@gmx.net

&Tom.Albers;
2010-03-05
1.0
2010 Michael Zanetti

&kremotecontrol; instellingen: De infrastructuur voor &kde;'s afstandsbediening-functionaliteit.

KRemoteControl kcm_remotecontrol Afstandsbediening

## Inleiding

Deze module stelt u in staat uw afstandsbedieningen in te stellen. U kunt acties die uitgevoerd worden door het indrukken van een knop toekennen. Acties kunnen programma's starten, deze besturen of systeemcommando's uitvoeren, zoals het afsluiten van uw systeem.

### Benodigdheden

Om &kremotecontrol; te kunnen gebruiken moet u een compatibele backend voor afstandsbedieningen op uw computer hebben ingesteld. Op dit moment is er alleen een backend voor LIRC beschikbaar. Als LIRC juist is ingesteld, dan licht het pictogram &kremotecontrol; rood op in het systeemvak . Zo niet, dan is het grijs met een kruis .

Voor meer informatie over LIRC kunt u de website raadplegen. Deze is te vinden op http://www.lirc.org.

## Gebruik

De module voor instellingen bestaat uit twee lijsten. De linker lijst toont de verschillende afstandsbedieningen en hun modi. De rechter lijst toont de alle ingestelde acties voor de geselecteerde afstandsbediening en modus. KRemoteControl instellingen

Lijst met afstandsbedieningen en ingestelde modi en acties

### Afstandsbedieningen en modi

Elke afstandsbediening kan een aantal verschillende modi hebben. Meerdere modi maken het mogelijk om via dezelfde knop een andere actie te laten uitvoeren in verschillende situaties. Denk aan een meervoudige afstandsbediening voor tv/video/sateliet/dvd. In plaats van het gebruik van meerdere aparte afstandsbediening voor verschillende applicaties, kunt u het gedrag van één afstandsbediening aanpassen aan een applicatie door verschillende modi aan te maken. Directe acties op een afstandsbediening zijn per definitie onafhankelijk van de modus en dus altijd beschikbaar. Acties in een modus worden alleen uitgevoerd als de afstandsbediening in die modus staat. Een afstandsbediening kan op een bepaald moment slechts in één modus staan. Het kan ook in geen modus staan zodat alleen de altijd beschikbare acties uitgevoerd kunnen worden bij het drukken op een knop. U kunt ook een standaard modus definiëren, die automatisch wordt toegekend bij opstarten.

U kunt modi toevoegen aan een afstandsbediening door de afstandsbediening te kiezen en de +-knop naast de lijst te gebruiken. Bij het aanmaken van een modus dient u een naam ervoor op te geven. Optioneel kunt u een knop toewijzen die gebruikt moet worden om de modus te activeren en een pictogram die wordt gebruikt om deze modus aan te geven. U kunt modi verwijderen door ze te selecteren en de knop - te gebruiken. Modus toevoegen

Een nieuwe modus toevoegen

Standaard, als er meerdere modi zijn toegekend aan dezelfde knop, wordt de knop gebruikt om door deze modi te lopen. Op deze manier kunt u uw modi groeperen. U kunt een knop met de naam Muziek toekennen aan modi voor &amarok; en &juk; terwijl een knop met de naam Video door de modi voor &dragon; of KMplayer kan lopen. Als u liever een knop wilt hebben voor het doorlopen van alle modi en een tweede om om in de omgekeerde richting door de modi te lopen, dan kunt u dit gedrag instellen in de voorkeuren van een afstandsbediening door een afstandsbediening te selecteren en op de knop voor bewerken te drukken. AfstandsbedieningBewerken

Een afstandsbediening bewerken

### Acties

Na het selecteren van een afstandsbediening of een modus kunt u er acties aan toevoegen met gebruik van de knop + rechts. Er zijn twee verschillende manieren hoe acties aan te maken. Door een sjabloon te gebruiken of door handmatig langs de D-Bus-sessiebus te lopen. ActieToevoegen

Een actie toevoegen

Acties aanmaken met sjablonen is gemakkelijker maar beperkt. U kunt sjablonen voor de meeste gewone toepassingen, zoals &amarok; of de &kde;-programmastarter en systeemcommando's voor het afsluiten van uw systeem vinden. Deze sjablonen zijn verzameld in profielen die ze groeperen in gelijksoortige taken. Er is bijvoorbeeld een profiel genaamd Energiebeheer die sjablonen bevat voor afsluiten of onderbreken van uw computer. SjabloonActieToevoegen

Een actie met gebruik van een sjabloon toevoegen

Acties aanmaken door langs de D-Bus-lijsten van alle nu actieve toepassingen te lopen. U kunt ze langslopen en langs hun functies. Dit vereist een basiskennis van hoe D-Bus werkt, maar u kunt meer toepassingen en functies gebruiken dan die in de lijst met sjablonen. DBusActieToevoegen

Een actie met gebruik van de D-Bus toevoegen

Bij het toevoegen van een actie kunt u enkele opties aanpassen. De eerste hiervan definieert of de acties herhaaldelijk moeten worden uitgevoerd bij het ingedrukt houden van de knop op de afstandsbediening. Dit is nuttig bij actions zoals het verkleinen of vergroten van het volume kan ongewenst zijn voor acties zoals omschakelen van afspelen/pauzeren op een mediaspeler. De tweede definieert of de doeltoepassing gestart moet worden als deze nog niet actief is wanneer de knop wordt ingedrukt. Het zou bijvoorbeeld zinloos zijn voor acties die een toepassing sluit om deze te starten. De derde en laatste optie voor acties is om te definiëren welk exemplaar van een toepassing de actie zou moeten ontvangen als er meer dan één exemplaar actief is. Als u een toepassing hebt geselecteerd waarvan alleen één exemplaar actief kan zijn, dan is deze optie uitgeschakeld.

ActieOptiesToevoegen

Opties voor acties

Acties kunnen ook automatisch worden toegekend met de assistentknop. Dit betekent dat &kremotecontrol; kan proberen om knoppen voor u overeen te laten komen met functies. De dialoog Autobevolken toont alle beschikbare sjabloonverzamelingen met een vlag. Ahankelijk van de kleur van de vlag wordt uw afstandsbediening volledig, gedeeltelijk of niet ondersteund door dat profiel. Groen betekent alle sjablonen in de verzameling komen met uw afstandsbediening overeen, geel betekent enkele komen overeen en rood betekent geen van de sjablonen komt overeen met de knoppen van uw afstandsbediening. Dit betekent niet dat u deze sjablonen niet kan gebruiken. U moet de gewenste knoppen eenvoudig een voor een zelf instellen. AutoBevolken

Automatisch acties genereren met gebruik van sjablonen

Opmerking: Als uw afstandsbediening niet compatibel is met enig profiel dan zou het kunnen dat u lirc niet hebt geconfigureerd met gebruik van naamruimten.

## Geavanceerde informatie

Dit hoofdstuk laat enige informatie zien die interessant zou kunnen zijn voor meer geavanceerde gebruikers of ontwikkelaars. U leert hoe uw eigen profielen aan te maken.

### Een profiel aanmaken

#### Inleiding

Bijna alle programma's die &DBus; kunnen gebruiken, kunnen gebruikt worden met &kremotecontrol; zonder verdere acties. U zou echter, om een gebruikersvriendelijke configuratie te leveren en om de het programma te laten verschijnen in de auto-invul-dialoog, er een profiel voor kunnen aanmaken.

Een profiel vertelt aan &kremotecontrol; (en de gebruiker!) wat de verschillende &DBus;-aanroepen doen. In essentie is dit een soort van documentatie voor &DBus;-aanroepen. U hoeft niet alle &DBus;-aanroepen mee te nemen - alleen diegenen waarvan u het gevoel hebt dat de eindgebruiker er het meeste profijt van heeft (gebruikelijk is aanroepen voor aanpassingen van het interface meer dan aanroepen voor het verzamelen van informatie).

#### Profiel HowTo

- &DBus;

  Verzeker u ervan dat de toepassing waarvoor u het profiel wilt aanmaken, zijn functies levert over &DBus;-sessiebus; U kunt dit controleren door te proberen de acties voor die toepassing toe te voegen, met de handmatige methode in &kremotecontrol;. De qdbusviewer toepassing, die met uw Qt4-installatie wordt meegeleverd is ook een erg goed hulpmiddel om de &DBus;-eigenschappen van toepassingen op te sporen.

- Stap-voor-stap

  Nadat u de van toepassing zijnde &DBus;-functies hebt gevonden is het nodig deze te beschrijven in een document `appname.profile.xml`. Hier is een snelgids over hoe zulke bestanden aan te maken:

  1. Maak eerst een nieuw bestand aan met de onderstaande inhoud. De tag name definieert een korte beschrijvende naam van het profiel. Voeg een beschrijving toe van het profiel in de tag description. Voeg ook uw naam toe aan de tag author en een versienummer in de tag version. Het versienummer is belangrijk bij opwaarderen van uw profiel. &kremotecontrol; zal diegene gebruiken met het hoogste nummer als er meerdere versies van uw profiel in het systeem worden gevonden.

         <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>Mijn profiel</name>
             <version>0.1</version>
             <author>Ik</author>
             <description>Beschrijvende informatie over wat het profiel doet</description>
             <action>
                 <--  Deze tag zal worden uitgelegd in de volgende stap-->
             <action>

         </profile>

  2. Nadat u het skelet van het profile hebt aangemaakt is het tijd voor wat actiesjablonen.

         <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>Mijn profiel</name>
             <version>0.1</version>
             <author>Ik</author>
             <description>Beschrijvende informatie over wat het profiel doet</description>
             <action id="eenUniekeId" repeat="true|false" button="eenKnop">
               <name>Mijn actie</name>
               <description>Wat deze actie doet</description>
               <prototype>
                 <--  Deze tag zal worden uitgelegd in de volgende stap-->
               </prototype>
               <ifmulti>ifMultiOption</ifmulti>
             </action>

         </profile>

     Definieer eerst een unieke identifier. Deze zal door &kremotecontrol; worden gebruikt om bestaande acties overeen te laten komen met het sjabloon, bijvoorbeeld voor het lezen van de beschrijving. Deze id moet uniek zijn over het gehele profiel. Het attribuut button wordt gebruikt voor de autobevolkingsfunctie. Kijk naar het schemabestand profile.xsd voor een complete lijst van beschikbare knoppennamen. Het attribuut repeat vertelt of de actie meerdere keren moet worden uitgevoerd als de knop op de afstandsbediening ingedrukt blijft. Als de toepassing gestart moet worden als de knop wordt ingedrukt en nog niet actief is zet dan autostart op true. De attributen button, repeat en autostart zijn optioneel. Als repeat en autostart niet zijn gedefinieerd, dan krijgen zij de standaard waarde false.

     Voeg een korte naam toe aan de tag name en een beschrijving met gebruik van de tag description. De eigenschap ifmulti specificeert wat &kremotecontrol; moet doen als er meerdere exemplaren actief zijn wanneer een knop wordt ingedrukt. U kunt de volgende waarden voor deze eigenschap: sendtotop (zend de aanroep aan het exemplaar bovenaan de vensterstapel), sendtobottom (zend aanroep aan het exemplaar onderop de vensterstapel), sendtoall (zend naar alle exemplaren), dontsend (zend geen actie naar enig exemplaar) en unique (Deze toepassing staat geen meerdere exemplaren toe). Als deze tag niet is gedefinieerd, dan neemt &kremotecontrol; aan dat de toepassingen niet meerdere keren actief kan zijn, waarmee deze tag terugvalt op de standaard unique.

  3. Definieer vervolgens de &DBus;-functie die uitgevoerd zou moeten worden in de prototype-tag:

         <?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>Mijn profiel</name>
             <version>0.1</version>
             <author>Ik</author>
             <description>Beschrijvende informatie over wat het profiel doet</description>

             <action id="EenUniekeId"  repeat="true|false" button="eenKnop">
               <name>Mijn actie</name>
               <description>Wat deze actie doet</description>

               <prototype>
                 <serviceName>org.example.application</serviceName>
                 <node>Een/Node</node>
                 <function>functie</function>
               </prototype>

               <ifmulti>ifMultiOption</ifmulti>
             </action>

         </profile>

     servicename bevat de &DBus; servicenaam voor de toepassing, ⪚ org.kde.plasma-desktop. node bevat de respectievelijke &DBus;-node zoals App. Voeg de functienaam toe zonder waarde voor terugkeer en argumenten met de tag function. Bijvoorbeeld toggleDashboard.

  4. Als de functie argumenten heeft, dan dient u elk van hen te beschrijven, via een beschrijving voor de gebruiker, een type en optioneel een standaard waarde. Een lijst met ondersteunde typen kan gevonden worden in het schemabestand profile.xsd. De tag comment kan een nette gebruikersvriendelijke beschrijving bevatten van waarvoor het argument wordt gebruikt. U zou ook een standaard waarde moeten aangeven voor elk argument tussen de tags default. Merk op dat sjablonen met een knop een standaard waarde voor alle argumenten moeten aangeven anders zal de autobevolkingsfunctie gebroken functies produceren.

         <?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>Mijn profiel</name>
             <version>0.1</version>
             <author>Ik</author>
             <description>Een beschrijving over wat het profiel doet</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>My Action</name>
               <description>What this action does</description>

               <prototype>
                 <serviceName>org.example.application</serviceName>
                 <node>SomeNode</node>
                 <function>function</function>

                 <arguments>
                   <argument type="QString">
                     <comment>Additional comment</comment>
                     <default>someValue</default>
                   </argument>
                 </arguments>

               </prototype>

               <ifmulti>ifMultiOption</ifmulti>
             </action>

         </profile>

#### Installatie

Om het profiel te testen en te gebruiken is het nodig het te kopiëren naar `$(kde_datadir)/profiles` en &kremotecontrol; te herstarten.

Als u het leuk zou vinden om het profiel bij te dragen aan &kde; SC, stuur het dan naar het kdeutils-team op kde-utils-devel@kde.org.