使用iFlow CLI通过hook添加任务完成通知(定制你的个性化通知) Windows版

作者: @遥控小飞机

前言

之前看过大佬分享的添加hook发送通知的教程,奈何要么是Mac环境的,要么执行sh脚本在我这里一直无法执行触发,今天试了下,通过第三方的BurnToastNotification,执行python脚本的方式可以触发了,定制一个属于你的iflow弹出通知。

首先需要一个能够调用windows系统通知中心的插件,我这里选择了BurnToastNotification,Github地址:Windos/BurntToast: Module for creating and displaying Toast Notifications on Microsoft Windows 10.

好处是

  • 安装简单,一行命令即可安装成功
bash 复制代码
Install-Module -Name BurntToast
  • 定制化强,可以定制你的通知的标题,内容,属性文字,图标,声音,甚至是添加延迟提醒等交互操作。

具体步骤:

  1. 先按照官方说明,在命令行安装好BurnToastNotification。
  2. 然后配置你的通知提醒的python脚本,代码我用AI生成的
python 复制代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Stop hook脚本-任务完成通知

import subprocess
import os

def send_notification():
    """发送任务完成通知"""
    try:
        # 构建PowerShell命令,我这里加了个图标文件,配置了通知的标题,内容和属性文字,通过powsershell命令调用BurnToastNotification来发送弹出通知
        ps_command = (
            "New-BurntToastNotification -AppLogo ~/.iflow/hooks/iflow.png "
            "-Text 'Mission Complete!','iflow任务完成' -Attribution 'Powered by Samael'"
        )
        
        # 执行PowerShell命令[6,7,8](@ref)
        result = subprocess.run(
            ["powershell", "-Command", ps_command],
            capture_output=True,
            text=True,
            timeout=30
        )
        
        if result.returncode == 0:
            print("通知发送成功")
        else:
            print(f"通知发送失败: {result.stderr}")
            
    except subprocess.TimeoutExpired:
        print("PowerShell命令执行超时")
    except FileNotFoundError:
        print("未找到powershell命令,请确保在Windows系统中运行")
    except Exception as e:
        print(f"执行过程中发生错误: {e}")

def main():
    """主函数"""
    send_notification()

if __name__ == "__main__":
    main()

上边的python脚本中,我在powershell命令调用burnToastNotification发送系统通知时,加了个图标文件(如果你不改图标文件的话,BurnToast会用它默认的一个图标),也放到python文件同一个目录下了,就是~/.iflow/hooks/目录,如下图:

3.最后一步,在你的iFlow的settings.json中,添加hook配置,我这里用~/.iflow/目录不生效(命名py中能用不知道为啥),所以我就改成完整路径了,小伙伴们可以根据你的情况来修改路径。

python 复制代码
"hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "python c:/Users/26933/.iflow/hooks/stop.py"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": ".*permission.*",
        "hooks": [
          {
            "type": "command",
            "command": "python c:/Users/26933/.iflow/hooks/notification.py"
          }
        ]
      }
    ]
  }

最后的实际效果是这样

在通知中心中也会有记录:

欢迎大家试用~

原文链接:https://vibex.iflow.cn/t/topic/

相关推荐
航Hang*5 小时前
Windows Server 配置与管理——第3章:文件系统管理
运维·服务器·windows·vmware
无限进步_7 小时前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
私人珍藏库7 小时前
【Windows】PDF超能助手(1.0.13)
windows·pdf·工具·软件·多功能
仟人斩7 小时前
Windows 下把 VSCode 加入右键菜单(注册表方案)
windows·vscode·上下文菜单
大强同学8 小时前
对比 VS Code:Zed 编辑器编码体验全面解析
人工智能·windows·编辑器·ai编程
加勒比之杰克11 小时前
从阻塞 IO 到 epoll:把 Linux 网络 IO 一次讲透
linux·网络·windows·select·多路转接·epoll·poll
涔溪12 小时前
腾讯 WorkBuddy 超详细卸载清理文档(适用于 Windows 1011 + macOS 全版本,彻底卸载、不留残留)
windows·macos·ai·workbuddy
取个名字太难了a12 小时前
等待块(一)
windows
洒满阳光的庄园13 小时前
Tauri Windows 桌面端:环境与构建流程
windows
love530love13 小时前
从零搭建本地版 Claurst:基于 Rust 重构的 Claude Code 终端编码助手 + LM Studio 模型接入测试
开发语言·人工智能·windows·重构·rust·lm studio·claude code