Wox 常见问题排查指南:启动、搜索、插件与 Wayland 热键全解析
【免费下载链接】WoxA cross-platform launcher that simply works项目地址: https://gitcode.com/gh_mirrors/wo/Wox
本篇指南以 Wox 官方文档的 常见问题 为核心骨架,系统梳理启动日志定位、数据重置、搜索命中率优化、插件安装与更新、文件搜索权限,以及 Wayland 下双修饰键/CapsLock 热键的权限配置等高频问题。读完本文,你将掌握从日志排查到深层权限配置的完整实战方案。
启动与日志:出问题先看哪里
快速定位核心日志
Wox 启动失败或行为异常时,第一件事是打开 core 日志。日志文件位于用户数据目录下的log子目录:
| 平台 | Core 日志路径 |
|---|---|
| Windows | %USERPROFILE%\.wox\log\wox.log |
| macOS | ~/.wox/log/wox.log |
| Linux | ~/.wox/log/wox.log |
排查顺序上,优先看最新的 core 日志;如果 UI 能正常打开但某个插件失败,再去同一数据目录下查看对应插件的 plugin host 日志。从源码结构看,插件与主进程分别运行,核心进程负责管理插件 host 的生命周期,因此两者日志相互独立、需要分开查看(相关实现见 日志工具)。
如何彻底重置 Wox
需要清掉配置、插件、缓存等一切状态时,先完全退出 Wox,再删除用户数据目录:
| 平台 | 数据目录 |
|---|---|
| Windows | %USERPROFILE%\.wox |
| macOS | ~/.wox |
| Linux | ~/.wox |
删除该目录会同时移除设置、已安装插件、插件数据、缓存和日志,相当于回到全新安装状态。重置前如需要保留插件,请先确认其数据是否有备份途径(相关备份功能见 备份插件)。
搜索:为什么搜不到、结果太杂
应用、文件或书签搜不到
- 索引延迟:新安装的应用可能需要几秒钟才会完成首次索引,稍等再试。
- 权限范围:文件搜索只会返回配置根目录下、且 Wox 有权限读取的路径。可在设置 -> 插件 -> 文件中确认根目录配置,具体索引行为见 文件插件。
- 书签同步:浏览器书签来自受支持的浏览器 profile,浏览器自身的同步可能存在延迟。
- 插件未启用:打开对应插件设置,确认插件处于启用状态。
结果太杂:用插件关键字收窄
全局查询会让多个插件同时响应,这是预期行为。明确想要哪个插件的结果时,直接使用插件触发关键字。例如:
f report # 文件插件(file),搜文件 cb report # 剪贴板插件(clipboard),搜剪贴板历史常见触发关键字可参考 插件管理器 和各系统插件的文档页。
插件:安装、排障与更新
如何安装下载的.wox插件
双击.wox文件即可——Wox 会打开插件安装界面,由你确认安装、升级、重装或降级;也可以先选中该文件再唤起 Wox,走的是同一套安装器流程。
需要注意:在 Windows 和 Linux 上,安装或更新 Wox 之后需要先启动一次,才会注册.wox文件关联。双击.wox与运行wpm install <name>走的是同一个本地安装器(见 插件管理器)。
插件安装失败怎么办
按以下顺序排查:
- 确认能访问插件商店和插件 release 下载地址。
- 检查插件是否需要 Node.js 或 Python 运行时,必要时先安装对应 host。
- 打开 Wox 日志目录,查看最新 core 日志和 plugin host 日志。
- 如果刚安装运行时,重启 Wox 后再执行一次
wpm。
如何更新插件
运行wpm,选中插件,在有可用更新时执行更新动作;也可以从插件管理器设置中管理已安装插件。关于wpm的更多用法(浏览商店、从模板创建插件等)见 插件管理器。
文件搜索:Everything 与权限问题
Wox 必须安装 Everything 吗?
不必须。Wox 自带 File 插件。在 Windows 上可以开启Fast Indexing(快速索引),其技术与 Everything 一致,都是直接读取 NTFS 卷的 MFT 与 USN 日志,因此可以索引整块磁盘而无需逐文件夹遍历。macOS 和 Linux 仍使用常规的根目录索引。
只有当你希望在 Wox 之外也独立使用 Everything 时,才需要另行安装。Fast Index 的设置步骤见 文件插件:快速索引(Windows),开启该功能需要管理员权限以安装 Wox 的 NTFS 服务。
macOS 文件搜索为什么提示权限?
macOS 可能会限制 Desktop、Documents、Downloads、外置磁盘等位置的访问。若搜索状态或日志提示权限问题,请在系统设置 -> 隐私与安全性中为 Wox 授予对应的文件访问权限。
自定义:主题、快捷键与功能去向
如何修改主题
在 Wox 中运行theme,或打开设置 -> 主题。主题相关的详细配置可参考 主题插件。
如何修改快捷键
打开设置 -> 常规,编辑快捷键字段;快捷键查询、托盘查询和选中热键也在同一页。主热键的默认值按平台不同:
| 平台 | 默认 |
|---|---|
| Windows | Alt + Space |
| macOS | Command + Space |
| Linux | Ctrl + Space |
更完整的快捷键配置(快捷键查询、托盘查询、全屏忽略等)见 快捷键。
Explorer 去哪了?
文件资源管理器搜索已改名为快速跳转,触发关键字是jump。在资源管理器、Finder 或打开/保存对话框中打开 Wox,输入即可跳转;它还支持jump add保存常用路径,详见 快速跳转插件。
如何反馈问题
查询feedback可以导出诊断信息、查看崩溃报告、清理日志,或打开 GitHub issue;也可以查询doctor做常见配置检查。doctor在 Linux 上会针对 Wayland 热键权限等做专项检查,详见下文。
Wayland:双修饰键与 CapsLock 组合键
原理:为什么 Wayland 下需要额外权限
在 Wayland 下,Wox 无法像在 X11 上那样通过显示服务器全局拦截原始按键事件。为了启用双修饰键热键(如ctrl+ctrl、shift+shift)和 CapsLock 组合键热键(如capslock+a),Wox 会直接从 Linux evdev 接口读取键盘事件。
从源码看,Wox 在 Linux 上实现了独立的 evdev 监听器:它打开/dev/input/event*设备,解析 24 字节的input_event结构(EV_KEY类型),并把内核键码映射为 Wox 的按键枚举,其中修饰键(Ctrl/Shift/Alt/Super/CapsLock)用于双击检测,普通字母键用于使挂起的双击序列失效(见 listener_linux_evdev.go)。也就是说,Wox 只是被动读取键盘事件,不会 grab 或重映射键盘,也不需要 root 权限或系统守护进程。
双修饰键热键(如ctrl+ctrl)——只需input组
input组授予对/dev/input/event*设备的读权限,这正是被动监听键盘事件所需的最小权限:
sudo usermod -aG input $USER修改后重新登录,再重启 Wox 生效。
CapsLock 组合键(如capslock+a)——需要input组,推荐uinput组
CapsLock 组合键需要input组(evdev 读取权限)来检测组合键。uinput组不是注册或触发热键的必需条件——它仅在组合键触发后用于恢复 CapsLock 状态并删除多打的组合字符。
原因是:当 CapsLock 被用作组合键前缀时,由于 Wox 在 Wayland 下无法拦截原始事件,系统会真实切换 CapsLock 状态。Wox 通过 uinput 虚拟键盘注入一个 CapsLock 按键事件来撤销这个切换。如果没有 uinput,热键仍会触发,但大小写灯可能被切换,并可能在当前输入框里多输入一个字符。
启用完整的 CapsLock 状态恢复,需要把自己加入uinput组:
sudo groupadd -r uinput 2>/dev/null sudo usermod -aG input,uinput $USER然后确保/dev/uinput对组可写。许多原版发行版将/dev/uinput设为crw------- root:root,仅加入组还不够——还需要一条 udev 规则:
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput"' | sudo tee /etc/udev/rules.d/80-uinput.rules sudo udevadm control --reload-rules && sudo udevadm trigger /dev/uinput重新登录,然后重启 Wox。
排障:如果 Wox doctor 提示你已经在
uinput组里,但/dev/uinput仍然不可写,说明设备节点缺少组权限。执行上面的 udev 规则并运行sudo udevadm trigger /dev/uinput即可——设备节点变更不需要重新登录,但需要重启 Wox。源码中doctor对“已在组内但设备不可写”这一状态有独立检查项(UinputAccessInGroupNoDevice),与未入组(NotInGroup)分别给出不同提示(见 doctor_linux.go)。
设置完成后:单独按下 CapsLock 时正常切换大小写;将 CapsLock 用作组合键前缀时,系统的 CapsLock 切换会被自动撤销。普通组合键热键(如ctrl+space)不受此设置影响,始终通过org.freedesktop.portal.GlobalShortcutsportal 工作。
注意:此方案不需要 root 权限或系统守护进程。Wox 只是被动读取 evdev 事件,仅在组合键触发后使用 uinput 注入一个 CapsLock 按键事件来恢复大小写状态。如果没有 uinput,CapsLock 组合键仍然可用——仅跳过状态恢复(此时会记录一条警告日志)。
另外,doctor检查是智能的:从 doctor_linux.go 的源码注释可以确认,只有用户实际配置了双修饰键或 CapsLock 组合这类需要 evdev 的热键时,input组检查才会出现;只有配置了 CapsLock 组合键时,uinput组检查才会出现。普通 portal 热键(如alt+space)不需要 evdev,因此这些检查对不需要的用户保持安静。
Wayland:禁用 Wox 窗口动画
在 Wayland 下,Wox 的主窗口是 layer-shell 表面(namespace 为gtk-layer-shell),位于 overlay 层,并不是普通的 XDG 顶层窗口。因此,合成器中针对应用窗口(按 app id 或窗口 class 匹配)的动画规则对 Wox 不生效。要去除打开/关闭/调整大小时的过渡动画,需要配置针对gtk-layer-shellnamespace 的 layer 规则。
Hyprland
在~/.config/hypr/hyprland.conf(或对应的 Lua 配置)中添加layer_rule:
layerrule noanim, gtk-layer-shell使用 Lua 配置(hyprland.lua)时:
hl.layer_rule({ name = "wox-no-anim", match = { namespace = "gtk-layer-shell" }, no_anim = true, })Hyprland 会热重载配置,修改后立即生效。如果 Wox 当前已显示,切换一次让 layer 表面按新规则重新创建即可。
其他合成器
查阅你所使用的合成器文档中对应的 layer-surface 动画选项,并针对gtk-layer-shellnamespace 进行配置。Wox 本身无法从应用内部控制合成器侧的动画。
小结
围绕 Wox 的高频问题,本文覆盖了三条主线:定位问题(core 日志与数据目录重置)、解决功能性问题(搜索命中、插件安装更新、文件搜索权限)、以及Wayland 下的底层权限配置(evdev 双修饰键、uinput CapsLock 状态恢复、layer-shell 动画)。其中 Wayland 部分建议配合doctor插件逐步验证,配置完成后用wpm、theme、feedback等关键字即可回到日常使用。
【免费下载链接】WoxA cross-platform launcher that simply works项目地址: https://gitcode.com/gh_mirrors/wo/Wox
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考