C++ · 项目报告

btsouth/omakade

A beautiful, local-first game library built for Omarchy.

已完成 打开 GitHub
B
274星标
13Fork
5Issue
GPL-3.0许可证

分析结果

项目分析

Omakade 是一个面向 Linux/Omarchy 桌面的本地优先游戏库与启动器聚合工具,用 C++/Qt/QML 构建。它可以自动发现并统一展示来自 Steam、Lutris、Heroic、Faugus、RetroArch、Battle.net、Epic、GOG、Amazon、PCSX2、Ryujinx 等平台的已安装游戏,并提供封面墙、搜索、收藏、隐藏、标签、收藏集、完成状态、手柄导航、客厅模式、Moonlight/Sunshine 串流集成等功能。项目强调不修改原启动器数据,核心浏览、封面、启动和本地数据可离线使用。

适用领域 Linux 游戏启动器 / 游戏库管理 / 桌面应用 / Qt/QML 图形界面 / Omarchy/Arch Linux 生态 / Wayland/Hyprland 桌面环境 / Steam/Lutris/Heroic/RetroArch 集成 / 客厅模式与手柄交互 / 游戏串流 Sunshine/Moonlight / 本地优先应用
配置难度 中等。普通 Omarchy/Arch 用户通过 pacman 包安装较简单;但若涉及源码构建、多启动器路径诊断、Wine/Proton/Bottles、Steam API、IGDB、Sunshine/Moonlight 或 ARM64 环境,则需要较强的 Linux 桌面和游戏生态经验。对开发者而言,C++20、Qt 6.8、QML、SQLite、本地服务凭据、多个游戏平台数据解析和控制器交互都会增加维护复杂度。
商业价值 对商业产品而言,Omakade 的价值主要在 Linux 游戏桌面体验、游戏库聚合、客厅模式和串流入口设计方面。它可以作为研究 Linux 游戏启动器、多平台游戏发现、离线优先元数据缓存、Qt/QML 游戏 UI、手柄优先交互、Sunshine/Moonlight 集成的参考项目。对于 Omarchy 或 Arch Linux 游戏设备、客厅 PC、掌机式 Linux 设备、云游戏/串流前端等场景具有较高参考价值。但由于 GPL-3.0 许可证、平台范围较窄以及对外部启动器依赖较多,直接商业闭源复用受限,更适合作为开源生态项目、内部技术验证或合规开源产品的基础。
01

技术亮点

  • 多平台统一游戏库,支持 Steam、Lutris、Heroic、Faugus、RetroArch、PCSX2、Ryujinx、GOG、Battle.net 等来源
  • 本地优先设计,核心发现、浏览、封面、搜索、组织、手柄导航和启动可离线工作
  • 不会修改原启动器数据,启动与安装仍委托给拥有该游戏的平台,降低破坏现有游戏库的风险
  • 界面重视美观和封面展示,支持 Omarchy 调色板、字体、透明度和实时主题更新
  • 支持手柄、键盘、鼠标导航,并提供面向电视/沙发使用场景的 Couch Mode
  • 支持 Sunshine 导出,可让 Moonlight 直接启动 Omakade 或单个游戏
  • 支持 x86_64 和 ARM64 包,并提供校验、SBOM 和签名 provenance
  • 提供本地 Steam 成就、可选 Steam 拥有库同步、可选 IGDB 信息和 RetroAchievements 进度
  • 支持显式链接来自多个来源的同一游戏,适合管理重复安装或跨平台游戏
  • 提供 --play、--couch、--quit 等命令行入口,方便集成快捷键、脚本和串流场景
02

目标用户

  • 使用 Omarchy 或 Arch Linux 的游戏玩家
  • 在 Linux 上同时使用 Steam、Heroic、Lutris、RetroArch、GOG、Battle.net 等多个启动器的用户
  • 希望用统一封面墙管理本地游戏库的玩家
  • 使用手柄、电视或客厅模式进行游戏的用户
  • 使用 Sunshine/Moonlight 进行局域网串流的玩家
  • 喜欢本地优先、离线可用、低打扰游戏库工具的 Linux 用户
  • 希望为 Omarchy/Hyprland 桌面打造美观游戏入口的开发者或高级用户
03

