# Налаштування пристроїв дистанційного керування у KDE

Michael Zanetti

    michael_zanetti@gmx.net

Юрій Чорноіван

    yurchor@ukr.net

Переклад українською
5 березня 2010 року
1.0
2010 Michael Zanetti

Налаштування &kremotecontrol;: інфраструктура функціональних можливостей &kde; з роботи з пристроями дистанційного керування.

KRemoteControl kcm_remotecontrol Дистанційне керування

## Вступ

За допомогою цього модуля ви зможете налаштувати роботу ваших пристроїв дистанційного керування. Ви зможете визначити дії, які виконуватимуться у відповідь на натискання кнопок. Дії можуть полягати у запуску програм, керуванні ними або виконанні системних команд, зокрема команди вимикання вашого комп’ютера.

### Вимоги

Щоб мати змогу скористатися &kremotecontrol;, вам слід встановити і налаштувати у вашій системі сумісний з програмою сервер роботи з пристроями дистанційного керування. У поточній версії єдиним таким сервером є LIRC. Якщо LIRC налаштовано належним чином, піктограма &kremotecontrol; у системному лотку набуде червоного кольору . Якщо це не так, піктограму буде перекреслено і показано сірим кольором .

Докладніші відомості щодо LIRC можна отримати з сайта проекту http://www.lirc.org.

## Використання

Сторінка модуля налаштування складається з двох списків. У списку, розташованому ліворуч, буде показано доступні пристрої дистанційного керування та їх режими. У списку, розташованому праворуч, буде показано всі налаштовані для поточного позначеного пульта або режиму дії. Налаштування KRemoteControl

Списки пультів та налаштовані режими і дії

### Пульти керування і режими

Будь-який пульт дистанційного керування може працювати у декількох різних режимах. Використання декількох режимів уможливлює прив’язку натискання кнопок до різних дій за різних обставин. Розглянемо, наприклад, багатоцільовий пристрій дистанційного керування телевізором/відеомагнітофоном/супутниковою антенною/DVD-програвачем. Замість використання декількох пультів для різних програм, ви можете змінити поведінку одного пульта дистанційного керування для керування різними програма шляхом створення декількох режимів з вмиканням, за потреби, належного до певної ситуації режиму. Доступ до дій, пов’язаних безпосередньо з пультом дистанційного керування можна буде отримати за будь-яких обставин, незалежно від поточного режиму. Дії ж, пов’язані з певним режимом, виконуватимуться, лише якщо пульт працює у відповідному режимі. Одночасно пульт дистанційного керування може працювати лише у одному режимі. Крім того, пульт може працювати у без визначення режиму, коли доступ до дії буде обмежено лише загальним переліком дій. Ви також можете визначити типовий режим, у якому пульт працюватиме одразу після запуску системи.

Додати режим до пункту пристрою дистанційного керування можна позначенням цього пункту з наступним натисканням кнопки +, розташованої поруч зі списком. Під час створення запису режиму вам слід вказати його назву. За бажання ви можете призначити кнопку, якою вмикатиметься режим та піктограму, яку буде використано для сповіщень про цей режим. Вилучити запис режиму можна позначенням відповідного пункту з наступним натисканням кнопки -. Додавання режиму

Додавання нового режиму

Типово, якщо існує декілька режимів, у яких різні дії пов’язано з однією кнопкою, для перемикання між режимами використовується кнопка перемикання режимів. За допомогою таких кнопок можна групувати ваші режими. Наприклад, ви можете призначити кнопку з назвою Music для циклічного перемикання режимів у &amarok; і &juk;, а кнопку з назвою Video для циклічного перемикання режимів у Dragonplayer або KMplayer. Якщо ви надаєте перевагу циклічному перемиканню режимів за допомогою однієї кнопки, а іншою кнопкою бажаєте користуватися для циклічного перемикання режимів у зворотному напрямку, ви можете налаштувати подібну поведінку у параметрах пульта, натисканням кнопки редагування даних. Редагування запису пульта

Редагування параметрів пульта

### Дії

Після позначення пункту пульта або режиму ви можете додавати записи дій за допомогою натискання кнопки +, розташованої праворуч. Передбачено два різних способи створення записів дій: за допомогою шаблонів або за допомогою безпосередньої навігації каналами сеансу D-Bus. Додавання дії

Додавання запису дії

Створення записів дій за допомогою шаблонів є простішим, але має певні обмеження. Передбачено шаблони для більшості типових програм, зокрема &amarok;, інструменту запуску програм KDE та системних команд, зокрема команд вимикання комп’ютера. Записи шаблонів зібрано у профілі за призначенням. Наприклад, існує профіль з назвою Power management, у якому зібрано шаблони, призначені для вимикання або присипляння системи. Додавання за профілем дій

