我如何让终结者模拟器像 guake 一样出现和消失?

我如何让终结者模拟器像 guake 一样出现和消失?

我使用 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

要查看可用的快捷键的完整列表,请按住极好的钥匙。

相关内容