从零到一:Wox Python插件开发实战指南

【免费下载链接】Wox A cross-platform launcher that simply works 【免费下载链接】Wox 项目地址: https://gitcode.com/gh_mirrors/wo/Wox

Wox是一款跨平台启动器(A cross-platform launcher that simply works),通过插件扩展可以实现各种实用功能。本文将带你从零开始构建一个Wox Python插件,掌握插件开发的核心流程与最佳实践。

1. 环境准备:快速搭建开发环境

首先需要准备基础开发环境:

  • Python 3.8+(推荐3.10版本)
  • Wox主程序(从官方仓库获取:git clone https://gitcode.com/gh_mirrors/wo/Wox
  • 代码编辑器(VS Code或PyCharm)

Wox Python插件开发依赖官方提供的SDK,位于项目目录 wox.plugin.python/,包含完整的插件API定义和类型提示。

2. 插件结构:理解核心组成部分

一个标准的Wox Python插件包含以下核心文件:

your_plugin/
├── plugin.json       # 插件元数据(名称、作者、触发关键词等)
├── main.py           # 主逻辑实现
└── icon.png          # 插件图标

元数据文件plugin.json是插件的"身份证",定义了插件的基本信息和行为。示例结构:

{
  "ID": "your_unique_plugin_id",
  "Name": "实用工具插件",
  "Description": "一个演示用的Wox Python插件",
  "Author": "Your Name",
  "Version": "1.0.0",
  "Language": "python",
  "Website": "",
  "Trigger": "ut ",  // 触发关键词,用户输入"ut "时激活插件
  "IcoPath": "icon.png"
}

3. 开发实战:构建你的第一个插件

3.1 创建基础框架

  1. 在Wox的插件目录(通常位于~/.config/Wox/Plugins/)创建插件文件夹
  2. 创建plugin.json文件,配置插件元数据
  3. 创建main.py文件,实现核心逻辑

3.2 实现查询处理逻辑

Wox插件的核心是处理用户查询并返回结果。以下是一个简单的示例,实现一个计算功能:

from wox_plugin import WoxPlugin, Result

class UtilityPlugin(WoxPlugin):
    def query(self, query):
        results = []
        try:
            # 尝试计算数学表达式
            result = eval(query)
            results.append(Result(
                Title=f"计算结果: {result}",
                SubTitle=f"表达式: {query}",
                IcoPath="icon.png",
                JsonRPCAction={
                    "method": "copy_to_clipboard",
                    "parameters": [str(result)],
                    "dontHideAfterAction": False
                }
            ))
        except:
            results.append(Result(
                Title="请输入有效的数学表达式",
                SubTitle="例如: 2+2*3",
                IcoPath="icon.png"
            ))
        return results
    
    def copy_to_clipboard(self, text):
        import pyperclip
        pyperclip.copy(text)
        return None

if __name__ == "__main__":
    UtilityPlugin()

3.3 调试与测试

将插件文件夹复制到Wox的插件目录,然后:

  1. 重启Wox
  2. 输入触发关键词(如示例中的"ut ")
  3. 输入查询内容测试功能

Wox提供了调试日志功能,可在设置中开启,日志文件位于 wox.core/util/log.go 定义的路径下。

4. 高级功能:提升插件体验

4.1 添加设置界面

通过Wox的设置API,可以为插件添加配置界面。在plugin.json中添加:

"Settings": [
  {
    "Name": "decimal_places",
    "Type": "TextBox",
    "DefaultValue": "2",
    "Description": "计算结果保留小数位数"
  }
]

在代码中获取设置值:

decimal_places = self.get_setting("decimal_places", 2)

4.2 结果预览与交互

利用Wox的预览功能,可以为结果添加富文本预览:

Result(
    Title="计算结果",
    SubTitle=f"{query} = {result}",
    IcoPath="icon.png",
    PreviewType="text",
    PreviewContent=f"# 计算结果\n\n{query} = **{result}**"
)

Wox启动器界面
图1:Wox启动器展示应用程序搜索结果,插件可无缝集成到类似界面中

5. 插件发布:分享你的作品

开发完成后,可以将插件打包发布到Wox插件商店:

  1. 确保插件元数据完整
  2. 测试兼容性(Windows/macOS/Linux)
  3. 压缩为.zip文件
  4. 提交到Wox插件仓库

官方开发文档可参考 docs/development.md,包含更详细的发布指南。

6. 实战案例:AI提交信息生成插件

Wox的AI功能插件展示了更复杂的实现方式。通过集成AI能力,插件可以分析Git差异并生成提交信息:

AI自动生成Git提交信息
图2:Wox AI插件分析代码变更并生成规范的Git提交信息

该插件的核心逻辑位于 wox.core/plugin/system/ai_command.go,展示了如何在插件中调用外部API和处理复杂数据。

总结

通过本文的指南,你已经掌握了Wox Python插件开发的基本流程。从简单的计算器到复杂的AI集成,Wox插件系统提供了灵活的扩展能力。开始动手创建你的第一个插件,为这个强大的启动器增添更多实用功能吧!

开发过程中遇到问题,可以参考官方文档或查看系统插件源码(如 wox.core/plugin/system/)获取灵感。

【免费下载链接】Wox A cross-platform launcher that simply works 【免费下载链接】Wox 项目地址: https://gitcode.com/gh_mirrors/wo/Wox

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