Skip to content

Repository files navigation

Lulen — Windows 快速启动面板

仿 Rolan、对标 Maye 的开源快速启动器。Python + PySide6 实现,只有一个悬浮小面板:全局热键呼出,把东西拖进来,点一下就启动。

深色主题

功能

启动与管理

  • 条目类型:应用(可带参数、工作目录、管理员运行)/ 文件 / 文件夹 / 网址 / 命令,五类统一右键管理
  • 拖拽添加:从资源管理器把 exe / 文件 / 文件夹 / 网址(含 .url 文件、裸域名如 github.com)拖进面板即成条目,支持多选批量;也可右键新建
  • 自动图标:自动提取 exe/lnk 图标,网址后台自动抓取 favicon
  • 右键菜单:运行 / 管理员运行 / 在资源管理器中显示 / 复制路径 / 编辑 / 移动到分组 / 删除
  • 条目快捷键:每个条目可设全局快捷键,无需呼出面板直接启动
  • 参数变量:启动参数支持 %mp%(条目所在目录)、%mr%(所在盘根)及系统环境变量

面板与分组

  • 全局热键呼出/隐藏,失焦自动隐藏(1.2s 宽限期,拖拽文件进来不会被吞),ESC 关闭
  • 分组多页:页签切换、滚轮在页签上滚动换组、拖动页签给分组排序、页签右键重命名/删除
  • 跨组移动条目两种手势:拖到目标页签松手;或悬停页签自动翻页后把图标放进面板任意位置
  • 组内拖动排序:光标落在目标格左半边插到它前面、右半边插到后面,拖动时格子边缘有强调色指示线
  • 边缘拖拽调大小:鼠标贴边变缩放光标,松手自动换算成列数/行数保存;面板位置可锁定
  • 高度自适应:内容不满一页时面板自动收矮(手动调过大小后则以设置为准)

命令条(呼出面板后直接打字)

  • 过滤条目,支持拼音前缀(输 jsb 匹配"记事本"),回车启动第一个结果, 进入列表
  • > 命令 —— 在新终端窗口执行,如 > ping example.com
  • < —— 打开 Windows 运行对话框
  • s 词 百度 / b 词 必应 / g 词 谷歌 / d 词 DuckDuckGo

外观与系统

  • 深色 / 浅色主题 + 自定义强调色,面板不透明度可调
  • 开机自启(HKCU Run 注册表)、单实例(重复启动唤出面板)、位置记忆
  • 配置导入 / 导出;配置原子写入 + 自动备份(config.bak.json)

快捷键

按键 作用
Ctrl+Alt+L(默认,可改) 全局呼出 / 隐藏面板
Esc 关闭面板 / 退出命令条
直接打字 打开命令条并过滤
Enter 启动选中项 / 命令条第一个结果
(命令条中) 进入结果列表
单击 / 双击 启动条目(设置可选)

运行

方式一:直接用 exe

双击 dist/Lulen.exe 即可(约 40MB,单文件,绿色免安装)。数据与源码方式共用,位于 %APPDATA%\Lulen\

方式二:源码运行

conda create -n Lulen python=3.12 -y
conda run -n Lulen pip install -r requirements.txt
conda run -n Lulen python main.py

命令行参数:

参数 作用
--hidden 启动后仅驻留托盘(开机自启用)
--selftest 离屏自检(热键解析 / 模型 / 持久化 / 渲染)
--screenshot x.png 渲染面板截图后退出(隔离临时配置)
--theme dark|light 截图模式指定主题
--fresh 忽略现有配置启动

配置与数据

配置位于 %APPDATA%\Lulen\config.json,结构一目了然(分组 → 条目数组),可手动编辑;损坏时自动回退 config.bak.json

数据目录可自定义:设置 → 系统 → 数据目录 → 更改…,选择目标文件夹后自动把配置、备份、图标缓存整体迁移过去并在界面即时生效(自定义位置记录在 %APPDATA%\Lulen\data_dir.txt 指针文件里,删掉该文件即回默认位置)。用环境变量 LULEN_HOME 也可以覆盖数据目录(便携模式 / 测试,优先级最高)。

开发

pip install -r requirements.txt -r requirements-dev.txt

ruff check .                # 静态检查(配置见 pyproject.toml)
python main.py --selftest   # 离屏自检
python ui_smoke.py          # UI 冒烟:真实窗口事件驱动
python settings_test.py     # 设置窗口与热键录制
python tools/make_icon.py   # 重新生成应用图标

打包单文件 exe

pip install -r requirements-dev.txt
python tools/make_icon.py                       # 生成 assets/lulen.ico(可选)
python -m PyInstaller --noconfirm Lulen.spec    # 产物 dist/Lulen.exe

说明:Lulen.spec 中显式收编了 conda/Miniforge 环境的 ffi-8.dll 等运行库(PyInstaller 的依赖分析在 conda 布局下会漏掉 _ctypes 所需 DLL)。

设计说明

  • 启动统一走 ShellExecuteW,与资源管理器双击行为一致(.lnk、UWP 建议、UAC 提权)
  • 全局热键RegisterHotKey + Qt 原生事件过滤器转发为信号,无 pywin32 依赖
  • 单实例QLocalServer,服务键按配置目录哈希区分,测试实例与正式实例互不干扰
  • 条目模型直接持有配置存储中分组列表的引用,视图变更原地写回,统一由防抖定时器落盘

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages