Niri窗口管理控制

2小时前更新 4 00
Niri窗口管理控制Niri窗口管理控制
Niri窗口管理控制

技能简介

通过IPC接口控制Linux上的Niri Wayland合成器,支持查询显示器、工作区、窗口状态,以及执行聚焦、移动、关闭窗口等操作。

能做什么

  • 查询当前输出设备、工作区、窗口列表及焦点窗口
  • 按标题或应用ID模糊匹配并操作窗口
  • 切换工作区、移动窗口到指定工作区
  • 直接发送原始JSON请求到Niri IPC套接字
  • 监听事件流用于状态栏或守护进程

使用说明

安装前提

  1. 系统运行Linux且已启动Niri合成器
  2. 环境变量$NIRI_SOCKET已设置(Niri会话内通常自动设置)

快速开始

# 查看版本
./skills/niri-ipc/scripts/niri.py version

# 列出所有窗口
./skills/niri-ipc/scripts/niri.py windows

# 按名称聚焦窗口
./skills/niri-ipc/scripts/niri_ctl.py focus firefox

常用操作

# 切换工作区
./skills/niri-ipc/scripts/niri.py action focus-workspace 2

# 移动窗口到工作区
./skills/niri-ipc/scripts/niri.py action move-window-to-workspace 3

# 关闭焦点窗口
./skills/niri-ipc/scripts/niri.py action close-window

# 重新加载配置
./skills/niri-ipc/scripts/niri.py action load-config-file

# 启动程序
./skills/niri-ipc/scripts/niri.py action spawn -- alacritty

原始IPC访问

# 发送单条请求
./skills/niri-ipc/scripts/niri_socket.py raw '"FocusedWindow"'

# 批量请求
echo -e '"FocusedWindow"\n"Workspaces"' | ./skills/niri-ipc/scripts/niri_socket.py stdin

# 事件流监听
./skills/niri-ipc/scripts/niri.py event-stream

输入与输出

见下方输入与输出表格。

项目内容
输入窗口标题子串、应用ID子串、工作区索引/名称、窗口ID、Niri动作指令、原始JSON请求
输出显示器信息、工作区列表、窗口列表、焦点窗口详情、操作执行结果、事件流JSON数据
适用人群Niri合成器用户、Linux桌面自动化开发者、状态栏/面板开发者、窗口管理脚本编写者
不包含非Niri合成器支持、X11环境兼容、图形用户界面、远程网络控制功能

 

风险提示

  • 必须在Niri会话内运行,否则$NIRI_SOCKET未设置会导致失败
  • Niri升级后若出现解析错误,需重启合成器以匹配版本
  • 直接操作窗口ID前建议先查询确认,避免误操作
  • 事件流会持续输出直到手动中断,注意资源占用

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/atefr/niri-ipc/SKILL.md
来源类型:GitHub仓库

数据统计

相关导航

暂无评论

none
暂无评论...