配置要求

  • 运行环境主要面向 Omarchy 或 Arch Linux,不支持 Windows 原生运行
  • 需要 pacman 包管理环境安装 Release 包
  • 图形栈依赖 Qt 6.8 或更新版本,包含 Concurrent、Core、Gui、Network、Qml、Quick、Quick Controls、SQL、Test,以及 SVG 和图像格式插件
  • 源码构建需要 CMake 3.24+、Ninja、C++20 编译器、SDL 3、libsecret、libzip
  • Steam 已安装游戏无需 API Key;如需同步未安装的 Steam 拥有库,需要配置 Steam ID 和 Steam Web API Key,并确保 Steam 游戏详情公开
  • 可选 IGDB 信息需要相应凭据,用于获取评分聚合和游戏时长估计
  • 可选 RetroAchievements 进度需要配置对应服务凭据或集成
  • GOG 直接发现默认检查 ~/GOG Games、~/Games/GOG、~/Games/Heroic、~/Games 下的直接游戏目录,可通过 OMAKADE_GOG_LIBRARY_PATHS 配置额外路径,多个路径用冒号分隔
  • Windows 版 GOG 游戏在 Linux 下需要 umu-run,并使用每游戏独立 prefix
  • Battle.net 游戏需要 Wine、umu-launcher 或 Bottles 才能启动
  • RetroArch 游戏依赖 RetroArch 播放列表和 core 关联,未关联 core 的条目会显示但无法直接启动
  • Sunshine/Moonlight 串流集成需要系统已安装并运行 Sunshine,修改 app list 后通常需要重启 Sunshine
  • 本地数据库路径为 ~/.local/share/omakade/library.sqlite3
  • 配置文件路径为 ~/.config/omakade/config.toml
  • 下载封面缓存位于 ~/.cache/omakade/
  • 用户自选封面存储于 ~/.local/share/omakade/artwork/
  • 可选 Steam 和 IGDB 凭据通过 Secret Service 保存
04

适用场景

  • 自动扫描多个游戏平台中已安装的游戏,并在一个统一界面中浏览和启动
  • 使用搜索、排序、来源过滤、收藏、隐藏、标签、收藏集等方式管理大型游戏库
  • 通过 Couch Mode 使用手柄在电视或大屏上浏览游戏并启动
  • 将 Omakade 或每个已安装游戏导出到 Sunshine,从 Moonlight 远程启动
  • 查看 Steam 本地成就、可选 Steam Web API 增强信息、IGDB 评分和游戏时长信息
  • 管理 RetroArch 游戏条目,并通过对应 core 启动模拟器游戏
  • 发现 GOG 本地安装目录中的原生 Linux 游戏或通过 umu-run 运行 Windows 版本
  • 通过命令行或快捷键直接启动指定游戏,例如 omakade --play Steam::620
  • 在没有网络连接的情况下浏览已缓存元数据、封面和本地游戏库
05

部署与配置

  • 在 Omarchy 上推荐通过官方包仓库安装:sudo pacman -S omarchy/omakade
  • 在 Arch/Omarchy 上也可以从 GitHub Release 下载对应架构的 pacman 包,例如 x86_64 的 omakade-1.6.0-1-x86_64.pkg.tar.zst
  • 同时下载 SHA256SUMS 文件,并执行校验:sha256sum -c SHA256SUMS --ignore-missing
  • 使用 pacman 安装或升级本地包:sudo pacman -U ./omakade-1.6.0-1-x86_64.pkg.tar.zst
  • ARM64 用户需将包名和下载地址中的 x86_64 替换为 aarch64
  • 安装完成后可从应用启动器启动 Omakade,或在终端运行 omakade
  • 可运行 omakade --demo 使用虚构示例游戏库体验界面
  • 从源码构建需要安装 CMake 3.24+、Ninja、C++20 编译器、Qt 6.8+、SDL 3、libsecret、libzip,然后执行 cmake --preset dev、cmake --build --preset dev、ctest --preset dev、./build/dev/omakade
06

风险与注意事项

  • 项目专门面向 Omarchy/Arch Linux 生态,其他 Linux 发行版使用成本较高,Windows 不支持
  • 与多个外部启动器和平台的数据结构耦合,Steam、Heroic、Lutris、Battle.net、RetroArch 等上游变更可能导致发现或启动失效
  • ARM64 虽有自动化构建和生命周期检查,但 README 明确提到在 Omarchy ARM64 设备上的实际测试仍有开放 issue
  • 可选元数据功能依赖 Steam Web API、IGDB、RetroAchievements 等外部服务,存在凭据配置、API 变更和隐私请求风险
  • Battle.net、Windows GOG 游戏等场景依赖 Wine、Proton、Bottles、umu-run 等兼容层,启动稳定性会受具体游戏和环境影响
  • GPL-3.0 许可证对商业闭源集成不友好,二次分发和衍生作品需要注意开源合规
  • 项目 star 数中等,社区规模和长期维护能力需要观察
  • 作为较新的社区项目,边缘平台布局、特殊安装路径、非标准库目录可能需要用户手动配置或反馈兼容性问题

历史记录

热榜历史快照

2026-09-06 第29名 新收录 · github_search