#终端 #linux 终端 #x11 #实用工具

app qurop

将 Linux 应用程序转换为 Quake 风格的下拉菜单

1 个不稳定版本

0.1.0 2023 年 12 月 30 日

#1406命令行实用工具

MPL-2.0 许可证

37KB
842

Qurop

将任何* Linux 应用程序转换为 Quake 风格的下拉菜单。

* 仅与 Wezterm 进行了测试

目前只支持 X11,但我很乐意也支持 Wayland

入门

安装

建议使用 Cargo:cargo install qurop

二进制文件和发行版软件包即将推出。

配置

假设 ~/.cargo/bin 已添加到您的路径中,使用 Qurop 注册您的应用程序

# Add an instance named "wezterm", which, when invoked, will launch Wezterm
#  using the "dropdown" session.
qurop add wezterm wezterm connect dropdown

这将更新位于 $XDG_CONFIG_HOME/qurop/config.toml 的配置。

接下来,在您的桌面环境中,将切换命令绑定到快捷键

# Toggle the visibility of the "wezterm" instance.
/home/$USER/.cargo/bin/qurop toggle wezterm

(在 KDE 中,这是系统设置 > 快捷键 > 自定义快捷键 > 编辑 > 新建 > 全局快捷键 > 命令/URL)

然后,按快捷键!应该就是这样了。

窗口大小

窗口默认宽度为 66%,高度为 50%。这可以通过编辑配置文件来更改,为您的应用程序实例添加 geometry 键到表格中

geometry = { width = "<val>", height = "<val>" }

值必须是字符串,可以是绝对数字(例如,"55" 为 55 像素),或百分比(例如,"33%")。

匹配器

默认情况下,Qurop 通过应用程序实例的 PID 跟踪受管理应用程序实例的状态。在 PID 不是定位实例窗口的正确方式的情况下,您可以使用备用匹配器来查找窗口。目前唯一支持的备用匹配器使用窗口类。

# Add an instance named "my_instance", which, when invoked, will launch
#  "appname". Qurop will detect this by querying X for the first window
#  with an "appclass" class.
qurop add --matcher class --class-name appclass my_instance appname

故障排除

窗口未正确调整大小或放置

Qurop 在启动后调整窗口大小。根据启动所需的时间,窗口可能无法及时准备好。您可以通过为您的应用程序实例添加 window_delay_ms 键到表格中来更改默认延迟(100ms)

window_delay_ms = 500

日志

要启用日志记录,请在设置 QUROP_LOG 环境变量的程序中运行

QUROP_LOG=debug qurop toggle wezterm

这将输出到附加的 TTY。如果您在终端会话外运行,可以选择将日志写入磁盘

QUROP_LOG=debug qurop --persist-verbosity=debug toggle wezterm

这将输出到 /home/$USER/.local/state/qurop/ 的按小时轮换日志。

计划中

我非常希望支持以下功能。如果您想贡献一个功能,请在实际编写代码之前与我讨论实现方案!

  • Wayland 支持。由于需要检测活动窗口,这可能是一个挑战,因为似乎没有任何协议支持这一点。
  • 系统托盘图标。
  • 显示/隐藏动画。
  • 更好的错误处理。
  • 额外的匹配器。

依赖项

~16–28MB
~403K SLoC