我在运行 GNOME 地图时遇到此问题
~$ gnome-maps
(org.gnome.Maps:10414): Gjs-WARNING **: 19:43:34.553: Some code called array.toString() on a Uint8Array instance. Previously this would have interpreted the bytes of the array as a string, but that is nonstandard. In the future this will return the bytes as comma-separated digits. For the time being, the old behavior has been preserved, but please fix your code anyway to explicitly call ByteArray.toString(array).
(Note that array.toString() may have been called implicitly.)
0 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmTypes.js":32]
1 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmEditDialog.js":35]
2 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmEdit.js":25]
3 <TOP LEVEL> ["resource:///org/gnome/Maps/js/contextMenu.js":33]
4 <TOP LEVEL> ["resource:///org/gnome/Maps/js/mainWindow.js":33]
5 <TOP LEVEL> ["resource:///org/gnome/Maps/js/application.js":35]
6 <TOP LEVEL> ["resource:///org/gnome/Maps/js/main.js":43]
7 start() ["resource:///org/gnome/gjs/modules/package.js":209]
8 <TOP LEVEL> ["/usr/bin/gnome-maps":2]
(org.gnome.Maps:10414): Gdk-WARNING **: 19:43:36.525: Native Windows taller than 65535 pixels are not supported
Gdk-Message: 19:43:36.574: Error 71 (Protocol error) dispatching to Wayland display.
19:43:36.574
(此消息已更改多次)
这是什么?
答案1
Gdk-Message
假设 GNOME 地图在 GNOME 下的 Debian 10 中启动时崩溃:
Error 71 (Protocol error) dispatching to Wayland display.
代表着GDK由于GTK渲染引擎由于某种原因无法与Mutter通信,这是韦兰合成器在 GNOME 中。因此,您的应用程序无法向系统解释如何将其呈现到显示器上并崩溃。假设您的 Debian 10 安装与其他安装完全相同,则该错误可能是由特定于您的硬件的图形驱动程序和固件引起的。
Debian 保留了一系列内置的后备机制,以防 Wayland 尚不适合您。虽然其中一些是自动的,但有一个对最终用户来说是显而易见的。您可以在登录屏幕上选择不同的会话,而不是使用 Wayland 的默认“GNOME”会话。按密码字段下方的齿轮图标 ⚙️ 即可访问它们。其他选项包括“System X11 Default”和“GNOME on奥格”。登录后,可能看起来没有任何变化,因此您可以检查您当前的会话是echo $XDG_SESSION_TYPE
.侏儒经典改变的不仅仅是显示服务器。
还可以强制应用程序运行在X韦兰在 Wayland 会话下。这样,您无需更改默认会话,就可以继续使用 Wayland,同时避免应用程序在 Wayland 下引起的问题。
当环境
GDK_BACKEND
变量设置为“wayland”时,将强制运行具有 Wayland 后端的 GTK3 应用程序。同样,将环境变量设置为“x11”将强制其与 X11 后端一起运行(对于强制应用程序使用在其本机 Wayland 模式下运行时存在兼容性问题的 Xwayland 很有用)。
您可以使用env
在具有 X11 GDK 后端的修改环境中运行应用程序。要从终端在 Wayland 的 X11 下启动 GNOME 地图:
$ env GDK_BACKEND=x11 gnome-maps
如果有效的话可以修改一下Exec
钥匙下应用程序的桌面条目/usr/share/applications
。对于 GNOME 地图,它位于org.gnome.Maps.desktop
:
Exec=gapplication launch org.gnome.Maps %U
修改后的内容是:
Exec=env GDK_BACKEND=x11 gapplication launch org.gnome.Maps %U
这样,当从 GNOME 启动时,地图将在 XWayland 中启动,例如通过单击应用程序的图标。