Skip to content

Latest commit

 

History

87 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightUp

English

LightUp 是一个面向 Windows 的桌面启动器,基于 .NET 10 和 Avalonia 构建。它把可分类的磁贴工作区与全局唤出的搜索栏组合在一起:常用程序、文件夹、快捷方式和链接可以放入工作区,也可以通过搜索快速启动。

当前处于积极开发阶段。核心启动器体验已经可用,完整搜索、插件平台和产品化能力仍在持续完善。

功能概览

磁贴启动器

  • 独立、可拖动的启动器窗口,启动时默认显示,也可从托盘或全局热键唤出。
  • 分类侧栏或顶部导航;“全部”为虚拟聚合视图,“未分类”为受保护的真实归属分类。
  • 新建、重命名、排序和删除分类。删除时可选择迁移入口到目标分类,或同时删除入口;操作需要确认并支持撤销。
  • 通过文件选择器或拖放添加文件、文件夹、程序、.lnk.url 和 HTTP(S) 链接。
  • 磁贴支持拖动排序、跨分类拖动、键盘排序、右键操作、名称/备注编辑、自定义图标,以及最近一次移除撤销。
  • 读取 Windows Shell 图标,并在目标不可用时显示状态、提供直接重新选择目标和移除操作。
  • 紧凑与舒适两种磁贴密度;窗口位置、尺寸和置顶状态会恢复。

搜索启动器

  • 全局搜索窗口,支持键盘导航、打开、右键上下文操作与窗口置顶。
  • 简约模式只搜索磁贴入口;空查询按最近打开时间和使用次数展示常用入口。
  • 完整模式在磁贴之外搜索常见快捷方式、PATH 可执行文件、内建操作和已启用插件。
  • 内建操作包括打开磁贴启动器、打开设置,以及调用已安装 Everything 的 es: 搜索协议。
  • 搜索结果会保留磁贴自定义图标、使用记录和备注,并对失败启动给出可行动提示。

运行与设置

  • 两套独立全局热键:搜索默认 Alt + Space,磁贴启动器默认 Alt + Shift + Space
  • 托盘图标可打开搜索、磁贴启动器和设置,也可退出应用。
  • 可选跟随系统、浅色或深色主题;提供预设和自定义强调色。
  • 可配置搜索结果上限、磁贴搜索范围、分类导航位置、磁贴密度、热键和插件启用/权重。
  • 对损坏或旧版配置提供默认值回退和兼容迁移;保存使用临时文件替换,避免半写入配置。

快速开始

系统要求

  • Windows 10/11 x64
  • .NET 10 SDK:从源码构建时需要
  • Everything:可选;仅用于完整模式的 Everything 内建操作,不会由 LightUp 自动安装或启动

从源码运行

git clone https://github.com/bbdd2729/LightUp.git
Set-Location LightUp
dotnet restore LightUp.slnx
dotnet run --project LightUpUI/LightUpUI.csproj

启动后先看到磁贴工作区。可以直接把文件、文件夹或快捷方式拖进去,或通过右上角的添加按钮选择入口。

构建与测试

dotnet build LightUp.slnx -c Release
dotnet test LightUpTest/LightUpTest.csproj -c Release

GitHub Actions 会在每次推送时构建、测试并上传自包含 Windows x64 包。手动触发 Release Windows Package 工作流时,输入语义化版本号即可构建发布包、创建 v<version> 标签并生成 GitHub Release。

使用指南

管理磁贴

  1. 在启动器中创建分类,或直接将入口拖入当前分类。
  2. 单击磁贴选中,双击或按 Enter 打开。
  3. 使用 F2 编辑选中磁贴名称;在底部编辑备注和移动目标。
  4. 将磁贴拖到其他分类移动,拖到另一磁贴的上半或下半调整顺序。
  5. 右键磁贴可打开所在位置、重新选择失效目标、设置/清除自定义图标或移除入口。

删除分类前会显示确认条。选择“迁移入口”时可指定目标分类;选择“删除入口”时会删除其中的磁贴记录。两种操作都可以从底部的撤销入口立即恢复。

搜索模式

模式 搜索范围 适用场景
简约模式 已添加的磁贴 只希望启动个人工作区中的常用入口
完整模式 磁贴、快捷方式、PATH 程序、内建操作和插件 希望像桌面搜索器一样查找更多本机入口

完整模式中的 Everything 项会通过 Windows es: 协议委托给本机安装的 Everything;它尚不是直接的 Everything IPC 文件结果提供器。

配置与数据

所有用户数据仅保存在本机:

  • %LOCALAPPDATA%\LightUp\launcher.json:分类、磁贴、排序、使用记录、备注和自定义图标路径。
  • %LOCALAPPDATA%\LightUp\search-launcher.json:搜索模式、热键、主题、窗口状态、布局和插件设置。

不要将这些文件中的个人路径和快捷方式内容提交到仓库。删除这两个文件可恢复默认状态,但会清空自己的启动器数据。

插件

当前提供最小的进程内搜索插件入口。将插件 DLL 放到发布目录下的 Plugins 文件夹,插件实现 ISearchProviderPlugin 并返回 ISearchProvider 即可参与完整模式搜索。插件设置可控制启用状态和权重。

插件加载目前仍是基础实现:没有 manifest、权限模型、可卸载加载上下文或插件安装界面。不要加载不受信任的 DLL。

架构

  • LightUpUI:Avalonia UI、ViewModel、服务、存储和 Windows 适配层。
  • LightUpTest:xUnit 测试,覆盖搜索、设置、热键、窗口行为、磁贴状态、拖放、图标与目标健康度。
  • .github/workflows:Windows 构建与手动发布自动化。

代码采用 MVVM:ViewModel 负责状态与命令,服务负责持久化、搜索、热键、窗口宿主和平台调用,策略类负责可单测的规则。

路线图

P0 - 稳定性

  • 持久化、配置迁移、窗口状态、热键与托盘基础能力。
  • 磁贴分类、分类安全删除与撤销、拖放移动、目标修复与启动失败反馈。
  • 为分类删除、窗口生命周期和托盘路径补充可重复的 Windows UI 冒烟验证。

P1 - 核心体验

  • 简约/完整搜索模式、磁贴排序、主题设置与基础插件入口。
  • 完善拖入预览、非法项目明细和原生拖放验证。
  • 引入异步、可缓存且可失效的磁贴图标提供器,并扩展自定义图标流程。

P2 - 搜索与平台

  • 重构统一搜索结果/操作契约。
  • 实现真实的 Everything 文件提供器、查询前缀、计算/URL/系统动作和搜索历史。
  • 增加单实例、开机启动、诊断日志和明确的发布/升级策略。

P3 - 插件平台

  • 建立带 manifest、诊断、隔离边界和管理界面的稳定插件平台。

贡献

欢迎问题报告和改进建议。提交更改时请保持 MVVM 边界清晰,新增行为应有相应测试,并使用:

dotnet build LightUp.slnx -c Release
dotnet test LightUpTest/LightUpTest.csproj -c Release

许可证

本项目使用 GNU General Public License v3.0

About

A multi-platform app launcher based on Avalonia.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages