这个项目能做什么

gaur 是一个用 Go 构建的 Arch Linux 包管理 TUI(终端用户界面)。它封装了 pacman、AUR 助手(paru 或 yay)以及 fzf,为常见的包操作提供统一的键盘驱动界面。 **搜索与安装** - 由 fzf 提供模糊排序,并高亮匹配项。 - 仓库范围查询前缀:c:(core)、e:(extra)、m:(multilib)、a:(AUR)。前缀可组合,例如 ae:firefox 会同时搜索 AUR 和 Extra。 - 使用 Tab 标记多个软件包,并在一条命令中对它们进行操作。 - 实时详情面板显示仓库、版本、许可证和上游 URL。 **维护** - 仪表盘显示软件包数量、磁盘使用条形图和仓库分布。 - 支持完整系统更新,或对手动挑选的子集进行选择性更新。 - 缓存清理器支持保留策略和按软件包选择性清理。 - 孤立包检测和一键删除。 **界面** - 十一个内置主题(Catppuccin 变体、Dracula、Gruvbox、Monokai Pro、One Dark、Rose Pine、Solarized Dark、Tokyonight),滚动时提供实时预览。 - 通过 --export-themes 支持自定义 TOML 主题。 - 按模式着色、居中对话框、支持鼠标滚轮。 - 设置菜单(逗号键)可在不重启的情况下切换主题、AUR 助手和边框类型。 **模式**:install、dashboard、remove 和 update,可通过 i/d/r/u 键或 Alt+数字快捷键切换。 **remove 模式下的搜索过滤器**:t:(所有已安装)、e:/l:(显式安装)、f:/a:(外部/AUR 软件包)、o:(孤立包)。 **安全方式**:命令以参数数组构建,绝不使用 shell 字符串。软件包名称会对照严格允许列表进行检查,配置值会被限制而非直接信任,CI 除 gosec、CodeQL 和 govulncheck 外,还运行专门针对命令注入、权限提升和 TUI 欺骗的测试。 **工作原理**:仓库软件包通过 pacman -Sl 一次性读取并保存在内存中;输入时不会在每次按键时调用 pacman。每次按键都会将合并后的仓库 + AUR 列表通过 fzf --filter 管道处理。AUR 查询要求至少两个字符,避免重复请求,并丢弃过期响应。安装、删除和更新操作通过 tea.ExecProcess 运行,因此 sudo 提示和冲突解决的行为与在 gaur 之外一致。 **要求**:Arch Linux 或基于 Arch 的发行版、AUR 助手(paru 或 yay)、fzf、来自 pacman-contrib 的 paccache,以及从源码构建时的 Go 1.24+。 **安装**:可在 AUR 上以 gaur-bin 获取(paru -S gaur-bin 或 yay -S gaur-bin),也可通过 go install 或从源码构建。 **配置**:首次运行时写入 ~/.config/gaur/config.toml,涵盖默认启动模式、UI 主题和边框类型、AUR 助手选择、安装/删除标志、缓存工具和防抖计时。大多数设置也可在应用内设置菜单中实时编辑。 采用 GPL-3.0 许可。