Comment faire apparaître et disparaître l'émulateur de terminateur comme Guake?


14

J'utilise terminator 0.96 comme émulateur de terminal. Comment puis-je le faire fonctionner en arrière-plan et le faire apparaître / disparaître comme un terminal guake (c'est-à-dire en utilisant une touche de raccourci).



Réponses:


17

J'essayais de faire la même chose (être fan de guake et de terminator). Voici ce que j'ai trouvé (une version personnalisée de la réponse de desqua à cette question ):

Lancer une application ou afficher sa fenêtre si elle est déjà lancée ou minimiser si elle est focalisée

1) Installez wmctrl & xdotool , ou dans un terminal:sudo apt-get install wmctrl xdotool

2) Créez un script:

  • Créez un fichier gedit ~ / bin / launch_focus_min.sh

Et collez ceci:

#!/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
  • Rendez-le exécutable: chmod +x ~/bin/launch_focus_min.sh

3) Créez votre raccourci clavier:

  • Ouvrez vos paramètres de clavier et créez un raccourci personnalisé avec la commande: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin ne fonctionnera pas)

  • assignez cette commande à Shift + Escape (ou au raccourci clavier que vous avez utilisé pour guake).


J'ai essayé mais cela ne semble pas fonctionner pour moi.
Chirag

Ceci est la solution parfaite, le meilleur de Guake avec le meilleur de Terminator, merci.
wranvaud

a dû changer "~ / bin / launch_focus_min.sh terminator" en "/ home / <user> /bin/launch_focus_min.sh terminator" pour que cela fonctionne pour moi
Vituel

J'ai dû ajouter un shebang bash au début du fichier pour qu'il fonctionne correctement sous zsh:#!/bin/bash
sean_j_roberts

4

La façon la plus simple de le faire serait d'utiliser xdotoolet d'utiliser la windowunmap/windowmapcommande pour masquer / afficher la classe de fenêtres souhaitée. (Cette approche n'a pas été mentionnée dans les autres réponses qui le mentionnent xdotool.) La solution fonctionnera bien sur tous les bureaux, quel que soit le gestionnaire de fenêtres qu'ils utilisent. Comme l'indique la page de manuel ,

Dans la terminologie X11, mapper une fenêtre signifie la rendre visible à l'écran.

Ainsi, le démappage d'une fenêtre fera le contraire et masquera la fenêtre. Malheureusement, il n'y a pas de bascule à utiliser xdotoolpour basculer entre les états de mappage / démappage, mais les deux commandes dont vous avez besoin sont ci-dessous. Le premier cache la fenêtre:

xdotool search --class terminator windowunmap %@

et le second inverse l'effet:

xdotool search --class terminator windowmap %@

Veuillez noter que si la fenêtre est déjà réduite, la windowunmapcommande échouera.

Pour plus d'informations, consultez man xdotoolles pages de manuel Ubuntu en ligne et ma réponse à cette question connexe .


2

En sélectionnant un ensemble de préférences dans Terminator, vous pouvez le faire fonctionner presque comme Guake.

Reportez-vous à l'article suivant pour des explications détaillées.
http://www.webupd8.org/2011/07/07/install-terminator-with-built-in-quake.html

Je vous conseille de suivre toutes les étapes de l'article pour obtenir les résultats souhaités. J'ai sauté quelques étapes, pensant qu'elles n'étaient pas nécessaires, mais qu'elles étaient en fait nécessaires pour surmonter certains bugs.


0

Je recommanderais simplement d'utiliser yakuakeun terminal dans le même style que guake pour le bureau kde.

Vous pouvez l'installer en exécutant sudo apt-get install yakuake.


Impossible de quitter le terminateur. Je l'utilise depuis 2 ans. Presque accro à elle maintenant. :)
Chirag

0

Eh bien, la solution la plus simple serait de verrouiller Terminator sur le lanceur et d'utiliser les raccourcis fournis par Ubuntu.

Vous pouvez démarrer n'importe quelle application verrouillée sur le lanceur à l'aide du raccourci du lanceur:

Super + 1 à 9

Pour une liste complète des raccourcis disponibles, maintenez la touche Super .


0

J'ai écrit un script pour augmenter et minimiser le terminal gnome avec byobu dans linux mint, car guake a des problèmes de sortie de console étranges. Ensuite, je l'ai ajouté aux raccourcis de la section clavier administrateur -> raccourcis.

script nommé 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 n'est ici que le nom de la fenêtre.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.