You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何每秒将.txt文件更新为指定窗口标题?

嘿,我来帮你搞定这个问题!在XFCE+Arch(Antergos)环境下用wmctrl实现窗口标题实时写入文件完全可行,大概率是你之前没精准定位目标窗口,或者循环脚本的写法有小问题。下面一步步来操作:

第一步:先确保wmctrl已安装

Arch系默认没装wmctrl,先检查一下:

wmctrl --version

如果提示命令不存在,用pacman安装:

sudo pacman -S wmctrl
第二步:获取目标窗口的唯一标识

直接用wmctrl -l会列出所有窗口,我们得精准定位要监控的那个应用。有两种稳定的方式:

  • 方式一:用窗口类名(推荐,重启后不会变)
    运行xprop WM_CLASS,然后点击你要监控的窗口,终端会输出类似这样的内容:
    WM_CLASS(STRING) = "code", "Code"
    
    这里的第二个值(比如Code)就是窗口的类名,后面用它来匹配窗口。
  • 方式二:用窗口ID
    运行wmctrl -l,找到目标窗口那一行,前面的十六进制数字就是窗口ID(比如0x04a00007),不过窗口ID重启应用后会变化,不如类名稳定。
第三步:写一个持续监控的bash脚本

创建一个脚本文件,比如window-title-monitor.sh,把下面的代码粘进去(根据你选的标识方式二选一):

用窗口类名的版本(更推荐)

#!/bin/bash
# 替换成你刚才拿到的窗口类名,比如Code、Firefox
TARGET_CLASS="Code"
# 替换成你要保存的文件路径,比如~/obs-window-title.txt
OUTPUT_FILE="$HOME/obs-window-title.txt"

while true; do
    # 过滤出目标类的窗口,取最后一个(最近激活的),提取标题部分
    WINDOW_TITLE=$(wmctrl -x -l | grep "$TARGET_CLASS" | tail -1 | awk '{sub(/^[^ ]* [^ ]* /, ""); print}')
    # 把标题写入文件,覆盖原有内容
    echo "$WINDOW_TITLE" > "$OUTPUT_FILE"
    # 每秒更新一次
    sleep 1
done

用窗口ID的版本

#!/bin/bash
# 替换成你的目标窗口ID
TARGET_WINDOW="0x04a00007"
OUTPUT_FILE="$HOME/obs-window-title.txt"

while true; do
    WINDOW_TITLE=$(wmctrl -l | grep "$TARGET_WINDOW" | awk '{sub(/^[^ ]* [^ ]* /, ""); print}')
    echo "$WINDOW_TITLE" > "$OUTPUT_FILE"
    sleep 1
done
第四步:让脚本跑起来

给脚本加执行权限:

chmod +x window-title-monitor.sh

然后直接运行脚本:

./window-title-monitor.sh

如果希望开机自动运行,打开XFCE的「会话和启动」,添加这个脚本作为启动项即可。

第五步:在OBS里配置文本源

打开OBS,添加一个「文本(FreeType2)」源(XFCE下用这个更稳定),然后:

  1. 勾选「读取文件」选项
  2. 点击「浏览」选择你刚才指定的obs-window-title.txt文件
  3. 勾选「自动更新(当文件改变时)」
    这样OBS就会自动同步文件里的窗口标题了!
小技巧&问题排查
  • 如果有多个同类型窗口,脚本里的tail -1会取最后激活的那个窗口,如果你要监控特定的,可以在grep后面加窗口标题的关键词,比如grep "$TARGET_CLASS" | grep "My Project"
  • 如果wmctrl获取不到标题,试试加上-p参数,或者确认窗口是不是被最小化了?XFCE里大部分窗口最小化后还是能获取到标题的,实在不行可以调整脚本逻辑。

内容的提问来源于stack exchange,提问作者RobotUnderscore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:34:08