Vous n'êtes pas identifié(e).
Suite a une petite discution sur irc je me suis penché sur le faite d'avoir le même comportement de guake, mais avec terminator !
J'ai trouvé 2 méthodes !
La première simple et très efficace : C'est directement dans les settings de terminator
La deuxième avec un petit script et deux petites applications.
1) Directement avec les settings de Terminator :
Avantage :
On n'a aucune application externe, pas de dépendance.
Inconvénient :
Terminator doit être lancé obligatoirement avant d'exploité l'avantage de guake
Paramétrage :
Aller dans les préférence de terminator, keybinding et rechercher la ligne :
hide_windows Toggle windows visibility F12
J'ai affecté la touche F12 à terminator pour cacher/dé-cacher la fenêtre.
2) Le script externe :
Avantage :
Si terminator n'est pas déjà lancé, le script lancera terminator.
Inconvénient :
Deux très légères dépendances : xdotool et wmctrl.
Installation :
Pour installer les dépendances il suffit de faire :
Pour Fedora :
dnf install xdotool wmctrl
Pour Ubuntu :
sudo apt-get install xdotool wmctrl
Puis créer le fichier ~/bin/toggle_visibility.sh avec votre éditeur préférer ( vim est mon ami pour la vie ) avec ce contenu :
#!/bin/bash
#####################################################################################
################# Check for dependencies ( Fedora and Debian compatible) ####################
#####################################################################################
#Checking that all dependencies are met, since we cannot proceed without them.
declare -a DEPENDENCIES=("xdotool" "wmctrl");
declare -a MANAGERS=("dnf" "apt-get");
for DEPENDENCY in ${DEPENDENCIES[@]};
do
echo -n "Checking if $DEPENDENCY is available";
if hash $DEPENDENCY 2>/dev/null;
then
echo "- OK, Found";
else
echo "- ERROR, Not Found in $PATH";
for MANAGER in ${MANAGERS[@]};
do
if hash $MANAGER 2>/dev/null;
then
echo -n "$DEPENDENCY is missing, would you like to try and install it via $MANAGER now? [Y/N] (default is Y): ";
read ANSWER;
if [[ "$ANSWER" == "Y" || "$ANSWER" == "y" || "$ANSWER" == "" ]];
then
sudo "$MANAGER" install "$DEPENDENCY";
else
echo "Terminating";
exit -1;
fi
fi
done
fi
done
#####################################################################################
################# Aplication ###########################################################
#####################################################################################
APPLICATION="$1";
#Checking if the application name provided by the user exists
if ! hash $APPLICATION 2>/dev/null;
then
echo -e "$APPLICATION does not seem to be a valid executable\nTerminating";
exit -2;
fi
#Checking if the application is running. We are using pgrep as various application are python scripts and we will not be able to find them using pidof. pgrep will look through the currently running processes and list the process IDs of all the processes that are called $APPLICATION.
PID=$(pgrep $APPLICATION);
#If the application is not running, we will try to launch it.
if [ -z $PID ];
then
echo "$APPLICATION not running, launching it..";
$APPLICATION;
else
#Since the application has a live instance, we can proceed with the rest of the code.
#We will get the PID of the application that is currently focused, if it is not the application we passed as parameter we will change the focus to that. In the other case, we will minimize the application.
echo -n "$APPLICATION instance found - ";
FOCUSED=$(xdotool getactivewindow getwindowpid);
if [[ $PID == $FOCUSED ]];
then
echo "It was focused so we are minimizing it";
#We minimize the active window which we know in this case that it is the application we passed as parameter.
xdotool getactivewindow windowminimize;
else
echo "We are setting the focus on it";
#We set the focus to the application we passed as parameter. If it is minimized it will be raised as well.
wmctrl -x -R $APPLICATION;
fi
fi
exit 0
Une chose interessante dans ce script est la première partie, elle donne une bonne méthode pour vérifier des dépendances de votre script, et les installer le cas échant. et ce que ce soit sur une débian ou une fedora. ( NICE ).
Une foi créer il faut donner le droit d'exécution au fichier :
chmod +x ~/bin/toggle_visibility.sh
Puis il faut attribué un racourcit clavier a votre script, n'utilisant que openbox, je ne vous indiquerais pas comment faire avec gnome, unity ou autre WM lourd
Editez le fichier : ~/.config/openbox/rc.xml et ajoutez :
<keybind key="A-F12">
<action name="Execute">
<command>~/bin/toggle_visibility.sh terminator</command>
</action>
</keybind>
Dans mon cas j'ai attribué la combinaison de touche : alt-F12
On relance ensuite openbox, et le bonheur commence.
Conclusion :
Pourquoi expliqué les deux méthodes, car elle sont complémentaire a mes yeux.
La deuxième méthode est une bonne pratique pour lancer votre terminator, puisque le script permet de vérifier si terminator est lancé ou non, et si non il le lance.
La première est très utile une fois un terminator déjà présent dans les processus.
Source du script :
http://bytefreaks.net/gnulinux/bash/how … untu-14-10
Dernière modification par penthium2 (24-04-2015 10:00:32)
vi est mon ami pour la vie
Ph'nglui nglw-nafh Cthulhu R'lyeh wgah-nagl fhtagn
Hors ligne