docs: update Arch Linux release README

This commit is contained in:
dela
2026-06-10 17:40:51 +08:00
parent fa31f4f821
commit c69b863e9a

514
README.md
View File

@@ -5,27 +5,21 @@
<h1 align="center">qEmby</h1> <h1 align="center">qEmby</h1>
<p align="center"> <p align="center">
<b>A modern desktop client for Emby & Jellyfin media servers</b><br/> <b>面向 Arch Linux 的 Emby / Jellyfin 桌面客户端</b>
<b>Emby & Jellyfin 媒体服务器的现代桌面客户端</b>
</p> </p>
<p align="center"> <p align="center">
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"/></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"/></a>
<a href="https://github.com/qEmby/qEmby/releases/latest"><img src="https://img.shields.io/github/v/release/qEmby/qEmby?include_prereleases&label=Download" alt="Release"/></a> <img src="https://img.shields.io/badge/Platform-Arch%20Linux-1793D1.svg" alt="Platform: Arch Linux"/>
<img src="https://img.shields.io/badge/Qt-6.x-green.svg" alt="Qt 6"/> <img src="https://img.shields.io/badge/Qt-6.x-41CD52.svg" alt="Qt 6"/>
<img src="https://img.shields.io/badge/C%2B%2B-20-orange.svg" alt="C++20"/> <img src="https://img.shields.io/badge/C%2B%2B-20-orange.svg" alt="C++20"/>
<img src="https://img.shields.io/badge/Platform-Windows%20|%20Linux%20|%20macOS-lightgrey.svg" alt="Platform: Windows | Linux | macOS"/>
</p> </p>
<p align="center"> qEmby 是一个使用 Qt 6 / C++20 编写的 Emby、Jellyfin 桌面客户端,内置基于 libmpv 的播放器,并针对 Arch Linux 桌面环境维护。
<a href="#中文">中文</a> | <a href="#english">English</a>
</p>
--- 当前项目只维护 Arch Linux 版本。Windows 专属逻辑已经移除macOS 和 Windows 不作为发布目标。
<a id="中文"></a> ## 截图
## 📸 应用截图
<p align="center"> <p align="center">
<img src="screenshots/2.png" width="45%" alt="首页"/> <img src="screenshots/2.png" width="45%" alt="首页"/>
@@ -36,341 +30,203 @@
<img src="screenshots/4.png" width="45%" alt="管理仪表盘"/> <img src="screenshots/4.png" width="45%" alt="管理仪表盘"/>
</p> </p>
## 📥 下载 ## 功能
最新版本:**v0.0.6** - 浏览 Emby / Jellyfin 媒体库,支持电影和剧集视图。
- 内置 libmpv 播放器,支持 VAAPI、VDPAU、CUDA 和软件解码选项。
- 支持外部播放器MPV、VLC、MPC-Qt。
- 支持播放进度同步、连续播放、上一集 / 下一集和播放完成画廊。
- 支持弹幕搜索、手动匹配、缓存、ASS 管线和原生弹幕渲染。
- 支持媒体详情、元数据编辑、媒体识别、图片更新和播放列表管理。
- 支持下载管理器、全局搜索、搜索历史、深色 / 浅色主题。
- 支持服务器管理仪表盘和 WebDAV 配置同步。
- 支持中文、英文、法语界面。
| 安装包 | 说明 | ## 平台支持
|---|---|
| [qEmby-v0.0.6-Win-x64-Setup.exe](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qEmby-v0.0.6-Win-x64-Setup.exe) | Windows 10/11 x64 安装包 |
| [qEmby-v0.0.6-Win-x64.zip](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qEmby-v0.0.6-Win-x64.zip) | Windows 10/11 x64 绿色便携版 |
| [qemby-0.0.6-macos-arm64.dmg](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qemby-0.0.6-macos-arm64.dmg) | macOS 26+ (Apple 芯片) |
旧版 Windows、Linux 和 macOS 构建可以在 [Releases](https://github.com/qEmby/qEmby/releases) 页面下载。
## 🚀 v0.0.6 更新内容
- 优化了剧集详情页展示,支持版本切换。
- 支持播放状态展示和切换。
- 增加了详情页的缓存,加快下一次载入速度。
- 优化了播放界面 OSD支持上一集和下一集支持连续播放。
- 优化了媒体库等上下滑动的流畅度,优化了加载图片的逻辑。
- 新增播放完成画廊,默认关闭,可以在设置中打开。
## ✨ 功能特性
- 🎬 浏览和管理你的 Emby / Jellyfin 媒体库
- ▶️ 内置 **libmpv** 驱动的视频播放器
- 💬 弹幕播放,支持搜索、匹配、缓存和原生覆盖层渲染
- 🧩 支持元数据编辑、媒体识别、图片更新和播放列表管理
- 📥 下载管理器
- 🌗 深色 / 浅色主题切换
- 🌐 国际化支持(中文 / 英文 / 法语)
- 🔍 支持搜索历史的媒体搜索
- 📺 当前支持电视剧、电影媒体类型
- 📦 提供 Windows 安装包 / 绿色版,以及 Linux AppImage / deb 包
- ⚡ 基于 C++20 协程的异步操作QCoro
- 🪟 原生风格的自定义窗口边框QWindowKit
## 💻 平台支持
| 平台 | 状态 | | 平台 | 状态 |
| --- | --- | | --- | --- |
| Windows 10/11 x64 | ✅ 已适配 | | Arch Linux x86_64 | 维护中 |
| Linux x64 (AppImage / deb) | ✅ 已适配 | | 其他 Linux 发行版 | 可自行编译,未作为发布目标 |
| macOS 26+ (Apple Silicon) | ✅ 已适配 | | Windows / macOS | 不维护 |
## 📋 开发路线图 ## 安装
- [x] Emby / Jellyfin 媒体库浏览 从 Gitea Releases 下载普通发布包:
- [x] 内置视频播放器libmpv
- [x] 深色 / 浅色主题
- [x] 国际化支持(中文 / 英文)
- [x] 媒体搜索与搜索历史
- [x] 电视剧、电影支持
- [x] 服务器管理仪表盘
- [x] 支持添加到播放列表和从播放列表中移除
- [x] 支持识别来更新元数据
- [x] 支持修改元数据和图片
- [x] 弹幕系统(搜索、匹配、设置、渲染)
- [x] 下载管理器
- [ ] AI 字幕生成
- [x] Linux 平台适配
- [x] macOS 平台适配
> 本项目为个人兴趣开发,欢迎贡献和反馈! ```bash
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
```
## 🛠️ 技术栈 启动:
| 组件 | 技术 | ```bash
qemby
```
卸载:
```bash
sudo pacman -R qemby
```
如果原生 Wayland 下遇到窗口或 OpenGL 兼容性问题,可以临时使用 XCB 后端:
```bash
QEMBY_FORCE_XCB=1 qemby
```
发布给普通用户时,应先按下文重新构建安装包,然后上传生成的普通包:
```text
packaging/arch/qemby-0.0.6-1-x86_64.pkg.tar.zst
```
不要把 `qemby-debug-*.pkg.tar.zst` 当作普通安装包分发;它体积更大,主要用于调试符号。
## 从源码构建
安装构建依赖:
```bash
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
```
克隆仓库:
```bash
git clone --recursive <你的 Gitea 仓库地址> qEmby
cd qEmby
```
配置并构建:
```bash
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DQEMBY_USE_SYSTEM_DEPS=ON \
-DQEMBY_FETCHCONTENT_FALLBACK=OFF
cmake --build build
```
直接运行开发构建:
```bash
./build/bin/qEmbyApp
```
## 构建 Arch 安装包
本仓库包含本地发布用的 PKGBUILD
```bash
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
```
安装刚生成的包:
```bash
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
```
如果希望一边构建一边安装:
```bash
makepkg -fi
```
## 发布流程
1. 确认版本号:`CMakeLists.txt``packaging/arch/PKGBUILD` 中的版本应一致。
2. 从当前提交生成源码包并构建 Arch 安装包:
```bash
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
```
3. 本地安装并启动测试:
```bash
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
qemby
```
也可以直接测试开发构建:
```bash
cd ../..
cmake --build build
./build/bin/qEmbyApp
```
4. 在 Gitea 创建版本标签,例如 `v0.0.6`
5. 上传 `qemby-0.0.6-1-x86_64.pkg.tar.zst` 作为 Release 附件。
6. 在 Release 说明中写清楚安装命令:
```bash
sudo pacman -U qemby-0.0.6-1-x86_64.pkg.tar.zst
```
## 项目结构
```text
qEmby/
├── CMakeLists.txt
├── cmake/
├── libs/
│ └── qwindowkit/
├── packaging/
│ └── arch/
│ ├── PKGBUILD
│ └── README.md
├── screenshots/
└── src/
├── qEmbyCore/ # API、模型、服务、配置
└── qEmbyApp/ # Qt Widgets 桌面应用
```
## 技术栈
| 组件 | 说明 |
| --- | --- | | --- | --- |
| 框架 | Qt 6.x (Widgets) | | UI 框架 | Qt 6 Widgets |
| 语言 | C++20 | | 语言 | C++20 |
| 视频播放 | libmpv | | 播放 | libmpv |
| 异步 | QCoro (Qt C++20 协程) | | 异步 | QCoro |
| 日志 | spdlog | | 日志 | spdlog |
| 窗口框架 | QWindowKit | | 窗口框架 | QWindowKit |
| 构建系统 | CMake | | 构建系统 | CMake + Ninja |
| 打包 | Arch PKGBUILD |
## 📦 环境要求 ## 反馈
- **Qt 6.x**(包含 Widgets、Core、Network、Concurrent、OpenGLWidgets、LinguistTools、WebSockets 模块) 请通过 Gitea Issues 反馈问题。提交问题时建议附上:
- **CMake** ≥ 3.16
- 支持 **C++20** 的编译器(推荐 MSVC 2022
- **libmpv** 开发文件(见下方说明)
- **Git**(用于克隆子模块)
## 🚀 构建指南 - qEmby 版本。
- 桌面环境和会话类型,例如 KDE Wayland、GNOME Wayland、X11。
- 复现步骤。
- 终端启动日志。
### 1. 克隆仓库 ## 许可证
```bash 本项目基于 [MIT License](LICENSE) 开源。
git clone --recursive https://github.com/qEmby/qEmby.git
cd qEmby
```
### 2. 获取 libmpv ## 致谢
下载 libmpv 开发包,并放置到 `libs/libmpv/` 目录下,结构如下: - [Qt](https://www.qt.io/)
- [mpv](https://mpv.io/)
``` - [QWindowKit](https://github.com/stdware/qwindowkit)
libs/libmpv/ - [QCoro](https://github.com/danvratil/qcoro)
├── bin/ - [spdlog](https://github.com/gabime/spdlog)
│ └── libmpv-2.dll
├── include/
│ └── mpv/
│ ├── client.h
│ └── render.h (等)
└── lib/
└── libmpv.dll.a
```
libmpv 获取方式:
- [shinchiro/mpv-winbuild-cmake](https://github.com/shinchiro/mpv-winbuild-cmake/releases)Windows 预编译版本)
- [mpv-player/mpv](https://github.com/mpv-player/mpv)(从源码编译)
### 3. 配置和构建
```bash
cmake -B build -DCMAKE_PREFIX_PATH="/path/to/Qt6/lib/cmake"
cmake --build build --config Release
```
> **提示:** 在 Windows 上使用 MSVC 时,也可以直接在 Qt Creator 或 Visual Studio 中打开 CMake 项目。
## 📁 项目结构
```
qEmby/
├── CMakeLists.txt # 根 CMake 配置
├── libs/
│ ├── libmpv/ # libmpv SDK未纳入版本控制见构建指南
│ └── qwindowkit/ # QWindowKitgit 子模块)
└── src/
├── qEmbyCore/ # 核心库API、模型、服务
│ ├── api/ # Emby/Jellyfin API 客户端
│ ├── config/ # 配置管理
│ ├── models/ # 数据模型
│ └── services/ # 业务逻辑服务
└── qEmbyApp/ # 桌面应用
├── components/ # 可复用 UI 组件
├── managers/ # 应用管理器
├── resources/ # 图标、主题、翻译
├── utils/ # 工具类
└── views/ # 应用视图
```
## 💬 交流社区
加入 Telegram 交流群:[https://t.me/+qXQ-zU56z9gxOWNl](https://t.me/+qXQ-zU56z9gxOWNl)
> **注意:** 本项目是为爱发电项目,测试覆盖不全,敬请谅解。如有问题请通过 [GitHub Issues](https://github.com/qEmby/qEmby/issues) 反馈。
## 📄 许可证
本项目基于 [MIT 许可证](LICENSE) 开源。
## 🙏 致谢
- [Qt](https://www.qt.io/) — 应用框架 (LGPL v3)
- [mpv](https://mpv.io/) — 媒体播放引擎 (LGPL v2.1+)
- [QWindowKit](https://github.com/stdware/qwindowkit) — 自定义窗口框架 (Apache-2.0)
- [QCoro](https://github.com/danvratil/qcoro) — Qt C++20 协程库 (MIT)
- [spdlog](https://github.com/gabime/spdlog) — 高性能日志库 (MIT)
---
<a id="english"></a>
## 📸 Screenshots
<p align="center">
<img src="screenshots/2.png" width="45%" alt="Home"/>
<img src="screenshots/5.png" width="45%" alt="Detail"/>
</p>
<p align="center">
<img src="screenshots/3.png" width="45%" alt="Settings"/>
<img src="screenshots/4.png" width="45%" alt="Admin Dashboard"/>
</p>
## 📥 Download
Latest release: **v0.0.6**
| Package | Description |
|---|---|
| [qEmby-v0.0.6-Win-x64-Setup.exe](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qEmby-v0.0.6-Win-x64-Setup.exe) | Windows 10/11 x64 installer |
| [qEmby-v0.0.6-Win-x64.zip](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qEmby-v0.0.6-Win-x64.zip) | Windows 10/11 x64 portable package |
| [qemby-0.0.6-macos-arm64.dmg](https://github.com/qEmby/qEmby/releases/download/v0.0.6/qemby-0.0.6-macos-arm64.dmg) | macOS 26+ (Apple Silicon) |
Older Windows, Linux and macOS builds are available on the [Releases](https://github.com/qEmby/qEmby/releases) page.
## 🚀 What's New in v0.0.6
- Optimized episode detail page display with version switching support.
- Added playback status display and switching.
- Added detail page caching for faster subsequent loading.
- Enhanced player OSD with previous/next episode and continuous playback.
- Improved scrolling smoothness in media library views and optimized image loading logic.
- Added post-playback gallery (disabled by default, configurable in settings).
## ✨ Features
- 🎬 Browse and manage your Emby / Jellyfin media library
- ▶️ Built-in video player powered by **libmpv**
- 💬 Danmaku playback with search, matching, cache and native overlay rendering
- 🧩 Metadata editing, media identification, image updates and playlist tools
- 📥 Download manager
- 🌗 Dark and Light theme support
- 🌐 Internationalization support (Chinese / English)
- 🔍 Media search with history
- 📺 TV series and movies media types
- 📦 Windows installer / portable packages and Linux AppImage / deb packages
- ⚡ Asynchronous operations with C++20 coroutines (QCoro)
- 🪟 Custom window frame with native look (QWindowKit)
## 💻 Platform Support
| Platform | Status |
|---|---|
| Windows 10/11 x64 | ✅ Supported |
| Linux x64 (AppImage / deb) | ✅ Supported |
| macOS 26+ (Apple Silicon) | ✅ Supported |
## 📋 Roadmap
- [x] Emby / Jellyfin media library browsing
- [x] Built-in video player (libmpv)
- [x] Dark / Light theme
- [x] Internationalization (Chinese / English)
- [x] Media search with history
- [x] TV series & movies support
- [x] Server administration dashboard
- [x] Playlist support (add/remove items)
- [x] Media identification & metadata refresh
- [x] Metadata and image editing
- [x] Danmaku (bullet comments) system
- [x] Download manager
- [ ] AI-powered subtitle generation
- [x] Linux platform support
- [x] macOS platform support
> This is a personal hobby project, developed out of interest. Contributions and feedback are welcome!
## 🛠️ Tech Stack
| Component | Technology |
|---|---|
| Framework | Qt 6.x (Widgets) |
| Language | C++20 |
| Video Player | libmpv |
| Async | QCoro (C++20 Coroutines for Qt) |
| Logging | spdlog |
| Window Kit | QWindowKit |
| Build System | CMake |
## 📦 Prerequisites
- **Qt 6.x** (with Widgets, Core, Network, Concurrent, OpenGLWidgets, LinguistTools, WebSockets)
- **CMake** ≥ 3.16
- **C++20** compatible compiler (MSVC 2022 recommended)
- **libmpv** development files (see below)
- **Git** (for cloning submodules)
## 🚀 Build
### 1. Clone the repository
```bash
git clone --recursive https://github.com/qEmby/qEmby.git
cd qEmby
```
### 2. Get libmpv
Download the libmpv development package and place it in `libs/libmpv/` with the following structure:
```
libs/libmpv/
├── bin/
│ └── libmpv-2.dll
├── include/
│ └── mpv/
│ ├── client.h
│ └── render.h (etc.)
└── lib/
└── libmpv.dll.a
```
You can get libmpv from:
- [shinchiro/mpv-winbuild-cmake](https://github.com/shinchiro/mpv-winbuild-cmake/releases) (Windows builds)
- [mpv-player/mpv](https://github.com/mpv-player/mpv) (build from source)
### 3. Configure and build
```bash
cmake -B build -DCMAKE_PREFIX_PATH="/path/to/Qt6/lib/cmake"
cmake --build build --config Release
```
> **Tip:** On Windows with MSVC, you can also open the project in Qt Creator or Visual Studio with CMake support.
## 📁 Project Structure
```
qEmby/
├── CMakeLists.txt # Root CMake configuration
├── libs/
│ ├── libmpv/ # libmpv SDK (not tracked, see Build section)
│ └── qwindowkit/ # QWindowKit (git submodule)
└── src/
├── qEmbyCore/ # Core library (API, models, services)
│ ├── api/ # Emby/Jellyfin API client
│ ├── config/ # Configuration management
│ ├── models/ # Data models
│ └── services/ # Business logic services
└── qEmbyApp/ # Desktop application
├── components/ # Reusable UI components
├── managers/ # Application managers
├── resources/ # Icons, themes, translations
├── utils/ # Utility classes
└── views/ # Application views
```
## 💬 Community
Join our Telegram group: [https://t.me/+qXQ-zU56z9gxOWNl](https://t.me/+qXQ-zU56z9gxOWNl)
> **Note:** This is a passion project with limited testing. Your understanding is appreciated. Please report any issues via [GitHub Issues](https://github.com/qEmby/qEmby/issues).
## 📄 License
This project is licensed under the [MIT License](LICENSE).
## 🙏 Acknowledgements
- [Qt](https://www.qt.io/) — Application framework (LGPL v3)
- [mpv](https://mpv.io/) — Media player engine (LGPL v2.1+)
- [QWindowKit](https://github.com/stdware/qwindowkit) — Custom window frame (Apache-2.0)
- [QCoro](https://github.com/danvratil/qcoro) — C++20 Coroutines for Qt (MIT)
- [spdlog](https://github.com/gabime/spdlog) — Fast logging library (MIT)