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

## Введение

Этот модуль позволяет настроить дистанционное управление. Вы можете назначить действия на нажатия кнопок пульта. К примеру, можно настроить запуск приложений, управление ими или системные действия (например, выключение компьютера).

### Системные требования

Для использования &kremotecontrol; должен быть настроен совместимый движок дистанционного управления. Сейчас поддерживается только LIRC. Если он настроен правильно, значок &kremotecontrol; в системном лотке загорится красным . В противном случае, он будет серым и перечёркнутым .

Более подробную информацию о LIRC смотрите на сайте http://www.lirc.org.

## Использование

Модуль конфигурации состоит из двух списков. В первом перечислены доступные пульты и их режимы. Во втором — настроенные для выделенного пульта и режима действия. Настройка инфракрасного пульта дистанционного управления в KDE Списки пультов и настроенных режимов и действий

### Пульты дистанционного управления и режимы

Каждый пульт дистанционного управления может иметь несколько режимов. Их наличие позволяет назначить одной и той же кнопке различные действия для различных ситуаций. Хороший пример — многоцелевые пульты дистанционного управления для ТВ/Видео/Спутниковый/DVD. Вместо использования нескольких пультов с несколькими приложениями, можно использовать один пульт в различных режимах, переключаясь между ними при необходимости. Действия, определённые для самого пульта, доступны вне зависимости от текущего режима. Действия, определённые для режима, работают только при активированном режиме. Также можно указать режим по умолчанию.

Режимы для пульта можно добавить, выбрав пульт и нажав кнопку +. При создании режима нужно указать его название. Также можно указать, какой кнопкой переключаться на этот режим и какой значок используется для уведомлений этого режима. Удалить режим можно, щёлкнув на кнопке -. Добавление режима Добавление режима

По умолчанию, если для одной кнопки назначены разные режимы, можно переключаться между ними этой кнопкой. К примеру, можно присвоить кнопке AUDIO переключение между режимами для &amarok; и &juk;, а кнопке VIDEO — переключение между режимами &dragon; и KMPlayer. Также можно присвоить одной кнопке перебор режимов, а другой — перебор режимов в обратном порядке. Изменение конфигурации пульта Изменение конфигурации пульта

### Действия

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

Создание действий из шаблонов легче, но ограничено в возможностях. Шаблоны присутствуют для различных приложений (например, &amarok; или меню запуска приложений &kde;) или системных команд, как, например, выключение компьютера. Эти команды собраны в профили, объединяющие их по схожести действий. К примеру, профиль Управление питанием включает шаблоны для выключения или перевода в спящий режим компьютера. Добавление действия к профилю Добавление действия из шаблона

Создание действий с помощью просмотра D-Bus показывает запущенные приложения (можно просматривать их функции). Нужно понимать, как работает D-Bus, но так возможно создать больше действий, чем в списке шаблонов. Добавление действия D-Bus Добавление действия с помощью D-Bus

При создании действия можно указать несколько параметров. Первый определяет, повторяются ли действия при удержании кнопки на пульте (это может полезно для таких действий, как регулировка громкости). Второй показывает, должно ли быть запущено приложение при нажатии кнопки пульта, если оно ещё не запущено. Третий определяет, какое окно приложения из запущенных должно реагировать на нажатие.

Параметры добавления действия Параметры добавления действия

Действия также можно определить с помощью мастера. &kremotecontrol; попытается установить соответствия между кнопками и действиями. Цвет флага показывает, насколько ваш пульт поддерживается профилем (зелёный — полная поддержка, желтый — частичная, красный — не поддерживается совсем). Но это не значит, что использовать шаблоны нельзя — их просто придётся настроить для каждой кнопки. Автоматическое заполнение Автоматическая генерация действий с использованием шаблонов

Заметьте: Если пульт не поддерживается ни одним шаблоном, это, возможно, значит, что LIRC настроен без пространств имён.

## Продвинутая информация

Эта глава затрагивает аспекты, интересные продвинутым пользователям или разработчикам и учит созданию своего профиля.

### Создание профиля

#### Введение

Практически все приложения, совместимые с &DBus;, могут быть использованы с &kremotecontrol; без каких-либо дополнительных действий. Но для того, чтобы его было легче настроить, следует создать профиль.

Профиль предназначен для сообщения &kremotecontrol; и пользователю, какие вызовы &DBus; нужно произвести. Это чем-то напоминает документацию по &DBus;. Не следует включать все вызовы — нужны только те, которыми может воспользоваться конечный пользователь (обычно это методы для конфигурации, а не для сбора информации).

#### Как создать профиль

1. #### DBus

   Убедитесь, что приложение, для которого создаётся профиль, предоставляет методы шины &DBus;. Это можно проверить, добавив действия &kremotecontrol; для этого приложения вручную. Приложение qdbusviewer из стандартной поставки Qt4 также подходит для исследования возможностей приложения.

2. #### Шаг за шагом

   Когда необходимые функции &DBus; найдены, их нужно описать в файле `имя_приложения.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>Мой профиль</name>
              <version>0.1</версия>
              <author>Me</автор>
              <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>Мой профиль</name>
              <version>0.1</версия>
              <author>Me</автор>
              <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 определяет, должно ли быть запущено приложение при нажатии кнопки пульта, если оно ещё не запущено. Параметры button, repeat и autostart указывать необязательно (по умолчанию repeat и autostart будут установлены в нет).

      Добавьте короткое имя и описание (теги name и description). Параметр ifmulti показывает, что &kremotecontrol; делать, если у приложения открыто больше одного окна. Значения: sendtotop (послать самому верхнему окну), sendtobottom (послать самому нижнему окну), sendtoall (послать всем), dontsend (не посылать никому) и unique (это приложение имеет только одно окно). Значение по умолчанию — unique.

   3. Затем определите в теге prototype функцию &DBus;, которая должна быть выполнена:

          <?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>Мой профиль</name>
              <version>0.1</версия>
              <author>Me</автор>
              <description>;Описание того, что профиль делает</description>

              <action id="someUniquId"  repeat="true|false" button="someButton">
                <name>Моё действие</name>
                <description>Что оно делает</description>

                <prototype>
                  <serviceName>org.example.application</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 нужно указать значение по умолчанию (не обязательно, но требуется, если установлен тег button).

          <?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>Мой профиль</name>
              <version>0.1</версия>
              <author>Me</автор>
              <description>;Описание того, что профиль делает</description>

              <action id="someUniquId"  repeat="true|false" button="someButton">
                <name>Моё действие</name>
                <description>Что оно делает</description>

                <prototype>
                  <serviceName>org.example.application</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-utils-devel@kde.org.