# Configuração dos Controles Remotos do KDE

## Introdução

Este módulo permite-lhe configurar os seus controles remotos. Você poderá atribuir ações que serão executadas quando pressionar no botão. As ações poderão iniciar as aplicações, controlá-las ou executar comandos do sistema, como por exemplo encerrar o seu computador.

### Requisitos

Para usar o &kremotecontrol;, você terá que configurar uma infraestrutura de controles remotos compatível no seu computador. Neste momento, só existe disponível uma infraestrutura para o LIRC. Se o LIRC estiver devidamente configurado, o ícone do &kremotecontrol; irá acender em vermelho . Caso contrário, aparecerá em cinza e tracejado .

Para mais informações sobre o LIRC, vá para a página Web respectiva em http://www.lirc.org.

## Uso

O módulo de configuração consiste em duas listas. A lista da esquerda mostra os comandos disponíveis e os seus modos. A lista à direita mostra todas as ações configuradas para o comando e modo selecionados no momento. Configuração do KRemoteControl Listas dos comandos e dos modos e ações configurados

### Controles remotos e modos

Cada controle remoto pode ter um número diferente de modos. Ter modos múltiplos permite que os botões executem ações diferentes em situações diferentes. Pense nisso como um controle-remoto multi-função de uma TV/Video/Parabólica/DVD. Em vez de usar controles diferentes para os diversos aplicativos, você pode mudar o comportamento de um controle remoto para adaptá-lo ao aplicativo criando um modo diferente e alternando para ele quando necessário. As ações definidas diretamente para o controle remoto estarão sempre disponíveis, independente do modo que o controle esteja atualmente. Ações definidas em um modo somente são executadas se o controle estiver atualmente definido para aquele modo. Cada controle remoto somente pode estar em um determinado modo por vez. Ele pode também não estar em nenhum modo específico, o que significa que somente as ações sempre disponíveis serão executadas ao se pressionar um botão. Você pode também definir o modo padrão, que será o modo automaticamente atribuído na inicialização.

Você poderá adicionar modos a um controle remoto, selecionando o comando e usando o botão + ao lado da lista. Ao criar um modo, você terá que indicar um nome para ele. Opcionalmente, poderá atribuir um botão que será usado para ativar o modo, bem como um ícone a usar nas notificações deste modo. Você poderá apagar os modos, selecionando-os e usando o botão -. Adicionar modo Adicionar um novo modo

Por padrão, se existirem vários modos com o mesmo botão atribuído, este é usado para circular pelos vários modos. Desta forma, poderá agrupar os seus modos. Por exemplo, você poderá atribuir um botão chamado Música para circular pelos modos do &amarok; e do &juk;, enquanto um botão Vídeo poderia circular pelos modos do &dragon; ou do KMplayer. Se preferir, por outro lado, ter um botão para circular por todos os modos, assim como um segundo para circular na ordem inversa pelos modos. Você poderá definir este comportamento nas preferências de um dos comandos, selecionando-o na lista e pressionando o botão de edição. Editar o controle Editar um controle

### Ações

Depois de selecionar um controle ou um modo, você poderá adicionar ações a ele com o botão + à direita. Existem duas formas diferentes de criar ações: usando um modelo ou navegando no barramento de sessão do D-Bus manualmente. AddAction Adicionar uma ação

A criação das ações com os modelos é simples, mas limitada. Você poderá encontrar modelos para as aplicações mais comuns, como o &amarok; ou o lançador de programas do &kde;, ou ainda para alguns comandos do sistema, como o encerramento do seu computador. Estes modelos estão recolhidos em perfis que os agrupam em tarefas semelhantes. Por exemplo, existe um perfil chamado Gerenciamento de energia que contém modelos para encerrar ou suspender o seu computador. AddProfileAction Adicionar uma ação usando um modelo

A criação de ações, através da navegação pelo D-Bus, apresenta todas as aplicações atualmente em execução. Você poderá navegar em todas elas e nas suas funções. Isto necessita de uma compreensão básica de como funciona o D-Bus, mas você poderá usar mais aplicações e funções diferentes das da lista de modelos. AddDBusAction Adicionar uma ação que use o D-Bus

