mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
927dc8d1fd02cad970d6fcba91c4eddc65cbb641
Introduce a launcher coordinator to reserve startup ownership and prevent duplicate host launches. Adds a NamedPipe-based IPC server/client (LauncherCoordinatorIpcServer/Client), coordinator messages/models, and PublicShellStatus/activation types for richer shell reporting. Enhances StartupAttemptRecord and StartupAttemptRegistry to track coordinator pid/pipe, heartbeat, reserved-before-host-start, and public IPC status, plus new reservation/heartbeat APIs and takeover logic. Wire coordinator into App and LauncherFlowCoordinator to attach secondary launchers, publish coordinator status, probe existing hosts, and include more detailed launch result details. Also adds unit tests and docs describing coordinator and startup visuals behavior.
阑山桌面LanMountainDesktop
你的桌面,不止一面
Important
温馨提示:本项目有部分成分由氛围编程 (Vibe Coding) 方式编写。
如果您对此类项目有固有的排斥感,请无视此项目,谢谢。
简介
阑山桌面是一个跨平台桌面环境增强工具,面向需要高频查看信息、追求桌面效率与个性化体验的用户。
基于 Avalonia UI 和 .NET 10 构建,支持 Windows、Linux、macOS 三大平台。
核心特性
📊 信息聚合
- 课程表、日历、天气、新闻、热搜
- 所有信息一目了然,无需频繁切换窗口
🎯 效率工具
- 自习环境监测、计时器、知识卡片
- 最近文档、浏览器快捷入口
- 常用工具组件一键触达
🎨 个性化桌面
- 自由布局,随心所欲摆放组件
- 多页桌面,工作学习场景分离
- 主题切换、玻璃效果、圆角风格
🔌 插件生态
- 通过
.laapp插件扩展功能 - 官方 Plugin SDK 支持自定义组件
- 设置页、组件、集成功能一站式接入
为谁而设计
| 用户类型 | 典型场景 |
|---|---|
| 🎓 学生用户 | 课程表、自习监测、计时、天气和日常信息聚合 |
| 💼 办公用户 | 日历、资讯、最近文档、常用工具入口 |
| 🎨 效率爱好者 | 自由布局、主题切换、插件扩展 |
| 🇨🇳 中文用户 | 本地化界面、农历和节假日等本地语境支持 |
快速开始
环境要求
- .NET SDK 10
构建与运行
开发模式 (推荐):
# 还原依赖
dotnet restore
# 构建项目
dotnet build LanMountainDesktop.slnx -c Debug
# 直接运行主程序 (跳过 Launcher,快速开发)
dotnet run --project LanMountainDesktop/LanMountainDesktop.csproj
生产模式 (完整流程):
# 通过 Launcher 启动 (包含 OOBE、Splash、版本管理)
dotnet run --project LanMountainDesktop.Launcher/LanMountainDesktop.Launcher.csproj -- launch
详细说明请参考 开发文档。
运行测试
dotnet test LanMountainDesktop.slnx -c Debug
插件开发
阑山桌面支持通过 Plugin SDK 开发自定义插件:
# 安装插件模板
dotnet new install LanMountainDesktop.PluginTemplate
# 创建新插件
dotnet new lmd-plugin -n MyPlugin
- Plugin SDK:
LanMountainDesktop.PluginSdk(API 4.0.1) - 共享契约:
LanMountainDesktop.Shared.Contracts - 迁移指南: PLUGIN_SDK_V4_MIGRATION.md
项目结构
LanMountainDesktop/
├── LanMountainDesktop/ # 桌面宿主应用
├── LanMountainDesktop.Launcher/ # 启动器 (OOBE、Splash、版本管理、更新)
├── LanMountainDesktop.PluginSdk/ # 官方插件 SDK
├── LanMountainDesktop.Shared.Contracts/ # 宿主与插件共享契约
├── LanMountainDesktop.Appearance/ # 主题与外观基础设施
├── LanMountainDesktop.Settings.Core/# 设置持久化基础设施
└── LanMountainDesktop.Tests/ # 测试项目
生态边界
| 项目 | 职责 |
|---|---|
| 本仓库 | 桌面宿主、插件运行时、Plugin SDK、共享契约 |
| LanAirApp | 插件市场元数据、开发者生态材料 |
| LanMountainDesktop.SamplePlugin | 官方示例插件 |
文档索引
- 产品定位 - 产品愿景与目标用户
- 架构说明 - 仓库结构与运行时主线
- 开发指南 - 构建、测试、调试
- 视觉规范 - 主题、颜色、玻璃层级
- 圆角规范 - 圆角层级与动态规则
- 贡献指南 - PR、spec、文档协作规则
技术栈
- UI 框架: Avalonia UI
- 开发平台: .NET 10
- 支持平台: Windows 10+, Linux, macOS
许可证
Description
Languages
C#
95%
PowerShell
2.2%
Python
1.3%
Inno Setup
0.8%
HTML
0.6%
Other
0.1%