Guake

来自 ArchWiki

Guake 是一个 GNOME 的下拉式终端(风格类似于 KDE 的 YakuakeTilda 或 Quake 中使用的终端)。

安装

安装 guake 软件包。

使用

安装完成后,您可以使用以下命令从终端启动 Guake

$ guake

Guake 启动后,您可以右键单击界面并选择首选项来更改自动下拉终端的热键,默认设置为 F12

自动启动

您可能希望 Guake 在启动桌面环境时加载。为此,您需要

# cp /usr/share/applications/guake.desktop /etc/xdg/autostart/

有关更多信息,请参阅 自动启动

Guake 脚本

Yakuake 类似,Guake 允许通过发送 D-Bus 消息在运行时控制自身。因此,它可以用于在用户定义的会话中启动 Guake。您可以创建选项卡,为它们分配名称,并要求在任何打开的选项卡中运行任何特定命令,或者手动在终端中或通过为其创建自定义脚本来显示/隐藏 Guake 窗口。

本节下方给出了此类脚本的示例。

您可以使用 guake 可执行文件本身来发送 D-Bus 消息。以下是您可能感兴趣的可用选项列表

  • -t, --toggle-visibility — 切换终端窗口的可见性。实际上,您只需键入 guake,它将切换已运行实例的可见性。
  • -f, --fullscreen — 将 Guake 置于全屏模式。
  • --show — 显示 Guake 主窗口。
  • --hide — 隐藏 Guake 主窗口。
  • -n CUR_DIR, --new-tab=CUR_DIR — 创建新选项卡并选择它。CUR_DIR 的值用于设置选项卡的当前目录(如果指定)。
  • -s INDEX, --select-tab=INDEX — 选择索引为 INDEX 的选项卡。选项卡索引从 0 开始。
  • -g, --selected-tab — 打印当前选定选项卡的索引。
  • -e CMD, --execute-command=CMD — 在选定的选项卡中执行任意命令 CMD
  • -i INDEX, --tab-index=INDEX — 与 --rename-tab 一起使用,以指定要重命名的选项卡的索引 INDEX。默认值为 0。
  • --rename-tab=TITLE — 将选项卡名称设置为 TITLE。您可以通过传递单个破折号 ("-") 将选项卡标题重置为默认值。使用 -i 选项指定要重命名的选项卡。
  • --bgcolor=RGB — 设置选定选项卡的十六进制 (#rrggbb) 背景颜色 RGB
  • --fgcolor=RGB — 设置选定选项卡的十六进制 (#rrggbb) 前景颜色 RGB
  • -r TITLE, --rename-current-tab=TITLE — 与 --rename-tab 相同,但重命名当前选定的选项卡。
  • -q, --quit — 关闭正在运行的 Guake 实例。

多个选项可以在单个调用中组合使用。如果没有 Guake 实例正在运行,则所有指定的选项都将应用于新创建的实例。

要显示所有可用选项的列表,请键入 guake --help

以下是启动 guake 并应用这些脚本的 2 种方法

  • 将以下示例复制到类似 guake-init.sh 的文件中,使其可执行并运行该文件而不是 guake
  • 右键单击 Guake Terminal > 首选项 > 钩子,并在“启动时:”字段中添加 guake-init.sh 脚本的路径,同时确保注释掉下面脚本中的 /usr/bin/guake &sleep 5

如果您希望脚本在 guake 以何种方式启动的情况下都运行,并且您仍然可以使用 guake --no-startup-script 指示 guake 不运行脚本,则第二种选择更可取。

示例

#!/bin/sh

/usr/bin/guake &
sleep 5 # let main guake process start and initialize D-Bus session

# adjust tab which was opened by default
guake --rename-tab="iotop" --execute="/usr/bin/iotop"

# create new tab, start bash session in it
guake --new-tab --execute="/usr/bin/bash"
# and then execute htop, renaming the tab to "htop"
guake --execute="/usr/bin/htop" --rename-current-tab="htop"

# ...
guake --new-tab --execute="/usr/bin/bash"
guake --execute="/usr/bin/atop" --rename-current-tab="atop"

guake --new-tab --execute="/usr/bin/bash"
guake --execute="~/.iptables.sh" --rename-current-tab="iptables -nvL"

guake --new-tab --execute="/usr/bin/bash"
guake --execute="/usr/bin/journalctl --follow --full" --rename-current-tab="journalctl"

guake --new-tab --execute="/usr/bin/bash"
guake --execute="/usr/bin/irssi" --rename-current-tab="irssi"

guake --new-tab --execute="/usr/bin/bash"
guake --execute="/usr/bin/sudo -i" --rename-current-tab="rootshell0"

guake --new-tab --execute="/usr/bin/bash"
guake --execute="/usr/bin/sudo -i" --rename-current-tab="rootshell1"

guake --new-tab --execute="/usr/bin/bash"
guake --rename-current-tab="shell0"

guake --new-tab --execute="/usr/bin/bash"
guake --rename-current-tab="shell1"

请注意,我们应该等待一段时间调用 sleep 以避免运行实例之间的竞争条件。

警告: --execute 选项可能会在运行文本界面程序(如 fdiskinnotop)的选项卡上造成有害的事情。请谨慎使用。github 上有一个关于它的错误:guake#921

故障排除

窗口管理器中的浮动模式

Guake 可能无法在某些窗口管理器中以浮动模式打开。这可以通过使用 Guake 的窗口类字符串("guake""Guake",根据 xprop WM_CLASS)来解决。例如,有关 i3,请参阅 i3#正确处理浮动对话框 中的“WM_CLASS”。

切换 Guake 可见性不起作用 (Wayland)

如果您正在使用 Wayland,则 Guake 可见性切换热键可能在某些应用程序下不起作用。这是因为 Guake 使用为 X 环境制作的全局热键库,并且 Wayland 没有等效的全局热键接口。许多应用程序(例如 Firefox)通过 Xwayland 在 Wayland 上运行,Guake 切换将在其中工作,但其他本地运行 Wayland 的应用程序(例如 GNOME 应用程序)禁用 Guake 切换功能。

如果您不想切换到 X 环境,一个简单的解决方法是使用您的窗口管理器/桌面环境为命令 guake-toggle 配置快捷方式。

有关更多详细信息,请参阅 github 问题

注意: 建议使用 guake-toggle 而不是 guake -t推荐。它更快,因为它直接通过 D-Bus 而无需完全初始化 Guake。

Guake 在 Wayland 上模糊

如果您正在使用具有分数缩放的 Wayland 桌面环境,guake 可能会模糊。如果是这种情况,则可能是因为您的桌面环境正在为您放大 guake。Guake 不遵守 GDK_BACKEND 环境变量。相反,要使 guake 使用 Wayland,请设置 GUAKE_ENABLE_WAYLAND=1 环境变量。

参见