20 个版本

0.1.19 2024年3月24日
0.1.18 2024年3月24日
0.1.17 2024年2月27日
0.1.16 2023年11月9日
0.1.9 2023年4月30日

187GUI 中排名

Download history 31/week @ 2024-04-01 4/week @ 2024-06-03 2/week @ 2024-06-10 136/week @ 2024-07-08

每月 136 次下载

GPL-3.0 许可

61KB
942

Linux 程序启动器

这是一个用 Rust 编写的程序启动器。目前它使用多个不同的 UI 工具包,例如

  • egui
  • iced
  • gtk

特性

  • 搜索大多数常见 Linux 应用程序路径中的所有桌面文件
    • 可以使用配置文件扩展(参见 Configuration->app_cfg->paths
  • 可用于选择管道中输入的应用程序

为什么使用多个 UI 工具包?

我开始使用 egui,这是一个非常好的工具包,但它有一些限制。所以我尝试了一些其他的工具包。这个 UI 我认为相对简单,但也有一些怪癖(比如键盘滚动),我可以用来比较易用性和功能集。

为什么还需要另一个程序启动器?

我有几个想要新程序启动器的理由

1. Wayland 和 X11 兼容性

大多数好的程序启动器,如 Rofi、Fuzzel 等,只支持 X11 或 Wayland。由于我有时需要在 X11 和 Wayland 之间切换,所以我需要一个在两个系统上都能运行的启动器

2. Wayland 克隆程序并不总是工作

有一些很酷的项目,如 Wofi,旨在将 X11 程序移植到 Wayland。然而,我发现至少 Wofi 在我的窗口设置中存在一些问题。

3. 我想要一个可以合理完成的工程

我倾向于承担一些巨大的项目,这些项目永远不会结束。我认为这是一个相对简单的项目。

参数

select-from-stdin

允许将换行符分隔的列表管道输入到阿福梅中,这将替换正常的程序列表。对于自定义脚本很有用,例如关机/重启等脚本。回显所选选项。

配置

配置现在位于 $HOME/.config/aphorme/config.toml

gui_cfg

GUI 的选项。

icon: boolean

启用或禁用图标加载。默认为 True。

GuiFramework

选择使用哪个 GuiFramework。目前是 EGUI 和 ICED。请注意,目前默认情况下 ICED 没有编译到启动器中。要实现此功能,请使用以下功能编译:iced-ui

retain_focus: 布尔型

强制窗口保持焦点,即使其他窗口试图获取焦点。

已知问题:与 egui + wayland 不兼容。

font_size

字体大小。也会影响图标大小。

window_size

启动器的 X 和 Y 维度。不影响字体大小。

app_cfg

应用跨选项。

paths

要搜索的附加路径列表。主目录只能通过使用 $HOME 来表示。默认为空列表。

use_default_paths

搜索默认路径。如果定义了路径,则将其附加到默认路径。默认为 true

默认路径是

  "/usr/share/applications",
  "/usr/local/share/applications",
  "$HOME/.local/share/applications",
  "/var/lib/flatpak/exports/share/applications"

preferred_apps

包含首选应用(即上次使用的应用)的配置

max_weight

允许的最大权重。默认为 10。

示例配置

[gui_cfg]
icon = true
ui_framework = 'EGUI'
font_size = 12
window_size = [
  300,
  300,
]
[app_cfg]
paths = ["$HOME/Desktop"]

已知问题

在 egui 中滚动有点奇怪(并且滚动条是可见的)

egui 的 ScrollArea 不允许使用箭头键进行移动。这意味着我不得不自己实现它。我选择的方法(仅记住索引)会覆盖使用鼠标滚轮/触摸板手势等的滚动。这意味着我不得不自己实现带有滚动轮的滚动,这与默认滚动相冲突。这导致了一些微小的视觉问题,但到目前为止没有实际的错误

变更

有关先前版本,请参阅 CHANGELOG.md

0.1.15

破坏性变更

  • 直接输入管道现在需要 --select-from-stdin 参数

修复

  • 处理 stdin 之前的延迟太短。现在需要 --select-from-stdin 参数才能正常工作。
  • 更新库

已知问题

  • EGUIs RetainedImage 已弃用。将在 Aphorme 的未来版本中删除

0.1.16

特性

  • 添加了在启动器上保留焦点的选项。如果有多个缓慢启动的程序,这很有用

已知问题

  • 焦点保留仅与 egui + X11 一起工作。egui 不支持在 wayland 上获取焦点

0.1.17

特性

  • 开始支持 Nix

修复

  • 更新到 egui 0.26

0.1.18

特性

  • Nix 支持

修复

  • 删除了程序启动时的错误信息

0.1.19

特性

  • 在 'gui_cfg' 中可以设置窗口大小
  • 在 'gui_cfg' 中可以设置字体大小

依赖关系

~10–32MB
~536K SLoC