Mi piacerebbe sapere o è possibile configurare il Terminale GNOME in modo tale che quando apro il terminale e c'è già un'istanza aperta, mostrerà quell'istanza e non ne aprirò una nuova.
Mi piacerebbe sapere o è possibile configurare il Terminale GNOME in modo tale che quando apro il terminale e c'è già un'istanza aperta, mostrerà quell'istanza e non ne aprirò una nuova.
Risposte:
Ho scritto un semplice script di shell usando wmctrl per focalizzare l'attenzione su Terminal. Fa esattamente quello che voglio.
Innanzitutto, installa wmctrl sudo apt-get install wmctrl
.
Quindi, avvia un editor di testo, copia le seguenti righe.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Salvare il file da qualche parte in cui di solito si mantengono gli script della shell. Nel mio caso ho fatto: ~/bin/single_instance.sh
cd nella directory ( cd ~/bin
) e rendere eseguibile il filechmod +x single_instance.sh
Ora, apri il menu principale seleziona Accessori » Proprietà pressa terminale e sostituisci comando con lo script:~/bin/single_instance.sh
Apri Impostazioni di sistema »Tastiera» Scorciatoie . Disabilita il collegamento a Launch Terminal assegnandogli un backspace. Crea un collegamento personalizzato. Inserisci nuovamente il percorso e il nome dello script e assegnagli la combinazione di tasti ctrl + alt + t .
Fatto, terminale a istanza singola ...
Aggiungi --tab al comando di avvio. Quindi finisci con una sola app. Aperto.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
È il comportamento predefinito se si utilizza il collegamento Mod4+#
( Mod4
= Super = "Windows", #
è il numero nel programma di avvio) per aprire qualsiasi applicazione.
Vorrei aggiungere il mio script, poiché lo trovo estremamente utile:
Ho configurato Ctrl + Alt + T per eseguire questo script e lo trovo ancora più comodo di 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 ma l'ho modificato per adattarlo alle tue esigenze. In bocca al lupo