- 桌面应用
- AI 应用
- 插件系统
【免费下载链接】Wox
A cross-platform launcher that simply works
Wox 是一款面向 Windows、macOS、Linux 三平台的全原生开源启动器(Launcher),定位为开源的 Raycast / Alfred 替代品。本指南基于仓库根目录 README.md 及源码展开,系统讲解其"全原生 GPU 渲染 + 键盘优先交互 + 插件化扩展"的核心设计、跨平台安装方式,并结合 wox.core/main.go、wox.core/ui/runtime 等源码验证其实现细节。读完本文,你将掌握 Wox 的安装配置、架构原理、插件开发边界与从源码构建/测试的完整方法。
Wox 是什么:一个"开箱即用"的跨平台启动器
Wox 的核心理念是:本地搜索、键盘优先操作、可扩展插件系统,全部收敛在一个聚焦的输入框中。它不是一个浏览器外壳或 Electron 应用,而是使用原生 UI 渲染管线构建的桌面程序——这决定了它能够保持轻量、响应快、与系统集成深。
当前仓库对应版本为v2.4.4(README 标注 "Latest: v2.4.4 · Sep 2026",wox.core/updater/version.go 中const CURRENT_VERSION = "2.4.4"与之完全一致),支持 Windows、macOS 与 Linux。
Why Wox:核心特性一览
README 用一张特性表概括了项目的四大卖点,结合源码可以逐条印证:
| 特性 | 描述 | 源码佐证 |
|---|---|---|
| Fully native(全原生) | macOS、Linux、Windows 上均为原生 GPU 渲染,不是 Electron,不是浏览器外壳 | 渲染后端分散在 wox.core/ui/runtime 的native_darwin.m、native_linux.c、native_windows.cpp、renderer_windows.cpp中,UI 层直接调用原生接口 |
| 150 MB 内存 | 空闲与日常查询时保持轻量,可常驻后台而不压榨机器 | wox.core/main.go 在未显式设置GOGC时将 GC 百分比调至 50,并在生产构建中关闭堆内存采样 |
| Keyboard-first(键盘优先) | 打开应用、查找文件、执行动作,全程不离开输入框 | 查询、热键注册集中在 wox.core/hotkey、wox.core/ui/launcher;启动流程末尾统一执行RegisterAllHotkeys |
| Plugin-driven(插件驱动) | 以内置插件起步,再从商店安装 Node.js、Python 或脚本插件扩展 | 插件管理器 wox.core/plugin/manager.go,运行时宿主在 wox.core/plugin/host |
需要说明的是,"150 MB 内存"是项目官方对日常使用场景的表述,实际占用会随启用插件数量、查询负载和平台而异,不同机器上应以实测为准。
跨平台安装:从包管理器到手动安装
README 提供了覆盖三大平台主流包管理器的安装方式,直接可用:
| 平台 | 方式 | 命令或说明 |
|---|---|---|
| macOS | Homebrew | brew install --cask wox |
| Windows | Winget | winget install -e --id Wox.Wox |
| Windows | Scoop | scoop install extras/wox |
| Windows | Chocolatey | choco install wox |
| Arch Linux | AUR | yay -S wox-bin |
| macOS / Linux / Windows | 手动安装 | 从 Releases 下载最新稳定包直接运行 |
从源码构建与打包
如果希望从源码编译,仓库根目录 Makefile 提供了完整的构建链路。首先检查环境依赖(_check_deps目标),依次需要:go、node、pnpm(或可用的 Corepack 垫片)、uv;Linux 平台额外要求appimagetool、dpkg-deb、rpmbuild、patchelf、python3;macOS 要求create-dmg;Windows 则要求在 MINGW64 环境中执行。
常用目标:
make dev:搭建开发环境(编译 wox.core 主程序、window hook 助手与插件宿主)make build:全量构建,Linux 下会继续产出 AppImage、.deb、.rpm三种安装包,macOS 下打包为.dmgmake test:运行集成测试(需 sqlite CGO 编译,首次运行或 converter 大改动后可能耗时数分钟)make appimage/make deb/make rpm:分别构建 Linux 三种发行格式make smoke:运行原生 UI 冒烟测试套件(make smoke launcher/plugin/calculator/001可跑单个用例)make plugin-health:无头安装商店插件并探测 init/query 健康状态make www:启动文档站开发服务器
以 Linux AppImage 为例,Makefile 会将可执行文件与libgtk-layer-shell.so.0(用于 COSMIC 桌面实时缩放)一起打包,并写入assets/linux/wox.desktop、io.github.WoxLauncher.Wox.metainfo.xml(AppStream 元数据)以及 64/128/256 三档 hicolor 图标;.deb/.rpm包的依赖声明(如libgtk-3-0、libepoxy0、libgtk-layer-shell0)同样写死在构建脚本中。
架构纵深:全原生 GPU 渲染是怎么做到的
README 强调"Fully native"不是营销话术,源码层面可以找到实打实的实现:
- 原生渲染后端:wox.core/ui/runtime 目录下并存
native_darwin.m(macOS)、native_linux.c(Linux,含 Wayland 扩展如ext-background-effect-v1、relative-pointer-unstable-v1协议实现)、native_windows.cpp与renderer_windows.cpp(Windows)。这说明 UI 层按平台分别编译原生代码,而非套用统一 Web 栈。 - GPU 设备共享与统一线程模型:renderer_windows.cpp 注释明确"所有渲染器运行在 UI 线程上,可共享进程级 GPU 设备";
gpu_memory_windows.go通过 Direct3D 共享设备查询驱动归因到进程的显存占用。 - 可移植渲染抽象:display_list.go 定义了所有原生渲染器共享的顶点数量上限(
MaxConvexPolygonPoints),software_renderer.go则提供无 GPU 环境的软件回退,保证渲染抽象的跨平台一致性。 - 系统级视觉集成:Windows 上的亚克力/云母材质(
floating_material_windows.go、window_material.go)、Linux 上的背景特效与圆角窗口(window_linux.go、window_corners_linux.go)均由原生层实现,这是浏览器外壳类应用难以企及的深度。
启动流程:一次完整的生命周期
从 wox.core/main.go 的run()函数可以看到 Wox 完整的启动链路,顺序依次为:
- 单实例检测:通过 lock 文件中的端口向
/ping发 HTTP 请求,若已有实例运行,则将 deeplink 转发给老实例(/deeplink)或唤起其显示(/show)后立即退出,避免重复启动; - 崩溃保护:生产构建下先启动独立的外部 supervisor 进程(
diagnostic.GetManager().StartSupervisorDetached),即使 Go 进程崩溃也能记录原生层错误;Windows 下还通过debug.SetTraceback("wer")让 WER 捕获 minidump; - 基础设施初始化:依次初始化数据库(wox.core/database/database.go)、analytics、schema 迁移(wox.core/migration,内含十余个历史迁移文件)、设置管理器与 i18n 语言包;
- 服务启动:按需启用 HTTP 代理、云端同步(wox.core/cloudsync)、托盘图标、自动备份、MRU 清理、图片缓存清理(
imagecache.StartCleanupRoutine)、自动更新检查与匿名遥测心跳; - 插件与热键:
plugin.GetPluginManager().Start(ctx, shareUI)启动所有插件,随后RegisterAllHotkeys统一注册热键——Linux Wayland 门户下所有组合键会在一次会话内完成注册; - UI 启动:创建嵌入式 Go UI(
golauncher.New)与主实例控制服务器(appcontrol.ServeAndWait),处理文件预览、窗口显示与 deeplink 请求。
这套流程也解释了 Wox 为何能保持低内存:轻量启动、按需服务、加上 main.go 中对 GC 与内存采样的显式调优。
插件系统:从内置插件到自定义扩展
Wox 的插件体系分两层:内置系统插件(Go 编写,编译进主程序)与外部插件(Node.js / Python / 脚本 / WebSocket,由独立宿主进程运行)。
内置系统插件
wox.core/main.go 通过 blank import 注册了全部系统插件,wox.core/plugin/system 目录下包含:应用启动(app/)、文件搜索(file_search/)、浏览器书签(browser_bookmark/)、计算器(calculator/)、单位/时间转换(converter/)、剪贴板(clipboard/)、听写(dictation/)、表情符号(emoji/)、Glance 快速预览(glance/)、媒体控制(mediaplayer/)、笔记(notes/)、QuickJump 跳转(quickjump/)、Shell(shell/)、系统信息(sys/)、Web 搜索(websearch/)、窗口管理(window_manager/)、AI 记忆(wox_memory/),以及 AI 命令、截图、计时器、主题等单项插件。
外部插件运行时与 SDK
外部插件由宿主进程托管,wox.core/plugin/host 提供host_nodejs.go、host_python.go、host_script.go、host_websocket.go四类运行时,通过 JSON-RPC 与主进程通信(jsonrpc.go)。宿主会自动探测本机node/python3可执行文件(含 Scoop、mise 等常见安装路径),无网络环境下也能解析本地插件依赖。
仓库同时维护两套官方插件 SDK:
- Node.js SDK:wox.plugin.nodejs(TypeScript 编写,入口
src/index.ts,类型声明在types/) - Python SDK:wox.plugin.python(入口
src/wox_plugin/,含查询、预览、设置表格等完整封装)
两个 SDK 均带独立测试(如 tests/test_preview.py、tests/test_query_grid_layout.py),发布流程由根目录make sdk统一管理——先分别 bump npm 与 PyPI 版本并发布,成功后再同步宿主依赖,避免宿主指向未发布的 SDK 版本。
插件商店清单维护在 store-plugin.json(另有 store-theme.json、store-ai-command.json),ci/pluginhealth目录下的健康检查工具会无头安装商店插件并验证其 init/query 是否正常。
插件执行模型
wox.core/plugin/manager.go 是插件管理核心,内含查询结果懒加载图标缓存(lazyResultIconEntry)、会话级查询缓存上限(maxCachedQueriesPerSession = 32)、全局查询插件评分上限(globalQueryPluginScoreLimit = 200)等策略,保证大量插件共存时输入延迟可控。
文档与生态资源
除本 README 外,项目还提供官方文档站、插件商店与主题商店。仓库内可直接查阅的资料包括:
- CHANGELOG.md 与 CHANGELOG.zh_CN.md:中英文版本更新记录;
- wox.core/plugin/host/README.md 等各模块说明;
- screenshots 目录存放了功能截图与演示视频(AI 对话、主题编辑、云同步、设置界面等),可直观了解各内置插件的实际效果;
- Linux 打包元数据 assets/linux/io.github.WoxLauncher.Wox.metainfo.xml 与桌面入口 assets/linux/wox.desktop,说明其作为正规 Linux 桌面应用的分发方式。
总结
Wox 是一个以"全原生、低占用、键盘优先、插件驱动"四个支柱构建的跨平台启动器:原生 GPU 渲染让它与操作系统深度集成,150 MB 级别的日常占用让它适合常驻后台,完善的内置插件与 Node.js/Python SDK 让它具备极强的扩展性,而清晰的启动流程与统一的构建/测试体系则降低了二次开发门槛。如果你正在寻找一款可长期依赖、可深度定制的 Raycast / Alfred 开源替代品,Wox 是一个值得实际安装体验的选择。
- 桌面应用
- AI 应用
- 插件系统
【免费下载链接】Wox
A cross-platform launcher that simply works
相关推荐
portless 路由表深度解析:崩溃后路由为何残留,以及陈旧路由清理机制
portless 路由表深度解析:崩溃后路由为何残留,以及陈旧路由清理机制 portless 用"稳定、命名的本地 URL"取代端口号(如 https://my
开发工具CLIWox跨平台启动器:终极安装与配置完整指南
Wox跨平台启动器:终极安装与配置完整指南 想要大幅提升电脑操作效率吗?Wox是一款功能强大的跨平台启动器,能够快速搜索应用程序、文件和系统资源,让您的工作流程
桌面应用AI 应用插件系统Umi-OCR:离线文字识别,解压即用,免费开源
Umi OCR:离线文字识别,解压即用,免费开源 Umi OCR 是一款开源免费的离线文字识别软件,截图、扫描件、PDF 文件都能转成可复制的文字。所有识别都在
桌面应用AI 应用插件系统
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考