Додавання дії за допомогою шаблону

Якщо ви виберете варіант з навігацією каналами сеансу D-Bus, програма покаже список всіх поточних запущених програм. Ви зможете здійснювати навігацію списком програм та їх функцій. Створення записів дій за допомогою цього способу вимагає базового розуміння способів роботи D-Bus, але ви зможете скористатися ширшим переліком програм та функцій, ніж за допомогою списку шаблонів. Додавання дії за допомогою D-Bus

Додавання запису дії за допомогою D-Bus

Під час додавання запису дії ви зможете змінити деякі з параметрів дії. Першим з таких параметрів є повторюваність дії у разі утримування натисненою кнопки на пульті керування. Подібна повторюваність може знадобитися для дії зі збільшення або зменшення гучності, але є небажаною для дії з відтворення/призупинення відтворення у програвачах. Другий параметр визначає, чи слід запускати програму, якщо її ще не запущено на час натискання кнопки. Подібний запуск є небажаним, якщо слід виконати дію, наприклад, з завершення роботи програми. Третім і останнім параметром є параметр визначення екземпляра програми, який має отримати наказ щодо виконання дії, якщо запущено декілька екземплярів програми. Якщо ви позначили пункт програми, для якої не передбачено запуску декількох екземплярів, відповідний пункт буде вимкнено.

Додавання параметрів дії

Параметри дій

Записи дій може бути створено автоматично за допомогою натискання кнопки майстра налаштування. Після натискання цієї кнопки &kremotecontrol; спробує встановити відповідність між кнопками та функціями. У діалоговому вікна автозаповнення буде показано пункти всіх можливих збірок шаблонів з прапорцями. Колір прапорця позначатиме степінь підтримки вашого пульта дистанційного керування профілем: повністю, частково або не підтримується. Зеленим буде позначено профіль, всі шаблони якого можна застосувати до вашого пульта, жовтим — лише деякі шаблони, червоним буде позначено профілі, які не вдалося пов’язати з кнопками вашого пульта дистанційного керування. Позначення профілю червоним кольором не означає, що ви не зможете ним скористатися. Вам лише треба буде його налаштувати, призначивши кнопки до дій вручну. Автозаповнення

Автоматичне створення дій за допомогою шаблонів

Зауваження: якщо ваш пульт віддаленого керування несумісний з жодним з профілів, ймовірно, ви не налаштували LIRC на використання просторів назв кнопок.

## Додаткова інформація

У цій главі ми обговоримо деякі речі, які можуть зацікавити досвідчених користувачів та розробників. За її допомогою ви зможете навчитися створенню власних профілів.

### Створення профілю

#### Вступ

За допомогою &kremotecontrol; можна користуватися майже всіма програмами, що підтримують роботу з &DBus;, без додаткових налаштувань. Але щоб програму легше було налаштовувати і щоб пункт програми з’явився у діалоговому вікні автоматичного заповнення, вам доведеться створити профіль для програми.

За допомогою профілю ви повідомите &kremotecontrol; (і користувачеві!) про те, які дії виконуються у відповідь на кожен з викликів &DBus;. Профіль — це різновид документації до викликів &DBus;. Вам не обов’язково описувати всі виклики &DBus; — достатньо лише тих, які будуть найкориснішими для користувачів (це зазвичай виклики «коригування інтерфейсу», а не виклики «збирання відомостей»).

#### Настанови щодо профілів

- &DBus;

  Переконайтеся, що програма, для якої ви бажаєте створити профіль, може керуватися за допомогою каналу сеансу &DBus;. Це можна перевірити так: спробуйте додати дії для цієї програми за допомогою &kremotecontrol; вручну. Чудовим інструментом для виконання цього завдання є також програма qdbusviewer, яка постачається разом з бібліотекою Qt4. За допомогою цієї програми ви зможете дізнатися про можливості керування програмою за допомогою &DBus;.

