Cómo enlazar teclas de acceso rápido globales a un programa WINE en Linux
¿Alguna vez ha instalado un programa de Windows en Linux bajo WINE, solo para descubrir que ya no vincula las teclas de acceso rápido de todo el sistema? HTG tiene el trabajo que has estado buscando.
Imagen de djeucalyptus.
Visión general
Cualquiera que haya pensado en la idea de cambiar a Linux, probablemente se haya encontrado rápidamente con el problema de que hay una aplicación de Windows que NECESITA funcionar. Ya te hemos demostrado que puedes lograr esto usando WINE.
Para este escritor, la aplicación era una aplicación de texto a voz que utiliza el motor Microsoft SAPI4. Instalar el programa en WINE fue muy sencillo, sin embargo, al finalizar, rápidamente descubrí que las teclas de acceso rápido utilizadas para desencadenar las diversas acciones del programa (comenzar a leer, dejar de leer, etc.) no funcionaban y esto es un problema conocido. problema con el vino.
Me complace decir que después de eones de búsqueda, finalmente encontré la solución en forma de una utilidad GNU que puede manipular la interfaz X.org utilizando funciones nativas. Si bien no es el único de su tipo, xdotool es el más fácil de trabajar y ya estaba en los repositorios de Ubuntu / Mint..
xdotool
El programa xdotool puede realizar muchas tareas relacionadas con la ventana desde el CLI, dicho esto, las dos únicas que vamos a utilizar son "buscar" y "clave". La función de "búsqueda" hace precisamente eso, busca una ID de ventana / s de acuerdo con los parámetros que usted configuró. La función "clave" le permite simular un golpe de tecla a una ID de ventana.
Instalación y configuración
Se supone que ya ha instalado WINE y el programa que necesita debajo de él. En este ejemplo, usaremos Balabolka como la aplicación "Windows" porque es una buena réplica gratuita del programa original para el que necesitaba esta solución (segundo centro de voz).
Si también ha optado por utilizar Balabolka, debe activar su habilidad de teclas de acceso rápido.
Nota: es posible que desee instalar TTSReader o el segundo centro de voz incluso en modo de demostración, para que se instalen las voces de SAPI.
Abra el programa y vaya a la configuración (Shift + F6) en "Opciones" -> "Configuración".
Vaya a la pestaña de teclas de acceso rápido y marque la casilla de verificación "Usar teclas de acceso rápido globales".
Haga clic en Aceptar.
Deje que se ejecute en segundo plano para que pueda hacer su trabajo cuando le enganchamos las teclas..
Instala xdotool emitiendo:
sudo apt-get install xdotool
Enlace global
El programa xdotool por sí solo no nos ayuda a vincularnos globalmente con las 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 teclado que deseamos al programa Balabolka y llamarlas desde el sistema de teclas de acceso rápido del sistema operativo..
Cree un script llamado "start_read.sh" con el siguiente contenido:
clave xdotool --window $ (búsqueda xdotool --límite 1 --todos --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F9"
Cree otra secuencia de comandos esta vez llamada "stop_read.sh" con el siguiente contenido:
clave xdotool --window $ (búsqueda xdotool --límite 1 --todos --pid $ (pgrep balabolka) --name Balabolka) "ctrl + alt + F7"
Nota: Sé que se trata de una sola línea que no requiere una secuencia de comandos, pero el programa "Atajos de teclado" de Mint / Ubuntu, no cooperó simplemente invocándolo directamente. Si sabes cómo hacerlo, por favor comparte en los comentarios a continuación..
Frenando este comando a sus componentes, lo que vemos es:
- La parte “-pid $ (pgrep balabolka)”, ejecuta una “pgrep” en el programa que queremos usar para determinar su ID de proceso. Esto limitará el archivo xdotool de "búsqueda" a solo ese PID.
- La parte de "xdotool search -limit 1 -all ... allname-Balabolka", reduce aún más el archivo de búsqueda de xdotool y limita las respuestas devueltas a 1. Como en nuestro caso, no importa cuál de las ID de ventana devolvió programa, la limitación del 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 a la windowID que se obtuvo con las partes anteriores.
Hacer los scripts ejecutables..
Teclado Linux Mint atajos
En Linux Mint, las teclas de acceso rápido globales se configuran en el programa "Métodos abreviados de teclado".
Una vez abierto, haga clic en "Agregar" para crear un nuevo acceso directo personalizado:
Asígnele un nombre y debajo de "Comando" proporcione la ruta completa a uno de los scripts que hemos creado anteriormente. Repita el proceso para el segundo script..
Ahora, en la columna "Accesos directos", haga clic en la palabra "Deshabilitado" para obtener la opción de establecer un nuevo combo de teclas.
Nota: Puede, si lo desea, usar otra opción distinta a la predeterminada del programa. En cierto sentido, se crea una "reasignación" a los enlaces de teclas que, dependiendo del programa que utilice, de lo contrario, estarían fuera de su control..
Pulsa el combo que has seleccionado y escucha la magia..
Teclado de Ubuntu
En Ubuntu, el programa que establece las teclas de acceso rápido globales se llama "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. Asígnele un nombre y debajo de "Comando" proporcione la ruta completa a uno de los scripts que hemos creado anteriormente. Repita el proceso para el segundo script..
Ahora haga clic en la palabra "Deshabilitado" para obtener la opción de establecer un nuevo combo de teclas.
Nota: Repitiendo en la nota de la sección de Mint, puede, si lo desea, usar otra cosa que no sea la predeterminada del programa. En cierto sentido, se crea una "reasignación" a los enlaces de teclas que, dependiendo del programa que utilice, de lo contrario, 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í. He intentado una y otra vez, pregunté a amigos / personas 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..
Espero haber ayudado a alguien para que no tenga que pasar por la misma experiencia..
Doc Brown: Me ha llevado casi treinta años y toda la fortuna de mi familia darse cuenta de la visión de ese día. Dios mío, ha pasado tanto tiempo?