[{"data":1,"prerenderedAt":111},["ShallowReactive",2],{"content:\u002F2026\u002F03\u002Fnoctalia-plugin-process-reporter":3,"surround:\u002F2026\u002F03\u002Fnoctalia-plugin-process-reporter":105},{"id":4,"title":5,"body":6,"categories":78,"date":80,"description":81,"draft":82,"extension":83,"image":84,"meta":85,"navigation":87,"path":88,"permalink":89,"published":89,"readingTime":90,"recommend":89,"references":89,"seo":95,"sitemap":96,"stem":97,"subtitle":98,"tags":99,"type":103,"updated":89,"__hash__":104},"content\u002Fposts\u002F2026\u002F03\u002Fnoctalia-plugin-process-reporter.md","用 Codex 写了一个 Noctalia 插件 Process Reporter",{"type":7,"value":8,"toc":68},"minimark",[9,13,17,20,23,33,36,40,51,54,57,60,65],[10,11,12],"h2",{"id":12},"前言",[14,15,16],"p",{},"最近主力机从 Fedora+KDE 换到了 Arch+Niri+Noctalia，还是相当好用的，尤其是 Noctalia 的插件系统，功能强大又易用，社区里也有很多现成的插件可以直接使用。",[14,18,19],{},"然后最近想试试下新玩具 GPT 5.3-Codex 的 Agent 能力怎么样，于是灵机一动拿它开发一个之前的想法：博客云函数个人状态（视奸）上报插件试试，结果还是挺让人惊喜的。",[10,21,22],{"id":22},"插件功能",[14,24,25,26,32],{},"插件位于我个人的插件库 ",[27,28,29],"a",{"href":29,"rel":30},"https:\u002F\u002Fgithub.com\u002FPaloMiku\u002Fnoctalia-plugins",[31],"nofollow"," 内，可以在 Noctalia 插件商店里添加自定义插件源来安装和更新。",[14,34,35],{},"插件功能就是实时获取当前用户正在聚焦的窗口信息，并监听媒体播放状态后合并上报到同一个云函数。",[37,38,39],"h3",{"id":39},"上报格式示例",[41,42,48],"pre",{"className":43,"code":45,"language":46,"meta":47},[44],"language-json","{\n  \"timestamp\": 1775024322885,\n  \"event\": \"panel-preview\",\n  \"window\": {\n    \"windowId\": \"16\",\n    \"appId\": \"code\",\n    \"appName\": \"Code\"\n  },\n  \"media\": {\n    \"playerIdentity\": \"EchoMusic\",\n    \"trackTitle\": \"Mass Destruction -P3fes Reload-\",\n    \"trackArtist\": \"Lotus Juice, 高橋あず美, アトラスサウンドチーム\",\n    \"trackAlbum\": \"ペルソナ3 リロード: Episode Aegis オリジナル・サウンドトラック\",\n    \"trackArtUrl\": \"http:\u002F\u002Fimge.kugou.com\u002Fstdmusic\u002F400\u002F20251023\u002F20251023044541872517.jpg\",\n    \"isPlaying\": true\n  }\n}\n","json","",[49,50,45],"code",{"__ignoreMap":47},[14,52,53],{},"有 token 鉴权和限流防止滥用上传，然后云函数就能处理再呈现在博客上了。",[14,55,56],{},"你在本博客的组件栏看到的我的在线状态就是通过它实现的，当然也有对应的云函数实现，不过搞的挺粗糙就是了，后续有机会再优化一下。",[10,58,59],{"id":59},"后记",[61,62],"project-group",{":items":63,"title":64},"[{\"title\":\"QT\",\"description\":\"Cross-platform Application Framework\",\"icon\":\"devicon:qt\",\"link\":\"https:\u002F\u002Fwww.qt.io\u002F\"},{\"title\":\"Rust\",\"description\":\"Systems Programming Language\",\"icon\":\"devicon:rust\",\"link\":\"https:\u002F\u002Fwww.rust-lang.org\u002F\"}]","框架",[14,66,67],{},"现在的 AI 真的很强大了，稍微配合文档就能让我这个不怎么懂 QT（QML）的开发者也能写出功能完整的插件来，感觉这次旅程扩展了我的知识树，也和 Agent 做好了配合，后续有机会还想试试其他类型的插件开发。",{"title":47,"searchDepth":69,"depth":69,"links":70},4,[71,73,77],{"id":12,"depth":72,"text":12},2,{"id":22,"depth":72,"text":22,"children":74},[75],{"id":39,"depth":76,"text":39},3,{"id":59,"depth":72,"text":59},[79],"技术探索","2026-04-01 14:00:00","本文作者分享了将主力机系统环境从 Fedora+KDE 更换为 Arch+Niri+Noctalia 后的使用体验，重点围绕借助 AI 完成 Noctalia 自定义插件开发的实践展开。作者为验证 GPT 5.3-Codex 的 Agent 能力，落地了一款窗口与媒体状态上报插件，该插件托管于其个人 GitHub 仓库，可通过 Noctalia 插件商店添加自定义源完成安装与更新。插件核心功能为实时抓取用户当前聚焦的窗口信息、监听系统媒体播放状态，将数据按规范格式封装后，经 token 鉴权与限流处理上报至云函数，最终实现博客端个人在线状态的实时展示。作者表示自身并不熟悉 QT（QML）开发，依托 AI 辅助顺利完成了功能完整的插件开发，此次实践拓展了个人技术能力，同时提及了开发所用的 Qt 跨平台应用框架与 Rust 系统编程语言，后续还计划尝试更多类型的 Noctalia 插件开发。",false,"md","https:\u002F\u002Ffastly.jsdelivr.net\u002Fgh\u002FPaloMiku\u002FPaloMiku-Noctalia-Plugin@master\u002Fprocess-reporter\u002Fscreenshot.png",{"slots":86},{},true,"\u002F2026\u002F03\u002Fnoctalia-plugin-process-reporter",null,{"text":91,"minutes":92,"time":93,"words":94},"3 min read",2.12,127200,424,{"title":5,"description":81},{"loc":88},"posts\u002F2026\u002F03\u002Fnoctalia-plugin-process-reporter","扩展了插件开发知识树，也和 Agent 做好了配合",[100,101,102],"Linux","Noctalia","Niri","tech","biVEOcDOctjHhyARxRkMocUg9rKfaW9634mbfdxgMSE",[106,89],{"title":107,"path":108,"stem":109,"date":110,"type":103,"children":-1},"荣耀 X16 锐龙版（2024）运行 Linux 问题和修复","\u002F2026\u002F03\u002Fhonorx16-ryzen-linux","posts\u002F2026\u002F03\u002Fhonorx16-ryzen-linux","2026-03-28 14:00:00",1782545395290]