2Sep

Como vincular HotKeys globais a um programa WINE no Linux

click fraud protection

Alguma vez você já instalou um programa do Windows no Linux sob o VINHO, apenas para descobrir que ele não liga as hot-keys do sistema mais? HTG tem o trabalho que você tem procurado.

Imagem por djeucalyptus

Visão geral

Todo mundo que pensou mesmo na idéia de mudar para o Linux provavelmente provavelmente encontrou o problema de que existe um aplicativo do Windows que você NECESITA funcionar. Nós já mostramos que você pode realizar isso usando o VINHO.

Para este gravador, o aplicativo foi um aplicativo de texto para fala que utiliza o mecanismo Microsoft SAPI4.Instalar o programa em WINE foi uma brisa, no entanto, após a conclusão, descobri rapidamente que as teclas de atalho utilizadas para desencadear as várias ações do programa( iniciar a leitura, parar de ler, etc.) não funcionavam e que isso era conhecidoproblema com o VINHO.

Fico feliz em dizer que depois de eons de pesquisa, finalmente encontrei a solução na forma de um utilitário GNU que pode manipular a interface X.org usando funções nativas. Embora não seja o único de seu tipo, o xdotool é o mais fácil de trabalhar e já estava nos repositórios Ubuntu / Mint.

instagram viewer

xdotool

O programa xdotool pode fazer muitas tarefas relacionadas à janela da CLI, com isso dito, os únicos dois que vamos utilizar são "pesquisa" e "chave".A função "pesquisa" faz exatamente isso, procura uma ID de janela / s de acordo com os parâmetros que você definiu para ela. A função "chave" permite simular um traçado de chave para uma ID de janela.

Instalação &configuração

Supõe-se que você já instalou o WINE e o programa que você precisa. Neste exemplo, usaremos Balabolka como o aplicativo "Windows" porque é uma boa réplica freeware do programa original que eu precisava desta solução para( 2º centro de fala).

Se você optou por usar Balabolka também, você precisa ativar sua habilidade de hotkeys.
Nota: Você pode querer instalar o TTSReader ou o 2º centro de fala mesmo no modo de demonstração, para que as vozes SAPI sejam instaladas.

Abra o programa e vá para as configurações( Shift + F6) em "Opções" - & gt;"Configurações".

Vá para a guia de atalhos rápidos e marque a caixa de seleção para "Usar hotkeys globais".

Clique em OK.

Deixe-o funcionar em segundo plano para que ele possa fazer o seu trabalho quando ligamos as batidas de tecla.

Instale o xdotool emitindo:

sudo apt-get install xdotool

Ligação global

O programa xdotool por conta própria não nos ajuda a se ligar globalmente às teclas de atalho, mas podemos usar o sistema de hotkey OS já existente. O que faremos é criar um script simples que utilize o xdotool para enviar as batidas de teclas que queremos ao programa Balabolka e chamá-lo do sistema de hotkey do sistema operacional.

Crie um script chamado "start_read.sh" com o seguinte conteúdo:

xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka) --name Balabolka) "ctrl + alt +F9 "

Crie outro script desta vez chamado" stop_read.sh "com o seguinte conteúdo:

xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka) --name Balabolka)"Ctrl + alt + F7 "

Nota: Eu sei que este é um forro único que não requer um script, mas o programa Mint / Ubuntu" Teclas de atalhos de teclado "não estava cooperando apenas invocando ele diretamente. Se você sabe como fazê-lo, compartilhe os comentários abaixo.

Travando este comando para os seus componentes, o que vemos é:

  • A parte "-pid $( pgrep balabolka)", executa um "pgrep" no programa que queremos usar para verificar o ID do processo. Isso irá restringir o xdotool arquivado de "pesquisa" apenas para esse PID.
  • A parte "xdotool search -limit 1 -all. .. -name Balabolka" restringe ainda mais o arquivo de pesquisa do xdotool e limita as respostas retornadas a 1. Como no nosso caso, não importa qual das IDs da janela retornou deO programa, limitando o resultado, atua como formatador para o comando "chave".Você pode achar que você precisa massagear esta parte mais se é importante para o programa que você está usando.
  • A "chave xdotool -window% WINDOW_ID%" ctrl + alt + F7 "" parte, envia o toque de tecla desejado para o windowID que foi obtido pelas peças anteriores.

Faça os scripts executáveis.

Linux Mint Keyboard atalhos

No Linux Mint, as teclas rápidas globais estão definidas no programa "Teclas de atalhos".

Uma vez aberto Clique em "Adicionar" para criar um novo atalho personalizado:

Dê um nome e sob "Comando" dê o caminho completo para um dos scripts que criamos acima. Repita o processo para o segundo script.

Agora, na coluna "Atalhos", clique na palavra "Desabilitada" para obter a opção para definir uma nova combinação de teclas.
Nota: Você pode, se desejar, usar algo diferente, em seguida, o padrão do programa. Em certo sentido, criando uma "remapeação" para ligações de chaves que, dependendo do programa que você usa, estaria, de outra forma, fora de seu controle.

Acerte a combinação que você selecionou e ouça a magia.

Ubuntu Keyboard

No Ubuntu, o programa que define as hotkeys globais é chamado de "Teclado".

Mude para a guia "Atalhos" e selecione "Atalhos personalizados".

Clique no sinal de mais para adicionar um atalho. Dê um nome e sob "Comando" dê o caminho completo para um dos scripts que criamos acima. Repita o processo para o segundo script.
Agora, clique na palavra "Desativado" para obter a opção para definir uma nova combinação de teclas.

Nota: Repetindo na nota da seção Mint, você pode, se desejar, usar algo diferente, em seguida, o padrão do programa. Em certo sentido, criando uma "remapeação" para ligações de chaves que, dependendo do programa que você usa, estaria, de outra forma, fora de seu controle.

Notas do autor

Toda vez que considero seriamente a mudança para o Linux, essa questão foi a primeira na minha lista de problemas. Não é que o Linux não tenha problemas, mas este foi o verdadeiro obstáculo para mim. Eu tentei uma e outra vez, perguntei a amigos / pessoas no campo e até consegui uma recompensa. .. Estou feliz que esta saga terminou e que minha alma finalmente possa descansar.
Espero ter ajudado alguém a não ter que passar pela mesma provação.

Doc Brown: Levou-me quase trinta anos e toda a minha fortuna familiar para realizar a visão daquele dia. Meu Deus, foi tão longo?