安装
apt-get install xdotool
search使用
xdotool search
命令用于搜索符合条件的窗口,并返回窗口ID列表。该命令可以接受多个参数来指定搜索条件,常用的参数有:
xdotool search [OPTIONS] [WINDOW_SEARCH_CRITERIA]
# 示例参数:
# --desktop 指定要搜索的桌面编号
# --class 窗口类名(Window Class)
# --name 窗口标题(Window Name)
# --classname 类名称(Class name),不包含实例后缀(不同于--class)
# --windowclass 同--class
# --title 同--name
# --pid 通过进程ID查找窗口
# --onlyvisible 只返回可见窗口
# 示例用法:
# 查找所有名为"Chromium浏览器"的窗口ID
xdotool search --name "Chromium浏览器"
# 查找类名为"Google-chrome"的所有窗口
xdotool search --class "Google-chrome"
# 查找当前桌面下所有可见的窗口
xdotool search --onlyvisible
# 根据进程ID查找对应的窗口
xdotool search --pid <进程ID>
使用 xdotool search
返回的是一个空格分隔的窗口ID列表,你可以根据需要对这些窗口执行进一步的操作,例如模拟键盘输入、移动窗口位置、改变窗口大小等。
请注意,窗口名称和类名可能因系统和应用程序的具体实现而有所不同,建议先使用xprop
工具来检查目标窗口的实际属性值。
windowmove 移动窗口
xdotool windowmove
是一个用于在Linux中移动窗口位置的命令。通过给定目标窗口的ID和新的坐标位置,可以改变指定窗口在屏幕上的位置。
基本语法如下:
xdotool windowmove [OPTIONS] WINDOW_ID X_POSITION Y_POSITION
WINDOW_ID
: 要移动的窗口的ID。你可以使用xdotool search
命令来查找窗口ID。X_POSITION
: 新的X轴坐标(水平位置),单位通常是像素,表示相对于屏幕左上角的距离。Y_POSITION
: 新的Y轴坐标(垂直位置),单位同样是像素,表示相对于屏幕顶部的距离。
例如,如果你要将窗口ID为123456的窗口移动到屏幕的(100, 100)位置,可以这样做:
xdotool windowmove 123456 100 100
注意:
- 确保你有足够的权限来操作窗口。
- 窗口ID是动态变化的,每次启动应用时可能会不同,因此在编写脚本时需要确保获取的是当前活动窗口的ID。
- 根据桌面环境的不同,窗口管理器可能对窗口的位置有所限制或自动调整布局,因此实际效果可能受窗口管理器设置的影响。
windowactivate使用说明
xdotool windowactivate
是一个在Linux系统中激活指定窗口的命令,它可以使某个窗口成为当前焦点(即变为活动窗口)。
基本语法如下:
xdotool windowactivate [OPTIONS] WINDOW_ID
WINDOW_ID
: 要激活的窗口ID。你可以使用xdotool search
命令配合搜索条件来获取特定窗口的ID。
例如,如果你想激活窗口ID为123456的窗口,可以运行以下命令:
xdotool windowactivate 123456
选项说明:
-sync
: 如果设置了这个选项,xdotool
会在操作完成之后才返回,确保操作已成功执行。-reuse
: 如果可能的话,尝试重新使用已有的窗口而不是创建新的窗口实例。
#通过这个命令,你可以将焦点切换到指定的窗口上,比如在自动化脚本中实现窗口间的交互或测试场景。
WINDOW_ID=$(xdotool search --name "Firefox" | head -n1)
xdotool windowactivate --sync $WINDOW_ID
# 获取窗口ID(假设窗口标题是"Chromium浏览器")
WINDOW_ID=$(xdotool search --name "Chromium浏览器" | head -n1)
# 模拟按下F11键使窗口全屏
xdotool windowactivate $WINDOW_ID key F11