我了解在 Linux 中,一个窗口系统(X11、Wayland 等)负责在屏幕上呈现应用程序。我尝试了 X11,但从来没有通过获得单个窗口。我还阅读了有关 Wayland 的信息。我的问题是,如果我想编写一个应用程序来抓取屏幕上显示的任何内容,有没有办法在我不依赖窗口系统的低级别(drm、dri、kms)上获取它?与窗口系统相比,这些低级 API 为我提供了哪些选择?
编辑:我读到这篇文章时意识到“Wayland 的一个特点是它的安全设计,它有助于保护用户免受恶意应用程序的侵害。应用程序无法再看到屏幕上的所有内容并监视你。但这也意味着你无法运行一个常见的应用程序(如快门或 gtk-recordmydesktop)并使用它来制作桌面的屏幕截图或截屏视频”。