Terminator: ventana única, foco en el lanzamiento

8

Estoy configurando Terminator para mi escritorio. Yo uso el atajo Ctrl+ Alt+ Tpara iniciarlo. Como solo quiero que se ejecute una única instancia, la uso run-one terminatorcomo comando de inicio.

Ahora, si se está ejecutando una instancia de Terminator, no se inicia una nueva instancia, pero la instancia existente no se enfoca .

¿Alguna idea de cómo podría obtener la ventana de Terminator para enfocar?

Señor hyde
fuente

Respuestas:

4

Intente instalar wmctrl : sudo apt-get install wmctrl
ahora el comando wmctrl -a STRINGenfoca una ventana que contiene STRING en su título
para que su comando final sea:

run-one terminator; wmctrl -a Terminator
Denis
fuente
Gracias por la anotación. He encontrado una solución que funciona bastante bien, detallada a continuación.
Mr Hyde
8

Aquí hay un método que funciona sin run-oneasumir que wmctrlestá disponible:

wmctrl -xa terminator.Terminator || terminator

Esto supone que se está utilizando el nombre de clase de ventana predeterminado. Puede ser creativo si lo desea y utilizar un nombre de clase personalizado al iniciar terminator. Esto le permitirá mantener su acceso directo de terminador separado de una instancia de terminador normal :

wmctrl -xa MyCustomTerminator.Terminator || terminator -c MyCustomTerminator

Esto solo se basa en la respuesta de Denis sin la necesidad de hacerlo run-one.

loleary
fuente
¿Alguna idea de cómo hacer que cambie el enfoque?
Joe Eifert
Gran solución Tuve que usar bash -c 'wmctrl -xa terminator.Terminator || terminator'en Ubuntu 18.10 usando Gnome 3.30.1. De lo contrario, el acceso directo solo funcionaría una vez que Terminator ya se estuviera ejecutando.
stebu92
1

Aquí está el truco que he decidido usar run-one y xdotool

En /home/(user)/my_scripts/single_terminator_instance.sh

#!/usr/bin/bash

# run a single instance of terminator
/usr/bin/run-one /usr/bin/terminator

# search for the terminator window and focus!!!
/usr/bin/xdotool search --onlyvisible --class terminator windowactivate

Entonces

  1. Cambie el comando de acceso directo Terminator Main Menupara que apunte al script anterior
  2. En los atajos de teclado, Ctrl+ Alt+ Tactiva el script

Mientras buscaba en el i'net, también me topé con esto

Como soy nuevo en bash scripts, ¡agradezco cualquier refinamiento al hack!

Señor hyde
fuente
Más fácil: /usr/bin/wmctrl -xa terminator:-) en lugar de xdotool! Gracias Denis
Sr. Hyde
¡tienes razón! la manera correcta eswmctrl -xa terminator
Denis
Probé sus soluciones, pero run-one no funciona en mi computadora con Terminator. Siempre lanza una nueva instancia. ¿Tienes alguna idea de por qué? Gracias.
Tamás Barta
ps aux | grep terminatorno devuelve nada El proceso se ejecuta como x-terminal-emulator para mí, por lo que esa podría ser la causa. Hice una comprobación manual como esta: RUNNING = $ (ps aux | grep x-terminal-emulator | grep -v grep) if [[-z $ RUNNING]]; entonces x-terminal-emulator & fi
Tamás Barta
@ BartaTamás ¿Resolviste tu problema? Mi script es solo dos líneas de bash conectadas al atajo de teclado. Ahora lo uso con gnome-terminal y tmux, y estoy muy contento con la solución. Pero también funciona de manera confiable con el terminador. Quizás el mismo método abreviado de teclado se asigna dos veces (Ctrl + Alt + T). ¡Solo adivinando!
Sr. Hyde