GNU/Linux >> Tutoriales Linux >  >> Linux

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

El 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, 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 una cadena única constante 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, puede ejecutar ./bringToFront firefox "Mozilla Firefox" .

  2. Ahora necesitamos vincular una tecla de acceso directo. Ejecutar gconf-editor y navegue por la estructura de carpetas a la izquierda hasta /apps/metacity/keybinding_commands .

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

  4. En el panel de la izquierda, selecciona 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, p. <Ctrl><Alt>F .

Ahora Control + Alt + 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 es reconocido por 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

Linux
  1. Comandos personalizados

  2. ¿Cómo ejecutar secuencias de comandos personalizadas en el complemento del dispositivo USB?

  3. ¿Está ejecutando una aplicación de 32 bits en Linux de 64 bits?

  4. ¿Iniciar la aplicación solo si aún no está abierta?

  5. Ejecute la aplicación de 64 bits en el sistema Ubuntu de 32 bits

Ejecute la línea de comandos de Linux en su iPad

Abra carpetas en cualquier aplicación de terminal de Nautilus

Cómo ejecutar ONLYOFFICE integrado con Nextcloud en Cloudron

Aplicación Cerebro:un código abierto equivalente a la función Spotlight de Mac OS X

Cómo ejecutar una aplicación .NET en Docker

¿Cómo ejecutar la terminal usando atajos de teclado en Gnome 2?