问题标签 [wayland]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Wayland 中 Xephyr 的替代品
我正在寻找一种工具来测试我的代码,我总是使用 Xephyr for Xorg 来做。现在 Wayland 中是否有 Xephyr 的替代品?
qt - Qt 应用程序在 Wayland ivi-shell 中失败
我想在 Wayland ivi-shell 中启动一个 Qt 应用程序。
我试过了
期望 Qt 应用程序可以在 Wayland ivi-shell 中启动。
但失败并显示以下消息
有人知道该怎么做吗?非常感谢!
c++ - 在 Qt 5.9 中使用 fbdev transform=90 在 Weston 下转置屏幕几何图形
我有一个使用 Qt 5.9 和 Weston 的嵌入式设备。Weston 必须使用 fbdev 后端(原因超出范围)和需求
在其输出部分,否则屏幕旋转。它运行良好,但我无法在 Qt 中获得合适的屏幕尺寸。为了在 Qt 5.8 中全屏运行我的应用程序,我使用了:
没关系。使用 Qt 5.9,屏幕会报告其大小已转置,因此我必须使用
这再次运行良好,但应用程序不再是可移植的。我也在其他平台上使用它,在没有转置的情况下都可以正常工作。
看着我看到的韦斯顿日志
这对应于我现在在 Qt 中得到的。但是如何正确检测由 引起的旋转transform=90
?
ubuntu - 为什么基于 GLX 的应用程序可以在 Ubuntu 上的 Wayland 上运行?
所以GLX是X11上OpenGL的图形上下文创建和管理系统。但在设计上,Wayland 不兼容 X11,并且为 OpenGL 上下文管理实现了 EGL,而不是 GLX。那么,在 Ubuntu 17.10 上基于 Wayland 的会话中,我仍然可以运行使用 GLX(例如glxinfo
和glxgears
)创建其上下文的应用程序吗?是否有一些透明的 GLX 仿真正在进行?
另外(因为这可能与上面的问题有关)为什么在 Wayland 上运行时,这些基于 GLX 的应用程序不能使用 MSAA(例如glxinfo
不返回任何支持 MSAA 的上下文类型)——至少在我的英特尔 GPU 上在 X.org 而不是 Wayland 上运行时,MSAA 在相同的应用程序、GPU 和 Ubuntu 版本上运行良好?
wayland - 在 Weston 中切换显示器位置
是否可以指示 Weston/Wayland 中的监视器位置?
我有两台显示器并一直在测试 Weston 合成器,但我无法指出哪台显示器应该是主显示器(或者哪台显示器应该显示屏幕的“左侧”)。
检查 weston.ini 文档(http://manpages.ubuntu.com/manpages/xenial/en/man5/weston.ini.5.html)我找到了有关设置分辨率、缩放和变换/旋转的信息,但没有关于监视器的位置。
gtk - Wayland上的Gtk3移动(子)窗口
我使用 gtk3 和 gtkmm。我想在 Wayland 上移动一个窗口。
然而这似乎不可能。我尝试使用Gtk::Window::move
方法和Gdk::Window::move
方法。我也type_hint
开始Gtk::Window
打电话Gtk::Window::set_transient_for
。这些都不适用于韦兰,它只是不动。并且还调用Gtk::Window::set_transient_for
“子窗口”使我的TYPE_HINT_DIALOG
“子窗口”不再停留在主窗口之上,这在调用此方法之前有效。
然而,我在gtkmm: Gdk::Window Class Reference中读到了这个:
对于顶层窗口,窗口管理器可能会忽略或修改移动;无论如何,您可能应该在 Gtk::Window 小部件上使用
gtk_window_move()
1,而不是使用 GDK 函数。对于子窗口,移动将可靠地成功
它说移动子窗口有效。但我不知道“子窗口”是什么意思。
现在我想知道:
- 这是真的?
- 如何使某个窗口成为另一个窗口的子窗口以移动子窗口(这是
Gtk::Window::set_transient_for
要走的路)? - 我能否以某种方式在 Wayland 上使用 gtk 移动(顶层)窗口(例如地下或其他东西)
注意:也欢迎使用 C 代码(gtk-code)!
编辑:只想注意:Qt5 使用 app-option "-platform wayland" 是一样的。Qt5 在使用 Wayland 时不会移动窗口。
1我猜这是一个错误,应该是Gtk::Window::move(int x, int y)
c++ - XDG-Shell:如何更改窗口大小?
我将 xdg-shell v5 添加到应用程序以绘制窗口。当我发送 set_fullscreen 或 set_maximize 命令时,我在配置事件中看到正确设置的窗口状态和正确的大小,但没有任何反应。
我的配置事件功能:
那么,我发送 set_maximized 后如何查看最大化的窗口?是否可以以编程方式(现在通过 Super+Tab)取消最小化窗口?
linux - 如何使用 Wayland 显示服务器枚举所有顶级窗口?
如何使用新的默认显示服务器 Wayland 在 Ubuntu 17.10 上枚举桌面上的所有顶级窗口(并进一步获取其标题和其他属性)?
之前我们使用 X11 / XLib 来实现这一点,但现在使用 Wayland 这不再可靠了。一些窗口,如 gedit 和 LibreOffice 不再出现在窗口列表中,而其他工具(如)xwininfo
也不再适用于这些窗口。
目前我们使用以下技术:
以 X.org 作为默认显示服务器的 Ubuntu 17.04:
- X11-XLib / X_QueryTree
视窗:
- Win32-API / EnumerateWindows(也存在 Windows 自动化 API)
苹果系统:
- NSAccessibility / AXUIElementCreateApplication、AXUIElementCopyAttributeValue、kAXChildrenAttribute
带有 Wayland 的 Ubuntu 17.10:
- ???
到目前为止,我还没有找到任何关于 Wayland 和可访问性或 UI 自动化的 API 文档。
有人可以帮忙吗?一个面向未来的解决方案/技术如何在 Linux/Ubuntu 上访问桌面窗口会很好。
问候。
linux - 抓取 linux 屏幕上显示的内容
我了解在 Linux 中,一个窗口系统(X11、Wayland 等)负责在屏幕上呈现应用程序。我尝试了 X11,但从来没有通过获得单个窗口。我还阅读了有关 Wayland 的信息。我的问题是,如果我想编写一个应用程序来抓取屏幕上显示的任何内容,有没有办法在我不依赖窗口系统的低级别(drm、dri、kms)上获取它?与窗口系统相比,这些低级 API 为我提供了哪些选择?
编辑:我读到这篇文章时意识到“Wayland 的一个特点是它的安全设计,它有助于保护用户免受恶意应用程序的侵害。应用程序无法再看到屏幕上的所有内容并监视你。但这也意味着你无法运行一个常见的应用程序(如快门或 gtk-recordmydesktop)并使用它来制作桌面的屏幕截图或截屏视频”。