2Sep

Cómo vincular HotKeys globales a un programa WINE en Linux

¿Alguna vez ha instalado un programa de Windows en Linux con WINE, solo para descubrir que ya no vincula las teclas de acceso rápido del sistema? HTG tiene el trabajo que has estado buscando.

Imagen de djeucalyptus

Overview

Cualquiera que haya pensado en la idea de cambiar a Linux, probablemente se encuentre con el problema de que hay una aplicación de Windows que NECESITA para funcionar. Ya te hemos demostrado que puedes lograr esto usando WINE.

Para este escritor, la aplicación era una aplicación Text-To-Speech que utiliza el motor Microsoft SAPI4.Instalar el programa en WINE fue muy fácil, sin embargo, al completarlo, descubrí rápidamente que las teclas rápidas utilizadas para disparar las diversas acciones del programa( empezar a leer, dejar de leer, etc.) no funcionaban y que esto es algo conocido.problema con el VINO

Me alegra decir que después de eones de búsqueda, finalmente encontré la solución en la forma de una utilidad GNU que puede manipular la interfaz X.org usando funciones nativas. Si bien no es el único de su tipo, xdotool es el más fácil de conseguir y ya estaba en los repositorios de Ubuntu / Mint.

xdotool

El programa xdotool puede hacer muchas tareas relacionadas con la ventana desde la CLI, con eso dicho, las únicas dos que vamos a utilizar son "búsqueda" y "clave".La función de "búsqueda" simplemente hace eso, busca una ID de ventana / s según los parámetros que configuró para ella. La función "clave" le permite simular un golpe de tecla a una identificación de ventana.

Instalación y amp;configuración

Se supone que ya ha instalado WINE y el programa que necesita debajo. En este ejemplo usaremos Balabolka como la aplicación "Windows" porque es una buena réplica de freeware del programa original para el que necesitaba esta solución( segundo centro de voz).

Si también ha optado por usar Balabolka, debe activar su capacidad de teclas rápidas.
Nota: es posible que desee instalar TTSReader o 2nd speech center incluso en modo demostración, para que se instalen las voces SAPI.

Abra el programa y vaya a la configuración( Shift + F6) en "Opciones" - & gt;"Configuraciones".

Vaya a la pestaña de teclas rápidas y marque la casilla de verificación "Usar teclas rápidas globales".

Haga clic en Aceptar.

Déjelo funcionando en segundo plano para que pueda hacer su trabajo cuando le enganchemos las teclas.

Instale xdotool emitiendo:

sudo apt-get install xdotool

Enlace global

El programa xdotool por sí solo no nos ayuda a vincular globalmente teclas de acceso rápido, pero podemos usar el sistema de teclas de acceso rápido ya existente. Lo que haremos es crear un script simple que utilice xdotool para enviar las pulsaciones de teclas que queremos al programa Balabolka y llamarlo desde el sistema de teclas rápidas del sistema operativo.

Crea una secuencia de comandos llamada "start_read.sh" con el siguiente contenido:

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

Cree otro script esta vez llamado" stop_read.sh "con el siguiente contenido:

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

Nota: Sé que este es un trazador de líneas que no requiere una secuencia de comandos, pero el" Accesos directos de teclado "de Mint / Ubuntu no cooperaba con invocarlo directamente. Si sabes cómo hacerlo, por favor comparte en los comentarios a continuación.

Al frenar este comando a sus componentes, lo que vemos es:

  • La parte "-pid $( pgrep balabolka)", ejecuta un "pgrep" en el programa que queremos utilizar para determinar su ID de proceso. Esto reducirá el archivo xdotool de "búsqueda" a solo ese PID.
  • La parte "xdotool search -limit 1 -all. .. -name Balabolka" estrecha el archivo de búsqueda de xdotool aún más y limita las respuestas devueltas a 1. Como en nuestro caso, no importa cuál de los identificadores de ventanas devolvióel programa, que limita el resultado, actúa como un formateador para el comando "clave".Es posible que necesite masajear esta parte más si es importante para el programa que está usando.
  • La parte "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" envía la pulsación de tecla deseada al ID de la ventana que obtuvieron las partes anteriores.

Haga los guiones ejecutables.

Teclado Linux Mint accesos directos

Bajo Linux Mint, las teclas rápidas globales se configuran en el programa "Atajos de teclado".

Una vez abierto, haga clic en "Agregar" para crear un nuevo acceso directo personalizado:

Asigne un nombre y en "Comando" proporcione la ruta completa a uno de los scripts que hemos creado anteriormente. Repita el proceso para la segunda secuencia de comandos.

Ahora, en la columna "Accesos directos", haga clic en la palabra "Desactivado" para obtener la opción de establecer un nuevo combo de clave.
Nota: Si lo desea, puede usar algo distinto del predeterminado del programa. En cierto sentido, creará una "reasignación" de enlaces de teclas que, según el programa que utilice, estarían fuera de su control.

Pulsa el combo que has seleccionado y escucha la magia.

Teclado Ubuntu

En Ubuntu, el programa que establece las teclas rápidas globales se llama simplemente "Teclado".

Cambie a la pestaña "Accesos directos" y seleccione "Accesos directos personalizados".

Haga clic en el signo más para agregar un acceso directo. Ponle un nombre y en "Comando" dale la ruta completa a uno de los scripts que hemos creado arriba. Repita el proceso para la segunda secuencia de comandos.
Ahora haga clic en la palabra "Deshabilitado" para obtener la opción de establecer un nuevo combo de clave.

Nota: repitiendo en la nota de la sección Mint, puede, si lo desea, usar algo diferente al predeterminado del programa. En cierto sentido, creará una "reasignación" de enlaces de teclas que, según el programa que utilice, estarían fuera de su control.

Notas del autor

Cada vez que consideré seriamente mudarme a Linux, este problema fue el primero en mi lista de problemas. No es que Linux no tenga problemas, pero este fue el verdadero obstáculo, para mí.Lo he intentado una y otra vez, le pregunté a amigos / gente en el campo e incluso lo convertí en una recompensa. .. Estoy feliz de que esta saga haya terminado y que mi alma finalmente pueda descansar.
Tengo la esperanza de haber ayudado a alguien para que no tenga que pasar por la misma prueba.

Doc Brown: Me ha llevado casi treinta años y toda la fortuna de mi familia darme cuenta de la visión de ese día. Dios mío, ¿ha pasado tanto tiempo?