# Inställning av KDE:s infraröda fjärrkontroll

Michael Zanetti

    michael_zanetti@gmx.net

Stefan Asserhäll

    stefan.asserhall@comhem.se

Översättare
2010-03-05
1.0
2010 Michael Zanetti

&kremotecontrol;-inställning: Infrastrukturen för &kde;:s infraröda fjärrkontrollfunktion.

Kremotecontrol kcm_remotecontrol Fjärrkontroll

## Inledning

Den här modulen låter dig ställa in dina fjärrkontroller. Du kan tilldela åtgärder som utförs vid knapptryckningar. Åtgärder kan starta program, styra dem eller utföra systemkommandon, som att stänga av datorn.

### Krav

Du måste ha ställt in ett kompatibelt gränssnitt för fjärrkontroller på datorn för att använda &kremotecontrol;. För närvarande finns bara ett gränssnitt för LIRC tillgängligt. Om LIRC är riktigt inställt, lyser ikonen för &kremotecontrol; i systembrickan röd . Om inte, blir den grå och överkorsad .

För mer information om LIRC, besök deras hemsida på http://www.lirc.org.

## Användning

Inställningsmodulen består av två listor. Listan till vänster visar tillgängliga fjärrkontroller och deras lägen. Listan till höger visar alla inställda åtgärder för fjärrkontrollen och läget som för närvarande är markerade. Inställning av &kremotecontrol;

Lista över fjärrkontroller samt inställda lägen och åtgärder

### Fjärrkontroller och lägen

Varje fjärrkontroll kan ha ett antal olika lägen. Genom att ha flera lägen, kan samma knapp utföra olika åtgärder vid olika tillfällen. Tänk på det som en fjärrkontroll med flera användningar för tv, video, satellit och dvd. Istället för att använda olika fjärrkontroller för olika program, kan du ändra beteende hos en fjärrkontroll för att anpassa den till ett program genom att skapa olika lägen och byta mellan dem efter behov. Åtgärder som definieras direkt för fjärrkontrollen är alltid tillgängliga, oberoende av vilket läge fjärrkontrollen för närvarande har. Åtgärder definierade i ett läge utförs bara om fjärrkontrollen för närvarande är inställd i det läget. Varje fjärrkontroll kan bara vara i ett läge åt gången. Den kan också inte vara i något läge alls, vilket betyder att bara åtgärder som alltid är tillgängliga utförs när knappar trycks ner. Man kan också definiera ett standardläge, vilket är det läge som automatiskt tilldelas vid start.

Du kan lägga till lägen för en fjärrkontroll genom att markera fjärrkontrollen och använda knappen + intill listan. När ett läge skapas måste du ange ett namn på det. Du kan valfritt tilldela en knapp som används för att aktivera läget, och en ikon som används vid underrättelser om läget. Du kan ta bort lägen genom att markera dem och använda knappen -. Lägg till läge

Lägga till ett nytt läge

Om det finns flera lägen med samma knapp tilldelad, används knappen normalt för att gå igenom dessa lägen cykliskt. På så sätt kan du gruppera lägen. Du skulle till exempel kunna tilldela en knapp som kallas Musik att gå igenom lägen för &amarok; och &juk;, medan en knapp som kallas Video skulle kunna gå igenom lägen för &dragon; eller Kmplayer. Om du istället vill ha en knapp för att gå igenom alla lägen och en annan för att gå igenom lägen i omvänd ordning, kan du ställa in beteendet i fjärrkontrollinställningarna genom att markera en fjärrkontroll och trycka på redigeringsknappen. Redigera fjärrkontroll

Redigera en fjärrkontroll

### Åtgärder

Efter att ha markerat en fjärrkontroll eller ett läge kan du lägga till åtgärder genom att använda knappen + till höger. Det finns två olika sätt som åtgärder kan skapas på. Genom att använda en mall, eller genom att bläddra manuellt via D-Bus sessionsbuss. Lägg till åtgärd

Lägga till en åtgärd

Det är enklare men begränsat att skapa åtgärder genom att använda mallar. Du hittar mallar för de vanligaste programmen som &amarok; eller &kde;:s programstart och systemkommandon för att stänga av datorn. Dessa mallar är samlade i profiler som grupperar dem i liknande uppgifter. Det finns till exempel en profil som kallas Strömsparhantering som innehåller mallar för att stänga av eller placera datorn i viloläge. Lägg till profilåtgärd

