Ich würde gerne wissen, oder es ist möglich, das GNOME-Terminal so einzurichten, dass beim Öffnen des Terminals und wenn bereits eine Instanz geöffnet ist, diese Instanz angezeigt wird und keine brandneue geöffnet wird.
Ich würde gerne wissen, oder es ist möglich, das GNOME-Terminal so einzurichten, dass beim Öffnen des Terminals und wenn bereits eine Instanz geöffnet ist, diese Instanz angezeigt wird und keine brandneue geöffnet wird.
Antworten:
Ich habe ein einfaches Shell-Skript mit wmctrl geschrieben, um den Terminal-Fokus festzulegen. Es macht genau das, was ich will.
Installieren Sie zuerst wmctrl sudo apt-get install wmctrl
.
Starten Sie als Nächstes einen Texteditor und kopieren Sie die folgenden Zeilen.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Speichern Sie die Datei an einem Ort, an dem Sie normalerweise Ihre Shell-Skripte aufbewahren. In meinem Fall habe ich: ~/bin/single_instance.sh
CD in das Verzeichnis ( cd ~/bin
) und machen Sie die Datei ausführbarchmod +x single_instance.sh
Nun öffnen Hauptmenü wählen Zubehör »Klemmen drücken Eigenschaften und ersetzen Befehl mit dem Skript:~/bin/single_instance.sh
Öffnen Sie Systemeinstellungen »Tastatur» Verknüpfungen . Deaktivieren Sie die Verknüpfung zum Starten des Terminals, indem Sie eine Rücktaste eingeben. Erstellen Sie eine benutzerdefinierte Verknüpfung. Füllen wieder in den Pfad und den Namen für das Skript und geben ihm die Tastenkombination Strg + Alt + t .
Sie sind fertig, Einzelinstanz-Terminal ...
Fügen Sie dem Launcher-Befehl --tab hinzu . Dann haben Sie nur noch eine App. öffnen.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
Dies ist das Standardverhalten, wenn Sie zum Öffnen einer Anwendung die Verknüpfung Mod4+#
( Mod4
= Super = "Windows" -Taste, #
Nummer im Launcher) verwenden.
Ich möchte mein eigenes Skript hinzufügen, da ich es äußerst nützlich finde:
Ich habe die Tastenkombination Strg + Alt + T so konfiguriert, dass dieses Skript ausgeführt wird, und finde es noch komfortabler als Guake oder 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
Ich benutze es mit QTerminal, aber ich habe es an Ihre Bedürfnisse angepasst. Viel Glück