如何在Wayland下截屏?

时间:2014-05-25 14:12:01

标签: wayland

想要编写一个简单的工具,它将在Wayland上截取屏幕截图。 我的理解是否与Xorg完全不同? 有人可以给我任何例子吗?

3 个答案:

答案 0 :(得分:5)

您的问题有点不明确。只要您使用Weston的参考合成器Wayland,就不需要编写工具。它内置了此功能。您可以使用Super + S截取屏幕截图,Super + R*.wcap形式录制视频,然后转换为*.webm视频。

如果您真的有兴趣编写这样的工具,那么您应该在Weston查看{{1}}的源代码:http://cgit.freedesktop.org/wayland/weston并查找相关部分。

答案 1 :(得分:1)

是的截图在道路下与Xorg完全不同。

  

通过设计,Wayland比X11更安全,并且不允许一个应用程序捕获其他应用程序的内容。 windows,meanignath基于X11的截图工具无法在Wayland / Xwayland下工作。

https://bugs.freedesktop.org/show_bug.cgi?id=98672

对不起,我不能告诉你它是如何不同的,只是它是不同的。

答案 2 :(得分:-1)

我曾经使用快门,但是Wayland失败了。

gnome-screenshot可与Wayland配合使用,但在抓取后直接重命名文件本身就很笨拙。

我制作了2个脚本: shut.sh

NSData *imageData = UIImagePNGRepresentation(newImage);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *imagePath =[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png",@"cached"]];
[imageData writeToFile:imagePath atomically:NO];

grabname.sh

#!/bin/sh
# call me shut.sh
gnome-screenshot -a -f /path/to/temp/grabcache.png
gnome-terminal -e "bash grabname.sh"

现在定义一个热键来运行 shut.sh 。除非将脚本保存到shell的$ PATH变量中的某个位置,否则您需要指定每个脚本的确切路径。

然后,当您按下键时,屏幕上会出现十字线,供您选择抓取目标。这将grabcache.png保存到/ path / to / temp。

完成后,终端将打开并询问您是否有文件名将grabcache.png复制到$ grab in / where / you / want / it。然后,nautilus应该打开以显示新的重命名抓取。如果nautilus已经打开,您可能需要手动ALT-TAB。