提高绩效

提高绩效

我想获取窗口标题栏的高度,例如我的浏览器或 Nautilus 的像素高度。

我指的是屏幕截图中的“黑暗部分”,也就是包含最小、最大、关闭按钮的条带。

此信息存储在哪里?我可以查找它吗?

在此处输入图片描述

答案1

什么原因导致 wmctrl 窗口移动命令出现偏差

$ xprop | grep FRAME
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 28, 0

每当您获取窗口位置并将其移动到同一位置时,它都不应该在屏幕上移动,但由于标题栏的高度,它会移动。所以在我的情况下,我需要从 y 坐标中减去 28 并移动到该位置。


提高绩效

您会发现该命令大约需要 10 秒钟才能运行:

$ time xprop | grep FRAME
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 28, 0

real    0m9.989s
user    0m0.017s
sys     0m0.004s

这太慢了。为了加快搜索速度,请传递窗口 ID:

$ time xprop -id $(xdotool getactivewindow) | grep FRAME
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 28, 0

real    0m0.012s
user    0m0.011s
sys     0m0.003s

现在只有百分之一秒,比眨眼还快。

相关内容