Ao adicionar uma ação, você poderá ajustar mais algumas opções. A primeira define se as ações são executadas de forma repetida, quando mantiver pressionado o botão do controle remoto. Este é um comportamento útil para algumas ações, como o aumento ou diminuição do volume, mas poderão ser indesejados para outras ações, como a pausa/continuação de uma música. A segunda define se a aplicação de destino deverá ser iniciada, caso ainda não esteja, quando pressionar o botão. A terceira e última define qual a instância que deverá receber a ação, caso exista mais que uma instância em execução. Se tiver selecionado uma aplicação que não possa ter várias instâncias em execução, esta opção está desativada.

AddActionOptions Opções das ações

As ações também poderão ser preenchidas automaticamente com o botão do assistente. Isto significa que o &kremotecontrol; poderá tentar fazer uma correspondência dos botões às funções por si. A janela de preenchimento automático mostra todas as coleções de modelos disponíveis com uma bandeira. Dependendo da cor da bandeira, o seu comando poderá ser suportado por completo, parcialmente ou não suportado pelo perfil em si. O verde significa que todos os modelos têm uma correspondência no seu controle, o amarelo significa que existe uma correspondência parcial e o vermelho corresponde à ausência total de correspondência aos botões do seu controle. Isto não significa que não poderá usar esses modelos. Simplesmente terá de configurá-los um a um, definido você mesmo o botão desejado. AutoPopulate Gerar automaticamente as ações com os modelos

Nota: Se o seu controle remoto não for compatível com nenhum perfil, você poderá não ter configurado o LIRC para usar os espaços de nomes.

## Informações avançadas

Este capítulo irá discutir mais algumas informações que poderão ser interessantes para usuários avançados ou programadores. Você irá aprender a criar os seus próprios perfis.

### Criar um perfil

#### Introdução

Você poderá usar praticamente todas as aplicações com suporte para &DBus; no &kremotecontrol;, sem quaisquer outras ações. Contudo, para oferecer uma configuração amigável e para que a aplicação apareça na janela de preenchimento automático, você poderá criar um perfil para ela.

Um perfil diz ao &kremotecontrol; (e ao utilizador!) o que as várias chamadas de &DBus; fazem. Essencialmente, é um tipo de documentação para as chamadas de &DBus;. Você não tem que incluir todas as chamadas de &DBus; - apenas as que acha que os usuários poderão tirar algum benefício (normalmente chamadas de ajuste da interface em vez de chamadas de recolhimento de informações).

#### HowTo de Perfis

1. #### &DBus;

   Certifique-se de que a aplicação, para a qual deseja criar o perfil, oferece funções no barramento de sessão do &DBus;. Você poderá verificar isso se tentar adicionar ações para essa aplicação, usando o método manual no &kremotecontrol;. O qdbusviewer, uma aplicação que vem com a sua instalação do Qt4, também é uma ótima ferramenta para descobrir as capacidades de &DBus; das aplicações.

