AwesomeWM中如何截取所有标签和windows

How to screenshot all tags and windows in AwesomeWM

我想创建所有标签的概览。
我的第一步是尝试截取当前打开的所有标签和(或)客户端。

我试过使用 imagemagick 导入实用程序截取客户端的屏幕截图,但它仅在客户端位于我使用命令的同一标签中时才有效。

import -window WINDOW_ID myImage.jpg

不同标签时出错:

import: unable to read X window image 'WINDOW_ID': Resource temporarily unavailable @ error/xwindow.c/XImportImage/5041.
import:  `myImage.jpg' @ error/import.c/ImportImageCommand/1288.

有什么建议吗?

编辑:
意识到我可以在 unfocus 信号后截取每个客户端或标签。
不过我还是很好奇为什么不能在其他标签里截图客户端。如果有人能回答我将不胜感激

P.S。有一个名为 content 的客户 属性 可以为您提供所需的图片

But I'm still curious why you can't screenshot clients in other tags. If anyone could answer I'd be grateful.

X11 保留的内容不超过当前可见的屏幕内容。即使 window 只是部分可见(因为其他 window 覆盖了它的一部分,或者因为 window 的一部分是 off-screen),您也很可能赢了' 无法获取当前不可见部分的截图。

有些方法在这些情况下可能仍然有效,但对于另一个标签上的 windows,获取其内容的唯一方法是使这些 windows 可见并等待它们显示re-draw 他们自己。屏幕截图实用程序无法做到这一点。

这就是 X11 的工作原理。