https://github.com/qiin2333/sunshine-control-panel
🎮 Sunshine Foundation 大屏桌面管理器 | Tauri + Vue 3,游戏库管理、米塔AI助手、内存监控、Steam封面搜索、启动助手
https://github.com/qiin2333/sunshine-control-panel
ai-assistant desktop-app game-library game-streaming rust steam sunshine tauri vite vue3 windows
Last synced: 20 days ago
JSON representation
🎮 Sunshine Foundation 大屏桌面管理器 | Tauri + Vue 3,游戏库管理、米塔AI助手、内存监控、Steam封面搜索、启动助手
- Host: GitHub
- URL: https://github.com/qiin2333/sunshine-control-panel
- Owner: qiin2333
- License: mit
- Created: 2024-03-03T07:47:50.000Z (over 2 years ago)
- Default Branch: tauri
- Last Pushed: 2026-05-27T06:16:32.000Z (23 days ago)
- Last Synced: 2026-05-27T06:23:57.104Z (23 days ago)
- Topics: ai-assistant, desktop-app, game-library, game-streaming, rust, steam, sunshine, tauri, vite, vue3, windows
- Language: Vue
- Homepage: https://sunshine-foundation.vercel.app
- Size: 3.39 MB
- Stars: 400
- Watchers: 1
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sunshine Control Panel (Tauri)
基于 Tauri 2 + Vue 3 的 Sunshine Foundation 大屏桌面管理器,提供游戏库管理、系统监控、AI 助手等功能。
## 架构
```mermaid
flowchart LR
subgraph Client["WebView2 Client"]
direction TB
Vue["Vue 3 + Vite"]
Composables["Composables
useApps · useTauri · useTheme"]
Vue --> Composables
end
subgraph Core["Tauri 2 · Rust"]
direction TB
IPC["IPC Bridge
invoke · events"]
Axum["Axum Proxy :48081"]
Sys["WMI COM · winreg"]
AI["AI Proxy · reqwest"]
IPC --> Axum & Sys & AI
end
subgraph Services["External Services"]
direction TB
Sunshine["☀️ Sunshine
HTTPS :47990"]
Steam["Steam Store API"]
LLM["LLM API · OpenAI"]
GitHub["GitHub Releases"]
VDD["IddCx VDD Driver"]
end
Composables -- "Tauri invoke()" --> IPC
Axum -- "HTTPS · reqwest" --> Sunshine
Sys -. "WMI Query" .-> Sunshine
Sys -. "Registry" .-> VDD
AI -- "HTTP" --> LLM
AI -- "HTTP" --> Steam & GitHub
```
## 功能特性
### 核心能力
- 🔄 **更新管理** — 自动检查更新、下载进度、一键安装,支持 Beta/预发布版本切换
- ⚡ **运行模式切换** — 服务模式 ↔ 用户模式一键切换
- 🔌 **服务管理** — Sunshine 启停、重启、运行状态监控、配对设备管理
- 📊 **内存监控** — 进程内存/工作集实时趋势图、子进程列表、运行时间统计
### 游戏库
- 🎮 **应用管理** — 网格/列表视图、搜索过滤、收藏置顶、最近使用、排序
- 🖼️ **Steam 封面搜索** — 右键更新封面,Steam Store API 搜索候选,一键上传
- 🚀 **一键启动** — 右键启动游戏/应用,支持管理员权限、工作目录
- 🔧 **启动助手** — 为应用配置前置/后置脚本(虚拟显示器、分辨率切换等)
- 📚 **游戏库扫描** — 自动扫描 Steam/Epic 已安装游戏
### 串流与驱动
- 🎬 **串流配置** — 编码器选择 (H.264/H.265/AV1)、码率调节、HDR 自动切换
- 📺 **VDD 驱动管理** — 虚拟显示驱动安装/配置/EDID 管理
- 🖱️ **虚拟鼠标** — 驱动安装与状态管理
- 🌙 **Moonlight Web** — 浏览器串流服务管理
### 智能与工具
- 🤖 **米塔 AI** — 为 Sunshine 及客户端提供大模型能力,多模型配置、桌面宠物
- 🛠️ **工具箱** — 码率调节器、DPI 缩放、键盘快捷键指南、系统诊断
- 📋 **日志管理** — 实时日志查看、导出、过滤
### 桌面体验
- 🎨 **主题切换** — 亮色/暗色/自定义背景
- 🌍 **中英双语** — 即时切换
- 🪟 **多窗口** — 主窗口 + 浮动工具栏 + 日志控制台
- ☀️ **防休眠** — 串流期间保持屏幕/系统唤醒
- 🔑 **全局快捷键** — Ctrl+Shift+Alt+T 切换工具栏
## 前置要求
- Node.js 和 npm
- Rust 和 Cargo (用于 Tauri)
- Windows SDK (Windows)
## 开发
```bash
# 安装依赖
npm install
# 启动开发服务器(代理到 Sunshine 服务)
npm run dev
# 仅启动前端开发服务器
npm run dev:renderer
```
### WebUI 联调开发模式
当需要同时开发 WebUI 和 Tauri GUI 时,可以使用 `dev-webui` 模式让 Tauri 代理服务器转发请求到 WebUI 开发服务器:
```bash
# 终端 1:在项目根目录启动 WebUI 开发服务器(端口 3000)
cd ../../../.. # 回到 Sunshine 根目录
npm run dev-server
# 终端 2:在 sunshine-control-panel 目录启动 Tauri(代理到 WebUI 开发服务器)
npm run dev-webui
```
这种模式下:
- WebUI 开发服务器运行在 `https://localhost:3000`
- Tauri 代理服务器会将请求转发到 WebUI 开发服务器
- 支持 HMR(热模块替换),修改 WebUI 代码会实时生效
- API 请求仍会被 WebUI 开发服务器代理到 Sunshine 服务(`https://localhost:47990`)
## 构建
```bash
# 构建渲染进程
npm run build:renderer
# 构建完整应用
npm run build
# Windows 构建
npm run build:win
```
## 项目结构
```
src-tauri/ # Tauri 后端 (Rust)
├── src/
│ ├── main.rs # 主入口、命令注册
│ ├── proxy_server.rs # Axum 本地代理 (Sunshine/Steam API/CORS)
│ ├── sunshine.rs # Sunshine 进程管理、路径工具
│ ├── system.rs # 系统信息 (WMI 进程查询、内存统计)
│ ├── fs_utils.rs # 文件系统、游戏扫描、Steam 封面搜索/上传
│ ├── commands.rs # HTTP 客户端、应用启动
│ ├── vdd.rs # VDD 驱动管理
│ └── windows.rs # Windows 注册表/autostart
├── inject-script.js # 注入到 Sunshine Web UI 的脚本
└── Cargo.toml
src/renderer/ # 前端 (Vue 3)
├── desktop/ # Desktop UI (独立 SPA)
│ ├── views/ # 页面视图 (Dashboard、Apps、Settings...)
│ ├── components/ # 组件 (AppGrid、ContextMenu、CoverPicker...)
│ ├── composables/ # 组合式函数 (useApps、useTauri...)
│ └── i18n/ # 国际化 (zh、en)
├── components/ # 共享组件
└── styles/ # Less 样式
vite.config.js # Vite 构建配置
package.json # NPM 依赖
```
## 技术栈
- **前端**: Vue 3 + Less + 自定义组件
- **后端**: Rust + Tauri 2
- **HTTP**: Axum (代理)、reqwest (HTTP 客户端)
- **系统**: WMI (进程查询)、Win32 API (内存统计)、Windows Registry
- **构建**: Vite
## 集成到 Sunshine
编译后的 GUI 会自动安装到 Sunshine 的 `assets/gui` 目录:
```
Sunshine/
└── assets/
└── gui/
└── sunshine-gui.exe
```
## 注意事项
- Tauri GUI 是可选组件,不影响 Sunshine 核心功能
- 需要 Rust 工具链才能构建 Tauri 应用
- 首次构建会下载并编译 Rust 依赖,需要较长时间