c69b863e9ae15e38be6e4b8043ec06604f6ab8b4
qEmby
面向 Arch Linux 的 Emby / Jellyfin 桌面客户端
qEmby 是一个使用 Qt 6 / C++20 编写的 Emby、Jellyfin 桌面客户端,内置基于 libmpv 的播放器,并针对 Arch Linux 桌面环境维护。
当前项目只维护 Arch Linux 版本。Windows 专属逻辑已经移除,macOS 和 Windows 不作为发布目标。
截图
功能
- 浏览 Emby / Jellyfin 媒体库,支持电影和剧集视图。
- 内置 libmpv 播放器,支持 VAAPI、VDPAU、CUDA 和软件解码选项。
- 支持外部播放器:MPV、VLC、MPC-Qt。
- 支持播放进度同步、连续播放、上一集 / 下一集和播放完成画廊。
- 支持弹幕搜索、手动匹配、缓存、ASS 管线和原生弹幕渲染。
- 支持媒体详情、元数据编辑、媒体识别、图片更新和播放列表管理。
- 支持下载管理器、全局搜索、搜索历史、深色 / 浅色主题。
- 支持服务器管理仪表盘和 WebDAV 配置同步。
- 支持中文、英文、法语界面。
平台支持
| 平台 | 状态 |
|---|---|
| Arch Linux x86_64 | 维护中 |
| 其他 Linux 发行版 | 可自行编译,未作为发布目标 |
| Windows / macOS | 不维护 |
安装
从 Gitea Releases 下载普通发布包:
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
启动:
qemby
卸载:
sudo pacman -R qemby
如果原生 Wayland 下遇到窗口或 OpenGL 兼容性问题,可以临时使用 XCB 后端:
QEMBY_FORCE_XCB=1 qemby
发布给普通用户时,应先按下文重新构建安装包,然后上传生成的普通包:
packaging/arch/qemby-0.0.6-1-x86_64.pkg.tar.zst
不要把 qemby-debug-*.pkg.tar.zst 当作普通安装包分发;它体积更大,主要用于调试符号。
从源码构建
安装构建依赖:
sudo pacman -S --needed \
base-devel git cmake ninja pkgconf \
qt6-base qt6-tools qt6-svg qt6-websockets \
mpv qcoro spdlog fmt hicolor-icon-theme
克隆仓库:
git clone --recursive <你的 Gitea 仓库地址> qEmby
cd qEmby
配置并构建:
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DQEMBY_USE_SYSTEM_DEPS=ON \
-DQEMBY_FETCHCONTENT_FALLBACK=OFF
cmake --build build
直接运行开发构建:
./build/bin/qEmbyApp
构建 Arch 安装包
本仓库包含本地发布用的 PKGBUILD:
git archive --format=tar.gz --prefix=qEmby-0.0.6/ \
-o packaging/arch/qemby-0.0.6.tar.gz HEAD
cd packaging/arch
makepkg -f
安装刚生成的包:
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
如果希望一边构建一边安装:
makepkg -fi
发布流程
- 确认版本号:
CMakeLists.txt和packaging/arch/PKGBUILD中的版本应一致。 - 从当前提交生成源码包并构建 Arch 安装包:
git archive --format=tar.gz --prefix=qEmby-0.0.6/ \
-o packaging/arch/qemby-0.0.6.tar.gz HEAD
cd packaging/arch
makepkg -f
- 本地安装并启动测试:
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
qemby
也可以直接测试开发构建:
cd ../..
cmake --build build
./build/bin/qEmbyApp
- 在 Gitea 创建版本标签,例如
v0.0.6。 - 上传
qemby-0.0.6-1-x86_64.pkg.tar.zst作为 Release 附件。 - 在 Release 说明中写清楚安装命令:
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
项目结构
qEmby/
├── CMakeLists.txt
├── cmake/
├── libs/
│ └── qwindowkit/
├── packaging/
│ └── arch/
│ ├── PKGBUILD
│ └── README.md
├── screenshots/
└── src/
├── qEmbyCore/ # API、模型、服务、配置
└── qEmbyApp/ # Qt Widgets 桌面应用
技术栈
| 组件 | 说明 |
|---|---|
| UI 框架 | Qt 6 Widgets |
| 语言 | C++20 |
| 播放器 | libmpv |
| 异步 | QCoro |
| 日志 | spdlog |
| 窗口框架 | QWindowKit |
| 构建系统 | CMake + Ninja |
| 打包 | Arch PKGBUILD |
反馈
请通过 Gitea Issues 反馈问题。提交问题时建议附上:
- qEmby 版本。
- 桌面环境和会话类型,例如 KDE Wayland、GNOME Wayland、X11。
- 复现步骤。
- 终端启动日志。
许可证
本项目基于 MIT License 开源。
致谢
Languages
C++
92.3%
CMake
4.1%
CSS
1.5%
Objective-C++
0.8%
C
0.3%
Other
1%



