如何设置 xdotool 和 gedit 打开文档并保存两次?

如何设置 xdotool 和 gedit 打开文档并保存两次?

我需要帮助来创建执行以下操作的脚本:

  1. 打开 Gedit
  2. 使用 Gedit 打开文档
  3. 保存文档两次
  4. 关闭 Gedit

我想知道如何使用 Gedit 和 xdotool 来实现这一点,因为 xdotool 可以模拟组合键来保存文档Ctrl+S

答案1

窗口必须处于焦点状态,否则编辑将忽略发送的 X 事件工具

你的脚本应该是这样的:

/bin/bash #!/bin/bash

gedit -s /路径/到/文档
# -s 是独立的,意味着将打开一个新窗口,而不是任何现有 gedit 中的选项卡。

sleep 5 # 等待 gedit 打开,必要时进行调整

GEDPID=$!#保存gedit进程的PID

sleep 2 # 等待 gedit 实际打开文档,如有必要进行调整

GEDWINID=`xdotool 搜索 --pid $GEDPID | tail -1`
# 获取 gedit 的窗口 ID,第三个“子”是实际窗口

xdotool windowactivate --sync $GEDWINID key --clearmodifiers --delay 100 ctrl+s ctrl+s alt+F4
# 聚焦 gedit 窗口,等到聚焦,然后保存两次并退出

相关内容