2. #### Passo-a-passo

   Assim que tenha descoberto as funções apropriadas de &DBus;, você terá que descrevê-las num documento `aplicação.profile.xml`. Aqui está um guia rápido sobre como criar esses arquivos:

   1. Crie primeiro um arquivo novo que contém os dados abaixo. A marca name define um nome curto e descritivo do perfil. Adicione uma descrição do perfil na marca description. Adicione também o seu nome na marca author e um número de versão na marca version. O número de versão é importante quando atualizar o seu perfil. O &kremotecontrol; irá usar o perfil com o maior número de versão, caso existam várias versões disponíveis no seu sistema.

          <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>Meu Perfil</name>
              <version>0.1</version>
              <author>Eu</author>
              <description>Alguma informação descritiva sobre o que o perfil faz</description>
              <action>
                  <--  Esta marca será explicada no próximo passo -->
              <action>

          </profile>

   2. Depois de ter criado o esqueleto do perfil, está na hora de adicionar alguns modelos de ações.

          <?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>Meu Perfil</name>
              <version>0.1</version>
              <author>Eu</author>
              <description>Alguma informação descritiva sobre o que o perfil faz</description>

              <action id="umIdUnico"  repeat="true|false" button="umBotao">
                <name>Minha Ação</name>
                <description>O que esta ação faz</description>
                <prototype>
                  <--  Esta marca será explicada no passo seguinte -->
                </prototype>
                <ifmulti>ifMultiOption</ifmulti>
              </action>

          </profile>

      Defina primeiro um identificador único. Ele será usado pelo &kremotecontrol; para corresponder as ações existentes ao modelo, por exemplo para ler a descrição. Este identificador deverá ser único em todo o perfil. O atributo button é usado para a função de preenchimento automático. Veja o arquivo do esquema profile.xsd para obter uma lista completa de todos os nomes de botões disponíveis. O atributo repeat diz se a ação deverá ser executada várias vezes, caso o botão do comando seja mantido pressionado. Se a aplicação deverá ser iniciada quando pressionar um botão, caso não esteja ativa, configure o autostart como sendo 'true' (verdadeiro). Os atributos button, repeat e autostart são opcionais. Se o repeat e o autostart não estiverem definidos, serão ambos igual a false (falso).

      Adicione um nome curto à marca name, bem com uma descrição, usando a marca description. A propriedade ifmulti define o que o &kremotecontrol; deverá fazer, caso existam várias instâncias em execução, quando pressionar um botão. Você poderá usar os seguintes valores para esta propriedade: sendtotop (envia a chamada para a instância ativada no topo das janelas empilhadas), sendtobottom (envia a chamada para a instância abaixo de todas as outras janelas), sendtoall (envia para todas as instâncias), dontsend (não envia a ação para nenhuma instância) e unique (Esta aplicação não permite a execução de várias instâncias). Se esta marca não estiver definida, o &kremotecontrol; assume que as aplicações não podem ser executadas várias vezes, sendo o valor padrão igual a unique.

   3. Depois, defina a função de &DBus; que deverá ser executada na marca 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>Meu Perfil</name>
              <version>0.1</version>
              <author>Eu</author>
              <description>Alguma informação descritiva sobre o que o perfil faz</description>

              <action id="umIdUnico"  repeat="true|false" button="umBotao">
                <name>Minha Ação</name>
                <description>O que esta ação faz</description>

                <prototype>
                  <serviceName>org.exemplo.aplicacao</serviceName>
                  <node>Um/Nó</node>
                  <function>funcao</function>
                </prototype>

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

          </profile>

      O servicename contém o nome do serviço de &DBus; para a aplicação, ⪚ org.kde.plasma-desktop. O node contém o nó respectivo de &DBus;, como por exemplo Aplicação. Adicione o nome da função, sem o valor de retorno nem os argumentos, usando a marca function. Por exemplo comutarPainel.

   4. Se a função tiver argumentos, você terá que descrever cada um deles, indicando uma descrição para o usuário, um tipo e, opcionalmente, um valor padrão. Você poderá encontrar uma lista com os tipos suportados no arquivo de esquema profile.xsd. A marca comment deverá conter uma descrição amigável sobre o objetivo do argumento. Deverá também declarar um valor padrão para cada argumento, dentro das marcas default. Lembre-se que os modelos que contêm um botão terão de indicar um valor por omissão para todos os argumentos, caso contrário a função de preenchimento automático irá produzir funções inválidas.

          <?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>Meu Perfil</name>
              <version>0.1</version>
              <author>Eu</author>
              <description>Alguma informação descritiva sobre o que o perfil faz</description>

              <action id="umIdUnico"  repeat="true|false" button="umBotao">
                <name>Minha Ação</name>
                <description>O que é que esta ação faz</description>

                <prototype>
                  <serviceName>org.exemplo.aplicacao</serviceName>
                  <node>UmNó</node>
                  <function>funcao</function>

                  <arguments>
                    <argument type="QString">
                      <comment>Comentário adicional</comment>
                      <default>umValor</default>
                    </argument>
                  </arguments>

                </prototype>

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

          </profile>

#### Instalação

Para testar e usar o perfil, você terá que copiá-lo para a pasta `$(kde_datadir)/profiles` e reiniciar o &kremotecontrol;.

Se você quiser contribuir o perfil para o &kde; SC, envie-o por favor para a equipe do 'kdeutils' em kde-utils-devel@kde.org.