Lägga till en åtgärd genom att använda en mall

Skapar åtgärder genom att bläddra i D-Bus där alla program som för närvarande kör listas. Du kan bläddra igenom dem och deras funktioner. Det kräver en grundläggande förståelse för hur D-Bus fungerar, men du kan använda fler program och funktioner än de i listan med mallar. Lägg till D-Bus åtgärd

Lägga till en åtgärd med D-Bus

När en åtgärd läggs till, kan du finjustera några ytterligare alternativ. Det första av dem definierar om åtgärderna utförs upprepade gånger när knappen på fjärrkontrollen hålls nere. Det är användbart beteende för åtgärder som att öka eller minska volymen, men kan vara oönskat för åtgärder som att byta mellan spela och paus på en mediaspelare. Den andra definierar om målprogrammet ska startas om det inte kör ännu när knappen trycks ner. Det är till exempel inte vettigt om åtgärder som ska stänga ett program skulle starta det. Det tredje och sista alternativet för åtgärder är att definiera vilken instans av ett program som ska ta emot åtgärden om det finns mer än en instans som kör. Om du har valt ett program som inte kan köras flera gånger, är alternativet inaktiverat.

Lägg till åtgärdsalternativ

Alternativ för åtgärder

Åtgärder kan också fyllas i automatiskt med guideknappen. Det betyder att &kremotecontrol; kan försöka matcha knappar med funktioner åt dig. Dialogrutan för att fylla i automatiskt visar alla tillgängliga mallsamlingar med en flagga. Beroende på flaggans färg stöds fjärrkontrollen helt, delvis eller inte alls av profilen. Grönt betyder att alla ingående mallar kan matchas med fjärrkontrollen, gult betyder att vissa av de ingående mallarna matchar och rött betyder att inga av mallarna kan matchas med knappar på fjärrkontrollen. Det betyder inte att dessa mallar inte kan användas. Du måste bara anpassa dem en efter en, och ställa in önskad knapp själv. Fyll i automatiskt

Generera automatiskt åtgärder med användning av mallar

Observera: Om fjärrkontrollen inte är kompatibel med någon profil, kanske du inte har ställt in LIRC med namnrymder.

## Avancerad information

Det här kapitlet beskriver viss information som kan vara intressant för mer avancerade användare eller utvecklare. Du får lära dig hur du kan skapa egna profiler.

### Skapa en profil

#### Inledning

Nästan alla program som hanterar &DBus; kan användas med &kremotecontrol; utan några ytterligare åtgärder. För att tillhandahålla en användarvänlig inställning och låta programmet visas i dialogrutan för att fylla i automatiskt, kan du dock vilja skapa en profil för det.

En profil talar om för &kremotecontrol; (och användaren), vad de olika &DBus; anropen gör. Det är väsentligen en sorts dokumentation av &DBus; anropen. Du behöver inte inkludera alla &DBus; anrop, bara de du känner att slutanvändare kan dra störst nytta av (oftast anrop som modifierar gränssnittet istället för informationsinsamlande anrop).

#### Handledning för profiler

- &DBus;

  Försäkra dig om att programmet du vill skapa profilen för tillhandahåller funktioner via &DBus; sessionsbuss. I stort sett kan du kontrollera det genom att försöka lägga till åtgärder för programmet med den manuella metoden i &kremotecontrol;. Programmet qdbusviewer som levereras med installationen av QT4 är också ett mycket bra verktyg för att ta reda på möjligheter med &DBus; i program.

