客户端的cairo表面截图

我刚刚发现了使用client.content属性的截图功能。

所以为了测试这个功能,我放置了这段代码并将其绑定到XF86Reload键上:

awful.key({  },        "XF86Reload",     function()
     local i = 0
     for c in awful.client.iterate(function() return true end)
     do
        local f = c.name
        gears.surface(c.content):write_to_png( "/home/david/" .. string.format('%02i',i) .."-" .. f  ..  ".png")
        i=i+1
     end
end)

不幸的是,有些图像被搞糊了。cairo表面需要在屏幕上(即非最小化)才能被正确地拍摄吗?(似乎有时也会发生在可见窗口上),或者其他我看不到的原因…

点赞
用户436275
用户436275

Cairo表面需要在屏幕上(即非最小化状态)才能正常截屏吗?

是的(并且还有:不能被其他窗口遮挡或在可见空间之外;您只能获取实际显示在屏幕上的内容)。

2018-03-17 09:57:36
用户1672598
用户1672598

请注意,使用 Compton 或其他复合管理器可以使其更加可靠。

2018-03-19 13:14:48