Fokussieren Sie das vorhandene Terminal mit der Tastenkombination "Strg-Alt-T"

16

Ich neige dazu, das Terminal viel zu benutzen,

Also habe ich mich gefragt , ob es einen Weg gibt ist kann ich Ctrl+ Alt+ Tfokussieren das bestehende Terminal , wenn es einen gibt, sonst ein neues Terminal erstellen?

Hagel
quelle

Antworten:

24

Erstellen Sie ein kleines Skript, mit dem das GNOME-Terminal aufgerufen wird:

echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

oder wenn Sie überprüfen möchten, ob das Terminal bereits läuft, verwenden Sie:

echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh

Dadurch wird das Skript ~ / raiseterminal.sh mit folgendem Inhalt erstellt:

if ps aux | grep "[g]nome-terminal" > /dev/null                                                                                                                                                                                
 then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)                                                                                                                                            
 else gnome-terminal&                                                                                                                                                                                                          
fi          

Öffnen Sie die Einstellungen, um eine benutzerdefinierte Tastenkombination einzurichten, und setzen Sie den Befehl auf. Stellen Sie /home/$USER/raiseterminal.shjedoch sicher, dass Sie $ USER in Ihren tatsächlichen Benutzernamen ändern .

Wenn Sie das Terminal nur auf einem bestimmten Bildschirm oder Desktop öffnen möchten, finden Sie xdotool search --helpweitere Informationen dazu.

Es gibt auch verschiedene andere Methoden, die mit anderen Fenstermanagern besser funktionieren.

Zerwas
quelle
Sie können ein | head -n1nach dem Durchsuchen von Gnome-Terminal-Fenstern hinzufügen , um einen Fehler zu vermeiden, wenn mehr als ein Fenster gefunden wird
ggalmazor
8

warum versuchst du es nicht tildaoder guakebeides ist in Ubuntu-Repositories verfügbar Obwohl sie nicht genau das tun, wonach Sie suchen, bin ich mir sicher, dass sie genau das sind, wonach Sie gesucht haben, aber nicht wussten, dass es sie gibt. ;)

EDIT : ok, ich war ein bisschen vage, weitere Informationen folgen:

aus Wikipedia :

Tilda ist ein GTK + Terminal Emulator. Das Design wurde von Konsolen in Computerspielen wie Quake inspiriert, die beim Drücken einer Taste, normalerweise der Tilde, vom oberen Bildschirmrand nach unten und beim erneuten Drücken der Taste nach oben gleiten.

Das Ausführen von Tilda kann schneller sein als das Starten eines neuen Terminals mit einer Tastenkombination, da das Programm bereits in den Speicher geladen ist. Dies kann für Personen nützlich sein, die häufig vorfinden, dass Terminals für ungewöhnliche Aufgaben geöffnet und geschlossen werden.

guake ist wirklich das Gleiche, der einzige Unterschied, den ich bemerkte, ist, dass ich keine http-Links per Strg + Klick öffnen konnte, was ich ärgerlich fand

Bartekbrak
quelle
1

Meine Version (=

Skript zum Ausführen / Auslösen einer App:

PID=$$
xdotool search --class $1 | while read line
do
  echo "$line"
  if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
    then
    kill $PID
    exit
  fi
done
## Launch the program if we reach here
$1 & disown

z.B

sh ~/raise.sh chromium
Possum Gallo
quelle
0

Versuchen

sudo apt-get install wmctrl
wmctrl -xa 'gnome-terminal-server.Gnome-terminal'

Gehen Sie zu den Systemeinstellungen - Keyborad, fügen Sie eine benutzerdefinierte Verknüpfung hinzu und fügen Sie dort den Befehl wmctrl ein. Es klappt.

woher der gnome-terminal- * string kommt

wmctrl -xl
Jake
quelle
0

Noch eine andere Option: Starten oder Wechseln. Das Skript überprüft anhand von wmctrl, ob ein Fenster bereits geöffnet ist. Wenn dies der Fall ist, wechselt das Skript zu einem vorhandenen, wobei einem vorhandenen Fenster auf dem aktuellen Desktop Priorität eingeräumt wird. Andernfalls wird ein neues Fenster geöffnet. Dieses Skript wird von Vaughn Dickson veröffentlicht .

#!/bin/sh

terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"

# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
    $terminal_exec &
else
    # search for existing terminals on current desktop
    current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
    term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
    if [ -n "$term_on_this_desk" ]; then
        wmctrl -i -a $term_on_this_desk
    else
        # no terminals on current desktop, so just open the first one we find
        wmctrl -x -a $terminal_wm_class
    fi;
fi;

Legen Sie dieses Skript in den Ordner bin in Ihrem Ausgangsordner und machen Sie es ausführbar. Deaktivieren Sie dann unter Tastaturkürzel (Einstellungen - Tastatur) den vorhandenen Hotkey für "Terminal starten" im Bereich "Startprogramme": Klicken Sie darauf und drücken Sie die Rücktaste, um die aktuelle Zuordnung zu deaktivieren. Erstellen Sie dann im Abschnitt "Benutzerdefinierte Verknüpfungen" eine neue benutzerdefinierte Verknüpfung, indem Sie auf das Symbol + klicken. Füllen Sie den Namen Ihres Skripts als "Befehl" aus und weisen Sie ihm die Tastenkombination Ctrl+ Alt+ zu t.

Vanadium
quelle