¿Cómo cambio al programa que ya se está ejecutando usando la terminal?
Por ejemplo:
firefox abre una nueva ventana de firefox.
¿Hay un comando que enfocará la ventana de Firefox ya abierta?
¿Cómo cambio al programa que ya se está ejecutando usando la terminal?
Por ejemplo:
firefox abre una nueva ventana de firefox.
¿Hay un comando que enfocará la ventana de Firefox ya abierta?
Respuestas:
Suponiendo que tiene instalado wmctrl (ejecute sudo apt-get install wmctrlsi no):
El comando:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Levantaría la últimagedit ventana abierta . Reemplácelo por cualquier otra aplicación.
pgrep gedit
obtiene el pid de gedit
wmctrl -lp
enumera todas las ventanas y el pid al que pertenecen
awk '{ print $1 }'
se separa de la identificación de la ventana (la primera cadena de la línea)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
por lo tanto, encuentra el id. de ventana de la última ventana creada gedit(la salida de wmctrl -lpenumera las ventanas en un orden cronológico de creación, si la aplicación tiene varias ventanas, tail -1devuelve la última).
wmctrl -ia
posteriormente levanta la ventana por su window-id
... para ejecutarse con la aplicación como argumento:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shEjecútelo como (p. Ej.)
/path/to/switchto.sh firefox
Teóricamente el comando:
xdotool search --class gedit windowactivate
debería hacer (más o menos) lo mismo; debería abrir la primera ventana encontradagedit en este caso.
Sin embargo, parece menos robusto. En mi sistema (Unidad) no hizo nada en absoluto.
Si ha ejecutado Firefox usando firefox &, puede usar jobspara ver su número. Para llevarlo a primer plano, escriba %n firefoxcuál nrepresenta su número. Ejemplo:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
También puedes "matar" el programa:
sabrina@ubuntu:~$ kill %1