我使用 Terminator 0.96 作为终端仿真器。如何让它在后台运行并像 Guake 终端一样出现/消失(即使用快捷键)。
答案1
我也尝试做同样的事情(我是 guake 和 terminator 的粉丝)。以下是我想到的(定制版德斯夸的回答这个问题):
启动应用程序或显示其窗口(如果已启动)或最小化(如果聚焦)
1)安装控制端&工具或者在终端中:sudo apt-get install wmctrl xdotool
2)制作脚本:
- 创建文件 gedit ~/bin/launch_focus_min.sh
并粘贴此内容:
#!/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
- 使其可执行:
chmod +x ~/bin/launch_focus_min.sh
3)创建键盘快捷键:
打开键盘设置并使用以下命令创建自定义快捷方式:
/home/<user>/bin/launch_focus_min.sh terminator
(〜/ bin 不起作用)将此命令分配给 Shift+Escape(或您用于 guake 的任何键盘快捷键)。
答案2
最简单的方法是使用xdotool
,并使用windowunmap/windowmap
命令隐藏/取消隐藏所需的窗口类别。(提到 的其他答案中没有提到这种方法xdotool
。)无论使用哪种窗口管理器,该解决方案都可以在所有桌面上很好地工作。由于手册页说明,
在 X11 术语中,映射窗口意味着使其在屏幕上可见。
因此,取消映射窗口将执行相反的操作并隐藏窗口。不幸的是,没有可用的切换按钮来xdotool
在映射/取消映射状态之间切换,但您需要的两个命令如下。第一个隐藏窗口:
xdotool search --class terminator windowunmap %@
第二个会反转效果:
xdotool search --class terminator windowmap %@
请注意,如果窗口已经最小化,该windowunmap
命令将失败。
欲了解更多信息man xdotool
,请参阅Ubuntu 在线手册页, 和我对这个相关问题的回答。
答案3
通过选择 Terminator 中的一组首选项,您可以使其工作得几乎与 Guake 类似。
详细解释请参考以下文章。
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html
我建议您按照文章中的所有步骤操作以获得所需的结果。我跳过了一些步骤,认为它们不是必需的,但实际上它们是解决一些错误所必需的。
答案4
最简单的解决办法就是将终结者锁定到发射器并使用快捷方式Ubuntu 提供的。
您可以使用启动器快捷方式启动任何锁定到启动器的应用程序:
超级 + 1 至 9
要查看可用的快捷键的完整列表,请按住极好的钥匙。