Wie lasse ich den Terminator-Emulator wie einen Witz erscheinen und verschwinden?

Antworten:

17

Ich habe versucht, das Gleiche zu tun (ein Fan von Guake und Terminator zu sein). Folgendes habe ich mir ausgedacht (eine angepasste Version der Antwort von desqua auf diese Frage ):

Zum Starten einer Anwendung oder zum Anzeigen ihres Fensters, wenn sie bereits gestartet wurde, oder zum Minimieren, wenn sie fokussiert ist

1) Installieren Sie wmctrl & xdotool oder in einem Terminal:sudo apt-get install wmctrl xdotool

2) Machen Sie ein Skript:

  • Erstellen Sie eine Datei gedit ~ / bin / launch_focus_min.sh

Und fügen Sie dies ein:

#!/bin/bash                                                                                                            
#
# This script does this:
# launch an app if it isn't launched yet,
# focus the app if it is launched but not focused,
# minimize the app if it is focused.
#
# by desgua - 2012/04/29
# modified by olds22 - 2012/09/16
#  - customized to accept a parameter
#  - made special exception to get it working with terminator


# First let's check if the needed tools are installed:

tool1=$(which xdotool)
tool2=$(which wmctrl)

if [ -z $tool1 ]; then
  echo "Xdotool is needed, do you want to install it now? [Y/n]"
  read a
  if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
    sudo apt-get install xdotool
  else
    echo "Exiting then..."
    exit 1
  fi
fi

if [ -z $tool2 ]; then
  echo "Wmctrl is needed, do you want to install it now? [Y/n]"
  read a
  if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
    sudo apt-get install wmctrl
  else
    echo "Exiting then..."
    exit 1
  fi
fi


# check if we're trying to use an app that needs a special process name
# (because it runs multiple processes and/or under a different name)
app=$1
if [[ $app == terminator ]]; then
  process_name=usr/bin/terminator
else
  process_name=$app
fi

# Check if the app is running (in this case $process_name)

#pid=$(pidof $process_name) # pidof didn't work for terminator
pid=$(pgrep -f $process_name)

# If it isn't launched, then launch

if [ -z $pid ]; then
  $app

else

  # If it is launched then check if it is focused

  foc=$(xdotool getactivewindow getwindowpid)

  if [[ $pid == $foc ]]; then

    # if it is focused, then minimize
    xdotool getactivewindow windowminimize
  else
    # if it isn't focused then get focus
    wmctrl -x -R $app
  fi
fi

exit 0
  • Mach es ausführbar: chmod +x ~/bin/launch_focus_min.sh

3) Machen Sie Ihre Tastenkombination:

  • Öffne deine Tastatureinstellungen und erstelle eine benutzerdefinierte Verknüpfung mit dem folgenden Befehl: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin funktioniert nicht)

  • Weisen Sie diesen Befehl Shift + Escape zu (oder einer beliebigen Tastenkombination, die Sie für Guake verwendet haben).

olds22
quelle
Ich habe es versucht, aber es scheint bei mir nicht zu funktionieren.
Chirag
Dies ist die perfekte Lösung. Das Beste aus Guake mit dem Besten aus Terminator. Danke.
Wranvaud
musste "~ / bin / launch_focus_min.sh terminator" in "/home/<user>/bin/launch_focus_min.sh terminator" ändern, damit es für mich
funktioniert
Ich musste am Anfang der Datei einen Bash-Shebang #!/bin/bash
einfügen
4

Der einfachste Weg, dies zu tun, wäre die Verwendung von xdotoolundwindowunmap/windowmap Sie die gewünschte Fensterklasse Befehl ein- ausblenden. (Dieser Ansatz wurde in den anderen genannten Antworten nicht erwähnt xdotool.) Die Lösung funktioniert auf allen Desktops, unabhängig davon, welchen Fenstermanager sie verwenden. Wie die Manpage feststellt ,

In der X11-Terminologie bedeutet das Zuordnen eines Fensters, dass es auf dem Bildschirm angezeigt wird.

Das Aufheben der Zuordnung eines Fensters bewirkt also das Gegenteil und das Ausblenden des Fensters. Leider steht kein Umschalter zur Verfügungxdotool dem Sie zwischen Karten- und Unkartenzuständen wechseln können, aber die beiden Befehle, die Sie benötigen, finden Sie weiter unten. Der erste verbirgt das Fenster:

xdotool search --class terminator windowunmap %@

und die zweite kehrt den Effekt um:

xdotool search --class terminator windowmap %@

Beachten Sie, dass der windowunmapBefehl fehlschlägt , wenn das Fenster bereits minimiert ist .

Weitere Informationen finden Sie man xdotoolin den Ubuntu-Online-Hilfeseiten und in meiner Antwort auf diese verwandte Frage .

Gemeinschaft
quelle
2

Indem Sie in Terminator eine Reihe von Einstellungen auswählen, können Sie dafür sorgen, dass sie Guake fast ähneln.

Weitere Informationen finden Sie im folgenden Artikel.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

Ich rate Ihnen, alle Schritte im Artikel zu befolgen, um die gewünschten Ergebnisse zu erzielen. Ich habe ein paar Schritte übersprungen, weil ich dachte, dass sie nicht notwendig sind, aber tatsächlich notwendig sind, um einige Fehler zu überwinden.

Hashken
quelle
0

Ich würde empfehlen, einfach mit yakuake ein Terminal im gleichen Stil wie guake für den kde-Desktop zu verwenden.

Sie können es installieren, indem Sie ausführen sudo apt-get install yakuake.

Alex L.
quelle
Terminator kann nicht verlassen werden. Ich benutze es seit 2 Jahren. Mittlerweile fast süchtig danach. :)
Chirag
0

Nun, die einfachste Lösung wäre, Terminator für den Launcher zu sperren und die von Ubuntu bereitgestellten Verknüpfungen zu verwenden .

Sie können jede Anwendung, die für den Launcher gesperrt ist, mit der Launcher-Verknüpfung starten:

Super + 1 bis 9

Halten Sie die Super- Taste gedrückt , um eine vollständige Liste der verfügbaren Schnellzugriffe zu erhalten .

Waqleh
quelle
0

Ich habe ein Skript geschrieben, um das Gnome-Terminal mit byobu in Linux Mint zu erhöhen und zu minimieren, da guake einige seltsame Konsolen-Ausgabe-Probleme hat. Dann habe ich es zu den Verknüpfungen im Abschnitt Administrator-Tastatur-> Shurtcuts hinzugefügt.

Skript namens guake-toggling-for-gnome-terminal.sh :

#!/usr/bin/env bash
if ! pgrep -x "gnome-terminal" > /dev/null
then
    gnome-terminal --app-id us.kirkland.terminals.byobu -e byobu
fi

byobuVisible=$(xdotool search --onlyvisible byobu)
byobuNotVisible=$(xdotool search byobu)
xdotool windowminimize ${byobuVisible}
xdotool windowraise ${byobuNotVisible}

Byobu ist hier nur der Fenstername.

metanerd
quelle