Answers:
我想xdotool getactivewindow
是您想要的-您尝试过吗?
如果命令行上没有其他xdotool子命令,它将打印窗口ID(从窗口堆栈)。
在xdotool getactivewindow getwindowpid
例如, getactivewindow
把窗口堆栈上的ID,并getwindowpid
使用该ID来查询PID。请注意,在终端中运行该命令将始终返回终端窗口的ID,因为该窗口处于活动状态。为了从另一个窗口获取ID,请尝试sleep 2s && xdotool getactivewindow
在两秒钟的时间范围内选择感兴趣的窗口。
xdotool
与其他用于窗口处理的工具一起
使用时会很复杂:
虽然xdotool
输出使用十进制数字表示窗口ID,但大多数其他工具使用十六进制数字表示输出(它们通常都支持输入)。
例如,如果找到带有的窗口xdotool getactivewindow
,则不会在xwininfo -root -tree
列出所有窗口的输出中找到结果。首先需要将其转换为十六进制数:
$ xdotool getactivewindow
69206716
$ printf 0x%x 69206716
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
0x42002bc (has no name): ("konsole" "Konsole") 1154x781+0+0 +1289+498
将十进制转换为十六进制:
printf 0x%x 69206716
将十六进制转换为十进制:
printf %i 0x42002bc
xwininfo -root -tree
-此命令将打印所有窗口,并且窗口具有其他类型的编号。
xwininfo
将窗口ID显示为十六进制数字,而xdotool显示十进制数字,但它是相同的。
xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
这个命令对我有用
xdotool key --window "$(xdotool getactivewindow)" F5
xdotool版本3.20160805.1
xdotool getactivewindow key F5
应该产生相同的结果
xdotool getactivewindow
命令,问题是它不会在终端中显示结果。它将结果保存到窗口堆栈。该命令打印一些数字,但不是窗口ID(例如35651588)