|
1 | 1 | # Sunshine Control Panel (Tauri) |
2 | 2 |
|
3 | | -基于 Tauri 2.8.4 的 Sunshine 控制面板 GUI。 |
| 3 | +基于 Tauri 2 + Vue 3 的 Sunshine Foundation 大屏桌面管理器,提供游戏库管理、系统监控、AI 助手等功能。 |
| 4 | + |
| 5 | +## 架构 |
| 6 | + |
| 7 | +```mermaid |
| 8 | +flowchart LR |
| 9 | + subgraph Client["WebView2 Client"] |
| 10 | + direction TB |
| 11 | + Vue["Vue 3 + Vite"] |
| 12 | + Composables["Composables<br/>useApps · useTauri · useTheme"] |
| 13 | + Vue --> Composables |
| 14 | + end |
| 15 | +
|
| 16 | + subgraph Core["Tauri 2 · Rust"] |
| 17 | + direction TB |
| 18 | + IPC["IPC Bridge<br/>invoke · events"] |
| 19 | + Axum["Axum Proxy :48081"] |
| 20 | + Sys["WMI COM · winreg"] |
| 21 | + AI["AI Proxy · reqwest"] |
| 22 | + IPC --> Axum & Sys & AI |
| 23 | + end |
| 24 | +
|
| 25 | + subgraph Services["External Services"] |
| 26 | + direction TB |
| 27 | + Sunshine["☀️ Sunshine<br/>HTTPS :47990"] |
| 28 | + Steam["Steam Store API"] |
| 29 | + LLM["LLM API · OpenAI"] |
| 30 | + GitHub["GitHub Releases"] |
| 31 | + VDD["IddCx VDD Driver"] |
| 32 | + end |
| 33 | +
|
| 34 | + Composables -- "Tauri invoke()" --> IPC |
| 35 | + Axum -- "HTTPS · reqwest" --> Sunshine |
| 36 | + Sys -. "WMI Query" .-> Sunshine |
| 37 | + Sys -. "Registry" .-> VDD |
| 38 | + AI -- "HTTP" --> LLM |
| 39 | + AI -- "HTTP" --> Steam & GitHub |
| 40 | +``` |
| 41 | + |
| 42 | +## 功能特性 |
| 43 | + |
| 44 | +### 核心能力 |
| 45 | + |
| 46 | +- 🔄 **更新管理** — 自动检查更新、下载进度、一键安装,支持 Beta/预发布版本切换 |
| 47 | +- ⚡ **运行模式切换** — 服务模式 ↔ 用户模式一键切换 |
| 48 | +- 🔌 **服务管理** — Sunshine 启停、重启、运行状态监控、配对设备管理 |
| 49 | +- 📊 **内存监控** — 进程内存/工作集实时趋势图、子进程列表、运行时间统计 |
| 50 | + |
| 51 | +### 游戏库 |
| 52 | + |
| 53 | +- 🎮 **应用管理** — 网格/列表视图、搜索过滤、收藏置顶、最近使用、排序 |
| 54 | +- 🖼️ **Steam 封面搜索** — 右键更新封面,Steam Store API 搜索候选,一键上传 |
| 55 | +- 🚀 **一键启动** — 右键启动游戏/应用,支持管理员权限、工作目录 |
| 56 | +- 🔧 **启动助手** — 为应用配置前置/后置脚本(虚拟显示器、分辨率切换等) |
| 57 | +- 📚 **游戏库扫描** — 自动扫描 Steam/Epic 已安装游戏 |
| 58 | + |
| 59 | +### 串流与驱动 |
| 60 | + |
| 61 | +- 🎬 **串流配置** — 编码器选择 (H.264/H.265/AV1)、码率调节、HDR 自动切换 |
| 62 | +- 📺 **VDD 驱动管理** — 虚拟显示驱动安装/配置/EDID 管理 |
| 63 | +- 🖱️ **虚拟鼠标** — 驱动安装与状态管理 |
| 64 | +- 🌙 **Moonlight Web** — 浏览器串流服务管理 |
| 65 | + |
| 66 | +### 智能与工具 |
| 67 | + |
| 68 | +- 🤖 **米塔 AI** — 为 Sunshine 及客户端提供大模型能力,多模型配置、桌面宠物 |
| 69 | +- 🛠️ **工具箱** — 码率调节器、DPI 缩放、键盘快捷键指南、系统诊断 |
| 70 | +- 📋 **日志管理** — 实时日志查看、导出、过滤 |
| 71 | + |
| 72 | +### 桌面体验 |
| 73 | + |
| 74 | +- 🎨 **主题切换** — 亮色/暗色/自定义背景 |
| 75 | +- 🌍 **中英双语** — 即时切换 |
| 76 | +- 🪟 **多窗口** — 主窗口 + 浮动工具栏 + 日志控制台 |
| 77 | +- ☀️ **防休眠** — 串流期间保持屏幕/系统唤醒 |
| 78 | +- 🔑 **全局快捷键** — Ctrl+Shift+Alt+T 切换工具栏 |
4 | 79 |
|
5 | 80 | ## 前置要求 |
6 | 81 |
|
@@ -58,43 +133,36 @@ npm run build:win |
58 | 133 | ``` |
59 | 134 | src-tauri/ # Tauri 后端 (Rust) |
60 | 135 | ├── src/ |
61 | | - │ ├── main.rs # 主入口 |
62 | | - │ ├── proxy_server.rs # 本地代理服务器 |
63 | | - │ ├── sunshine.rs # Sunshine 相关功能 |
64 | | - │ ├── vdd.rs # VDD 驱动管理 |
65 | | - │ ├── utils.rs # 工具函数 |
66 | | - │ ├── system.rs # 系统信息 |
67 | | - │ └── fs_utils.rs # 文件系统工具 |
68 | | - ├── inject-script.js # 注入到 Sunshine Web UI 的脚本 |
69 | | - └── Cargo.toml # Rust 依赖配置 |
| 136 | + │ ├── main.rs # 主入口、命令注册 |
| 137 | + │ ├── proxy_server.rs # Axum 本地代理 (Sunshine/Steam API/CORS) |
| 138 | + │ ├── sunshine.rs # Sunshine 进程管理、路径工具 |
| 139 | + │ ├── system.rs # 系统信息 (WMI 进程查询、内存统计) |
| 140 | + │ ├── fs_utils.rs # 文件系统、游戏扫描、Steam 封面搜索/上传 |
| 141 | + │ ├── commands.rs # HTTP 客户端、应用启动 |
| 142 | + │ ├── vdd.rs # VDD 驱动管理 |
| 143 | + │ └── windows.rs # Windows 注册表/autostart |
| 144 | + ├── inject-script.js # 注入到 Sunshine Web UI 的脚本 |
| 145 | + └── Cargo.toml |
70 | 146 |
|
71 | 147 | src/renderer/ # 前端 (Vue 3) |
72 | | - ├── components/ # Vue 组件 |
73 | | - │ ├── SidebarMenu.vue # 侧边栏菜单 |
74 | | - │ ├── SunshineFrame.vue # Sunshine Web UI iframe |
75 | | - │ └── ... |
76 | | - ├── styles/ # Less 样式 |
77 | | - └── ... |
| 148 | + ├── desktop/ # Desktop UI (独立 SPA) |
| 149 | + │ ├── views/ # 页面视图 (Dashboard、Apps、Settings...) |
| 150 | + │ ├── components/ # 组件 (AppGrid、ContextMenu、CoverPicker...) |
| 151 | + │ ├── composables/ # 组合式函数 (useApps、useTauri...) |
| 152 | + │ └── i18n/ # 国际化 (zh、en) |
| 153 | + ├── components/ # 共享组件 |
| 154 | + └── styles/ # Less 样式 |
78 | 155 |
|
79 | 156 | vite.config.js # Vite 构建配置 |
80 | | -package.json # NPM 依赖配置 |
| 157 | +package.json # NPM 依赖 |
81 | 158 | ``` |
82 | 159 |
|
83 | | -## 特性 |
84 | | - |
85 | | -- 🎨 现代化 UI,基于 Element Plus |
86 | | -- 🌐 本地代理服务器,解决跨域问题 |
87 | | -- 🎭 主题同步 (亮色/暗色) |
88 | | -- 🖼️ 拖放背景图片 |
89 | | -- 📊 VDD 驱动管理 |
90 | | -- 🔧 Sunshine 配置管理 |
91 | | -- 🪟 Windows 风格窗口控件 |
92 | | - |
93 | 160 | ## 技术栈 |
94 | 161 |
|
95 | | -- **前端**: Vue 3 + Element Plus + Less |
96 | | -- **后端**: Rust + Tauri 2.8.4 |
97 | | -- **HTTP**: Axum (代理服务器) |
| 162 | +- **前端**: Vue 3 + Less + 自定义组件 |
| 163 | +- **后端**: Rust + Tauri 2 |
| 164 | +- **HTTP**: Axum (代理)、reqwest (HTTP 客户端) |
| 165 | +- **系统**: WMI (进程查询)、Win32 API (内存统计)、Windows Registry |
98 | 166 | - **构建**: Vite |
99 | 167 |
|
100 | 168 | ## 集成到 Sunshine |
|
0 commit comments