- Покрокова інструкція

  Після визначення відповідних функцій &DBus; вам слід описати їх у документі `appname.profile.xml`. Ось короткі настанови щодо створення таких документів:

  1. Спочатку створіть файл, що міститиме рядки, наведені нижче. Теґ name визначає коротку описову назву вашого профілю. За допомогою теґу description можна додати до вашого профілю опис. Крім того, додайте ваше ім’я у теґ author і номер версії у теґ version. Номер версії важливий для оновлення ваших профілів. &kremotecontrol; використовуватиме профіль з найвищим номером версії, якщо виявить у вашій системі профілі різних версій.

         <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>My Profile</name>
             <version>0.1</version>
             <author>Я</author>
             <description>Якийсь опис призначення профілю</description>
             <action>
                 <--  Пояснення щодо цього теґу буде надано нижче-->
             <action>

         </profile>

  2. Після створення каркасу профілю час додати до нього декілька шаблонів дій.

         <?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>My Profile</name>
             <version>0.1</version>
             <author>Я</author>
             <description>Якийсь опис призначення профілю</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Моя дія</name>
               <description>Призначення дії</description>
               <prototype>
                 <--  Пояснення щодо цього теґу буде надано нижче-->
               <prototype>
               <ifmulti>ifMultiOption</ifmulti>
             </action>

         </profile>

     Спочатку визначте унікальний ідентифікатор. Його буде використано &kremotecontrol; для прив’язки записі дій до шаблону, наприклад для читання опису. Ідентифікатор не повинен повторюватися у межах профілю. Атрибут button буде використано для автозаповнення. Повний список можливих назв кнопок можна знайти у файлі схеми profile.xsd. За допомогою атрибута repeat можна визначити, чи буде дія повторюватися, якщо ви утримуватимете натисненою кнопку на пульті. Якщо після натискання кнопки дії у програмі, яку ще не запущено, системі слід запустити цю програму, встановіть для атрибута autostart значення true. Атрибути button, repeat і autostart є необов’язковими. Якщо значення repeat і autostart не буде визначено, типовими значеннями вважатимуться false.

     Додайте коротку назву у теґ name та опису у теґ description. За допомогою властивості ifmulti можна визначити спосіб дій &kremotecontrol;, якщо на час натискання кнопки буде запущено декілька екземплярів програми. Ви можете скористатися такими значеннями властивості: sendtotop (надіслати виклик найвищому екземпляру у стосі вікон), sendtobottom (надіслати виклик найнижчому екземпляру у стосі вікон), sendtoall (надіслати всім екземплярам), dontsend (не надсилати виклик жодному екземпляру) і unique (можливий запуск лише одного екземпляра цієї програми). Якщо цей теґ не буде визначено, &kremotecontrol; вважатиме, що запуск декількох екземплярів програми неможливий, отже типовим значенням теґ буде unique.

  3. Далі, визначимо функцію &DBus;, яку слід виконати у тезі 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>My Profile</name>
             <version>0.1</version>
             <author>Я</author>
             <description>Якийсь опис призначення профілю</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Моя дія</name>
               <description>Призначення дії</description>

               <prototype>
                 <serviceName>org.приклад.програма</serviceName>
                 <node>Якийсь/Вузол</node>
                 <function>функція</function>
               </prototype>

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

         </profile>

     Теґ servicename містить назву служби &DBus; програми, наприклад org.kde.plasma-desktop. node містить відповідний вузол &DBus;, зокрема App. Додайте назву функції без значення, яке вона повертає і аргументів за допомогою теґу function. Приклад: toggleDashboard.

  4. Якщо функції слід передати аргументи, вам слід описати кожен з них: опис для користувача, тип і, необов’язково, типове значення. Зі списком підтримуваних типів можна ознайомитися у файлі схеми profile.xsd. Теґ comment має містити зрозумілий користувачеві опис призначення аргументу. Крім того, вам слід оголосити типове значення для кожного аргументу у тезі default. Зауважте, що у шаблонах з кнопкою слід вказувати типові значення всіх аргументів, інакше автозаповнення створюватиме помилкові записи функцій.

         <?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>My Profile</name>
             <version>0.1</version>
             <author>Я</author>
             <description>Якийсь опис призначення профілю</description>

             <action id="someUniquId"  repeat="true|false" button="someButton">
               <name>Моя дія</name>
               <description>Призначення дії</description>

               <prototype>
                 <serviceName>org.приклад.програма</serviceName>
                 <node>Якийсь/Вузол</node>
                 <function>функція</function>

                 <arguments>
                   <argument type="QString">
                     <comment>Додатковий коментар</comment>
                     <default>якесьЗначення</default>
                   </argument>
                 </arguments>

               </prototype>

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

         </profile>

#### Встановлення

Щоб перевірити та використовувати профіль, вам слід скопіювати його до `$(kde_datadir)/profiles` і перезапустити &kremotecontrol;.

Якщо ви бажаєте додати ваш профіль до типового пакунка &kde;, будь ласка, надішліть його команді розробки kdeutils на адресу kde-utils-devel@kde.org.