Saltar al contenido

Tecla de acceso directo/acceso directo personalizado para abrir/traer al frente una aplicación

Si hallas algún error con tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.

Solución:

los wmctrl programa es justo lo que estás buscando (sudo apt-get install wmctrl). Puedes usar el wmctrl -a "AppTitle" Comando para traer la aplicación al frente. wmctrl -l enumerará todas las ventanas disponibles, por lo que debería ser fácil escribir un script de shell que verifique si su programa se está ejecutando y lo inicia o lo trae al frente. Luego, puede vincular eso a un atajo de teclado.

Primero guarde el siguiente script en algún lugar, lo usaré /home/jtb/code/bringToFront. Se necesitan dos argumentos, el primero es lo que escribiría en la terminal para iniciar el programa, el segundo es una subcadena del título de la ventana del programa. Si no hay un único constante string en el título, tendrá que trabajar un poco más para encontrar la ventana del programa.

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. Con el script en su directorio actual, ejecute chmod +x bringToFront para hacer que el script sea ejecutable. Entonces asegúrese de que funcione; para iniciar/enfocar Firefox podrías ejecutar ./bringToFront firefox "Mozilla Firefox".

  2. Ahora necesitamos enlazar un atajo key. Correr gconf-editor y navegue por la estructura de carpetas a la izquierda para /apps/metacity/keybinding_commands.

  3. Haga doble clic en el primero command con un valor en blanco, probablemente command_1. Escriba la ruta completa al script y proporcione los dos parámetros, por ejemplo /home/jtb/code/bringToFront firefox Firefox.

  4. En el panel de la izquierda, seleccione global_keybindings, la siguiente carpeta hacia arriba. Encuentra el run entrada que coincida con el comando que acaba de definir, probablemente run_command_1. Haga doble clic en él y escriba el atajo de teclado que desea usar. Ponga los modificadores entre paréntesis angulares, por ejemplo F.

Ahora Control + alternativa + F traerá su ventana de Firefox al frente, o la iniciará si aún no se está ejecutando.

Aquí hay otra forma de hacerlo con xdotools. El proceso que aparece se reconoce mediante la línea de comando emitida para ejecutarlo (no se necesita un archivo pid o un título de ventana único).

#!/bin/bash

cmd="[email protected]"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline 

pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline

if [ -z "$pid" ]; then # no pid
    exec $cmd
    # run command
else
    winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
    # first visible window owned by pid
    xdotool windowactivate $winid
    # give window focus
fi

Si te sientes estimulado, puedes dejar un ensayo acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.