J'aimerais savoir ou il est possible de configurer le terminal GNOME de manière à ce que lorsque j'ouvre le terminal et qu'il y ait déjà une instance ouverte, il affiche cette instance et n'en ouvre pas une toute nouvelle.
J'aimerais savoir ou il est possible de configurer le terminal GNOME de manière à ce que lorsque j'ouvre le terminal et qu'il y ait déjà une instance ouverte, il affiche cette instance et n'en ouvre pas une toute nouvelle.
Réponses:
J'ai écrit un script shell simple en utilisant wmctrl pour donner le focus au terminal. Il fait exactement ce que je veux.
Tout d'abord, installez wmctrl sudo apt-get install wmctrl
.
Ensuite, lancez un éditeur de texte, copiez les lignes suivantes.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Enregistrez le fichier quelque part où vous conservez habituellement vos scripts shell. Dans mon cas, j'ai fait: ~/bin/single_instance.sh
cd dans le répertoire ( cd ~/bin
) et rendre le fichier exécutablechmod +x single_instance.sh
Maintenant, ouvrez le menu principal, sélectionnez Accessoires » Propriétés de la presse du terminal et remplacez la commande par le script:~/bin/single_instance.sh
Ouvrez Paramètres système »Clavier» Raccourcis . Désactivez le raccourci Launch Terminal en lui donnant un retour arrière. Créez un raccourci personnalisé. Remplissez à nouveau le chemin et le nom du script et donnez-lui la combinaison de touches ctrl + alt + t .
Vous avez terminé, terminal à instance unique ...
Ajoutez --tab à la commande du lanceur. Ensuite, vous vous retrouvez avec une seule application. ouvert.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
C'est le comportement par défaut si vous utilisez le raccourci Mod4+#
( Mod4
= Super = "Windows", #
est le numéro dans le lanceur) pour ouvrir n'importe quelle application.
Je voudrais ajouter mon propre script, car je le trouve extrêmement utile:
J'ai configuré le raccourci Ctrl + Alt + T pour exécuter ce script et je le trouve encore plus confortable que Guake ou 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
Je l'utilise avec QTerminal mais j'ai modifié pour l'adapter à vos besoins. Bonne chance