Thursday, May 2, 2024
17
rated 0 times [  17] [ 0]  / answers: 1 / hits: 9987  / 2 Years ago, fri, february 11, 2022, 2:38:26

I am using terminator 0.96 as terminal emulator. How can I make it run in the background and make it appear/disappear like guake terminal (i.e. using a shortcut key).


More From » shortcut-keys

 Answers
0

I was trying do the same thing (being a fan of both guake and terminator). Here's what I came up with (a customized version of desqua's answer to this question):



To launch an application or to show its window if already launched or to minimize if it is focused



1) Install wmctrl & xdotool, or in a terminal: sudo apt-get install wmctrl xdotool



2) Make a script:




  • Make a file gedit ~/bin/launch_focus_min.sh



And paste this:



#!/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



  • Make it executable: chmod +x ~/bin/launch_focus_min.sh



3) Make your keyboard shortcut:




  • Open your keyboard settings and create a custom shorcut with the command: /home/<user>/bin/launch_focus_min.sh terminator (~/bin won't work)


  • assign this command to Shift+Escape (or whatever keyboard shortcut you used for guake).



[#36244] Friday, February 11, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ronicod

Total Points: 71
Total Questions: 111
Total Answers: 111

Location: Montenegro
Member since Fri, Dec 10, 2021
2 Years ago
ronicod questions
Thu, Nov 11, 21, 06:26, 3 Years ago
Sun, May 7, 23, 13:57, 1 Year ago
Sun, Jun 26, 22, 06:13, 2 Years ago
Fri, Oct 14, 22, 13:55, 2 Years ago
;