web-dev-qa-db-fra.com

Comment faire pour que l'émulateur de terminateur apparaisse et disparaisse comme un guake?

J'utilise le terminateur 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).

14
Chirag

J'essayais de faire la même chose (être fan de guake et de terminateur). Voici ce que je suis venu avec (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 active

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

2) Faites un script:

  • Faire 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
  • Le rendre exécutable: chmod +x ~/bin/launch_focus_min.sh

3) Faites 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)

  • attribuez cette commande à Maj + Échap (ou à tout raccourci clavier que vous avez utilisé pour guake).

16
olds22

La méthode la plus simple consiste à utiliser xdotool et à utiliser la commande windowunmap/windowmap pour masquer/afficher la classe de fenêtres souhaitée. (Cette approche n'a pas été mentionnée dans les autres réponses mentionnant xdotool.) La solution fonctionnera bien sur tous les ordinateurs de bureau, quel que soit le gestionnaire de fenêtres qu'ils utilisent. Comme notes de page de manuel ,

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

Donc, désaffecter une fenêtre fera le contraire et cachera la fenêtre. Malheureusement, il n'y a pas de bascule à utiliser avec xdotool pour basculer entre les états map/unmap, mais les deux commandes nécessaires sont décrites 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 commande windowunmap échouera.

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

4
user76204

En sélectionnant un ensemble de préférences dans Terminator, vous pouvez le faire fonctionner de manière presque similaire à Guake.

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

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

2
Hashken

La solution la plus simple serait simplement de verrouiller Terminator sur launcher et d’utiliser les raccourcis fournis par Ubuntu.

Vous pouvez démarrer n'importe quelle application verrouillée au programme de lancement à l'aide du raccourci du programme de lancement:

Super + 1 à 9

Pour obtenir une liste complète des raccourcis disponibles, maintenez la touche Super enfoncée.

0
Waqleh

Je recommanderais simplement d'utiliser yakuake, un terminal du même style que guake pour le bureau kde.

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

0
Alex L.

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

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 est juste le nom de la fenêtre ici.

0
metanerd