Skip to content

Repository files navigation

Flick 轻启

Windows 桌面应用启动器:按 Alt+Space 极速呼出应用面板,常驻系统托盘,轻量、本地优先。

项目基于 Tauri v2 + React 19 + TypeScript + Tailwind CSS v4。窗口启动时预加载并隐藏,呼出时只执行 show(),没有白屏或重新渲染。

特性

  • 极速呼出:全局快捷键默认 Alt+Space,可在设置中自定义并持久化
  • 托盘常驻:左键单击托盘图标切换显隐,托盘菜单可切换开机自启动
  • 三类条目:应用、文件、文件夹,可通过系统选择框或拖拽添加
  • 高清图标:自动提取应用图标并统一输出 256px PNG,使用稳定的 DIB 绘制方案
  • 分组管理:新建、重命名、增删成员、删除分组,数据层支持嵌套
  • 智能排序:默认按名称字母序;开启编辑模式后可拖拽自定义顺序
  • 分组收纳:移入分组的条目会按字母序插入,不会自动沉底
  • 灵活设置:背景图、模糊、遮罩、图标尺寸、显示名称、失焦隐藏、启动后隐藏、呼出焦点、快捷键
  • 搜索聚焦:呼出后焦点可设置为搜索栏或应用区域,也可配置每次呼出回到首页
  • 数据本地:配置、背景、图标全部保存在 %APPDATA%\com.flick.launcher\
  • 稳定写入:配置采用原子写入,并保留上一份可用备份

快速开始

直接使用

从 GitHub Releases 下载最新安装包,或使用本地构建产物:

src-tauri/target/release/bundle/nsis/Flick 轻启_0.1.0_x64-setup.exe
src-tauri/target/release/flick-launcher.exe

从源码运行

pnpm install
pnpm tauri dev

构建安装包

pnpm tauri build

构建产物:

src-tauri/target/release/flick-launcher.exe
src-tauri/target/release/bundle/nsis/Flick 轻启_0.1.0_x64-setup.exe

运行测试

pnpm test
pnpm build

环境要求

  • Windows 10 / 11
  • WebView2 Runtime(Windows 11 自带,Windows 10 需单独安装)
  • Node.js >= 20
  • pnpm
  • Rust stable GNU 工具链:x86_64-pc-windows-gnu

使用指南

操作 方式
呼出 / 隐藏 Alt+Space,可在设置中修改
添加应用 / 文件 / 文件夹 拖入窗口,或点击右上角 +
搜索 顶部搜索框,支持按名称过滤
新建分组 侧边栏「新建分组」,设置名称并勾选初始成员
编辑分组 悬停分组名后点击编辑按钮
切换分组 点击侧边栏分组名称
排序 开启编辑模式后拖拽图标
移入分组 开启编辑模式后拖拽图标到目标分组
编辑 / 删除条目 右键图标
打开设置 点击右上角设置按钮
切换开机自启 设置面板开关,或托盘右键菜单勾选项
退出应用 托盘右键菜单「退出 Flick 轻启」

数据存储

所有用户数据保存在本地:

%APPDATA%\com.flick.launcher\
├── config.json          # 条目、分组与设置
├── config.json.bak      # 上一份可用配置备份
├── backgrounds\         # 自定义背景图
└── icons\               # 自动提取或自定义图标(PNG)

配置示例:

{
  "version": 1,
  "items": [
    {
      "kind": "group",
      "id": "uuid",
      "name": "游戏",
      "items": []
    },
    {
      "kind": "app",
      "id": "uuid",
      "name": "Chrome",
      "path": "C:\\Program Files\\Chrome\\Application\\chrome.exe",
      "icon": "icons/abc123.png",
      "isDir": false
    }
  ],
  "settings": {
    "backgroundImage": "backgrounds/xxx.jpg",
    "overlayOpacity": 0.25,
    "blurAmount": 1,
    "iconSize": 64,
    "showLabels": true,
    "hideOnBlur": true,
    "hideAfterLaunch": false,
    "autostart": true,
    "manualOrder": false,
    "focusMode": "grid",
    "resetOnShow": true,
    "hotkey": "Alt+Space"
  }
}

项目结构

src/
├── App.tsx                 # 根组件:全局事件、呼出、失焦隐藏、拖拽
├── store.ts                # Zustand 全局状态与防抖保存
├── lib/
│   ├── items.ts            # 分组树纯函数
│   ├── assets.ts           # appdata 资源转 asset protocol URL
│   ├── icons.ts            # 扩展名映射默认图标
│   └── dialog.ts           # 系统对话框期间的后端状态同步
└── components/             # 侧边栏、顶栏、网格、弹窗、设置、托盘相关 UI

src-tauri/
├── src/
│   ├── lib.rs              # Tauri Builder、托盘、快捷键、窗口事件
│   ├── commands.rs         # 配置、启动、图标提取、导入、自启动等命令
│   └── config.rs           # serde 数据模型、配置读写、备份回退
├── tauri.conf.json         # 窗口、安全、打包配置
└── capabilities/           # 前端权限声明

技术栈

层 技术
桌面框架 Tauri v2
前端框架 React 19 + TypeScript
样式 Tailwind CSS v4
状态管理 Zustand v5
图标库 lucide-react
后端语言 Rust
Windows API windows-sys
图像处理 image crate
构建工具 Vite + Tauri CLI

已知限制

  • 当前仅支持 Windows 桌面端
  • 分组嵌套在数据层已支持,侧边栏 UI 暂时只展示一层分组
  • 旧版本数据位于 %APPDATA%\com.speed.launcher\,当前版本使用 com.flick.launcher,两者相互独立

License

本项目尚未指定开源许可证,公开使用前请先确认授权方式。

About

极速呼出的 Windows 桌面启动器:支持分组管理、高清图标与开机自启。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages