Me gustaría saber o es posible configurar el Terminal GNOME de una manera que cuando abro el terminal y ya hay una instancia abierta, mostrará esa instancia y no abrirá una nueva.
Me gustaría saber o es posible configurar el Terminal GNOME de una manera que cuando abro el terminal y ya hay una instancia abierta, mostrará esa instancia y no abrirá una nueva.
Respuestas:
Escribí un script de shell simple usando wmctrl para dar el foco de Terminal. Hace exactamente lo que quiero.
Primero, instale wmctrl sudo apt-get install wmctrl
.
A continuación, inicie un editor de texto, copie las siguientes líneas.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Guarde el archivo en algún lugar donde generalmente guarda sus scripts de shell. En mi caso hice: ~/bin/single_instance.sh
cd al directorio ( cd ~/bin
) y hacer que el archivo sea ejecutablechmod +x single_instance.sh
Ahora, abra el Menú principal, seleccione Accesorios » Propiedades de prensa de terminal y reemplace el comando con el script:~/bin/single_instance.sh
Abra Configuración del sistema »Teclado» Accesos directos . Deshabilite el acceso directo de Terminal de lanzamiento dándole un espacio de retroceso. Haz un atajo personalizado. Nuevamente complete la ruta y el nombre del script y dele la combinación de teclas ctrl + alt + t .
Ya terminaste, terminal de instancia única ...
Agregue --tab al comando del iniciador . Entonces terminas con solo una aplicación. abierto.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
Es el comportamiento predeterminado si usa el acceso directo Mod4+#
( Mod4
= Super = "Windows", #
es el número en el iniciador) para abrir cualquier aplicación.
Me gustaría agregar mi propio script, ya que lo encuentro extremadamente útil:
Configuré el atajo Ctrl + Alt + T para ejecutar este script y lo encuentro aún más cómodo que Guake o Tilda.
#!/usr/bin/env sh
# APP is the binary name you see when you do ps
APP="gnome-terminal"
# WIN_CLASS is the window class you see when you do wmctrl -lx
WIN_CLASS="gnome-terminal-server.Gnome-terminal"
# Use the app from current workpace first, or any if not available
WORKSPACE=$(wmctrl -d | grep '\*' | cut -d ' ' -f1)
TPID=$(ps aux | pgrep $APP)
if [ "$TPID" ]
then
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | grep $WORKSPACE | awk 'NR == 1 {print $1}')
if [ "$QTERM_WIN" ]
then
wmctrl -ia $QTERM_WIN
else
# No valid app found in the current workspace, switch to any
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | awk 'NR == 1 {print $1}')
wmctrl -ia $QTERM_WIN
fi
else
$APP &
fi
Lo uso con QTerminal pero lo modifiqué para satisfacer sus necesidades. Buena suerte