- Steg för steg

  När du väl har hittat lämpliga &DBus; funktioner, måste du beskriva dem i dokumentet `pgmnamn.profile.xml`. Här är en snabbguide om hur man skapar sådana filer:

  1. Skapa först en ny fil med innehållet nedan. Taggen name definierar ett kort beskrivande namn på profilen. Lägg till en beskrivning av profilen i taggen description. Lägg dessutom till ditt namn i taggen author och ett versionsnummer i taggen version. Versionsnumret är viktigt för att kunna uppgradera profilen. &kremotecontrol; använder den med det högsta numret om flera versioner av profilen hittas på datorn.

         <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>Min profil</name>
             <version>0.1</version>
             <author>Jag</author>
             <description>Någon beskrivande information om vad profilen gör</description>
             <action>
                 <--  Den här taggen förklaras i nästa steg -->
             <action>

         </profile>

  2. Efter du har skapat profilskelettet är det dags att lägga till några åtgärdsmallar.

         <?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>Min profil</name>
             <version>0.1</version>
             <author>Jag</author>
             <description>Någon beskrivande information om vad profilen gör</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Min åtgärd</name>
               <description>Vad åtgärden gör</description>
               <prototype>
                 <-- -->
               <prototype>
               <ifmulti>ifMultiOption</ifmulti>
             </action>

         </profile>

     Definiera först en unik identifierare. Den används av &kremotecontrol; för att matcha befintliga åtgärder med mallen, till exempel för att läsa beskrivningen. Identifieraren måste vara unik genom hela profilen. Egenskapen button används för funktionen att fylla i automatiskt. Titta på schemafilen profile.xsd för en fullständig lista med tillgängliga knappnamn. Egenskapen repeat talar om ifall åtgärden ska utföras flera gånger om knappen på fjärrkontrollen hålls nere. Om programmet ska startas om det inte kör vid inkommande knapptryckning, ställ in autostart till true. Egenskaperna button, repeat och autostart är valfria. Om repeat och autostart inte är definierade, får de standardvärdet false.

     Lägg till ett kort namn i taggen name och en beskrivning genom att använda taggen description. Egenskapen ifmulti specificerar vad &kremotecontrol; ska göra om det finns flera instanser som kör när knappen trycks ner. Du kan använda följande värden för egenskapen: sendtotop (skicka anropet till instansen överst bland fönstren), sendtobottom (skicka anropet till instansen underst bland fönstren), sendtoall (skicka till alla instanser), dontsend (skicka inte åtgärden till någon instans) och unique (programmet tillåter inte flera instanser). Om taggen inte är definierad antar &kremotecontrol; att programmet inte kan köras flera gånger, och ger taggen standardvärdet unique.

  3. Definiera därefter &DBus;-funktionen som ska köras i prototypens tagg:

         <?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>Min profil</name>
             <version>0.1</version>
             <author>Jag</author>
             <description>Någon beskrivande information om vad profilen gör</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Min åtgärd</name>
               <description>Vad åtgärden gör</description>

               <prototype>
                 <serviceName>org.example.application</serviceName>
                 <node>Någon/nod</node>
                 <function>funktion</function>
               </prototype>

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

         </profile>

     servicename innehåller &DBus; tjänstnamn för programmet, t.ex. org.kde.plasma-desktop. node innehåller respektive &DBus; nod, såsom App. Lägg till funktionsnamnet utan returvärde och argument med taggen function. Till exempel toggleDashboard.

  4. Om funktionen har argument, måste du beskriva vart och ett av dem, tillhandahålla en beskrivning för användare, en typ och valfritt ett standardvärde. En lista med typer som stöds finns i schemafilen profile.xsd. Taggen comment ska innehålla en trevlig användarvänlig beskrivning av vad argumentet används för. Du ska också definiera ett standardvärde för varje argument mellan taggarna default. Observera att mallar som innehåller en knapp måste tillhandahålla standardvärden för alla argument, annars producerar funktionen för att fylla i automatiskt felaktiga funktioner.

         <?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>Min profil</name>
             <version>0.1</version>
             <author>Jag</author>
             <description>Någon beskrivande information om vad profilen gör</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Min åtgärd</name>
               <description>Vad den här åtgärden gör</description>

               <prototype>
                 <servicenamn>org.example.application</servicenamn>
                 <node>Någon nod</node>
                 <function>funktion</function>

                 <argument>
                   <argumenttyp="QString">
                     <comment>Ytterligare kommentar</comment>
                     <default>något värde</default>
                   </argument>
                 </arguments>

               </prototype>

               <ifmulti>om flera-alternativ</ifmulti>
             </action>

         </profile>

#### Installation

För att prova och använda profilen måste du kopiera den till `$(kde_datadir)/profiles` och starta om &kremotecontrol;.

Om du skulle vilja bidra profilen till &kde;:s programvarusamling, skicka den gärna till &kde;:s verktygsgrupp på kde-utils-devel@kde.org.