Ubuntu Cinnamon桌面环境下如何通过bash获取鼠标悬停窗口的WID?
搭载Cinnamon桌面的Ubuntu系统获取鼠标指向窗口WID的方法
操作前提
- 当前Cinnamon桌面运行在X11协议下(Ubuntu Cinnamon默认采用该配置,若手动切换过Wayland协议需先切回X11,否则无法通过X11工具读取全局窗口信息)
方法1:使用xdotool(调用最简单,推荐)
xdotool是常用的X11窗口自动化工具,使用前先确认已安装,未安装可执行命令:sudo apt update && sudo apt install -y xdotool
安装完成后,执行以下任意一条命令即可直接输出当前鼠标指针指向窗口的WID:
- 命令1:直接提取输出字段
xdotool getmouselocation | sed -n 's/.*window:\([0-9]*\).*/\1/p' - 命令2:通过shell变量导出,适合脚本中调用
eval $(xdotool getmouselocation --shell) && echo $WINDOW
方法2:使用系统自带X11工具(无需安装额外软件)
Ubuntu Cinnamon默认预装x11-utils工具包,可直接调用内置命令获取WID,工具包缺失可执行命令补装:sudo apt install -y x11-utils
直接执行如下命令即可输出对应WID:xquerypointer -root | awk '{print $1}'
补充说明
- 若鼠标当前指向桌面空白区域,返回值为桌面根窗口的WID,属于正常结果
- 输出的WID可直接传入其他窗口管理命令(如
wmctrl、xkill、xprop等)使用
内容的提问来源于stack exchange,提问作者Alfred.37
相关产品推荐
相关产品推荐

