gnome 地圖程序從不執行
我在執行 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
(此消息已多次更改)這是什麼?
假設 GNOME Maps
Gdk-Message
在 GNOME 下的 Debian 10 中啟動時崩潰:
Error 71 (Protocol error) dispatching to Wayland display.
這意味著作為 GTK 渲染引擎的GDK由於某種原因無法與GNOME中的Wayland 合成器 Mutter 通信。結果,您的應用程序無法向系統解釋如何將其呈現到顯示器上並崩潰。假設您的 Debian 10 安裝與任何其他安裝完全相同,則該錯誤可能是由特定於您的硬體的圖形驅動程序和韌體引起的。
Debian 保留了一系列內置的備份機制,以防 Wayland 還不適合您。雖然其中一些是自動的,但對最終使用者來說是顯而易見的。您可以在登錄螢幕上選擇不同的會話,而不是使用 Wayland 的預設“GNOME”會話。按密碼欄位下的齒輪圖示⚙️以訪問它們。其他選項包括“System X11 Default”和“GNOME on Xorg ”。登錄後,可能看起來沒有任何變化,因此您可以使用
echo $XDG_SESSION_TYPE
. GNOME Classic的變化不僅僅是顯示伺服器。也可以在 Wayland 會話下強制應用程序在XWayland上執行。這樣,您無需更改預設會話,可以繼續使用 Wayland,同時避免應用程序在 Wayland 下導致的問題。
環境變數設置為“
GDK_BACKEND
wayland”時,將強制執行帶有 Wayland 後端的 GTK3 應用程序。同樣,將環境變數設置為“x11”將強制它與 X11 後端一起執行(對於強制應用程序使用在其原生 Wayland 模式下執行時存在兼容性問題的 Xwayland 很有用)。您可以使用
env
X11 GDK 後端在修改後的環境中執行應用程序。要從終端在 Wayland 中的 X11 下啟動 GNOME Maps:$ env GDK_BACKEND=x11 gnome-maps
如果可以,可以修改下應用程序桌面入口的
Exec
key/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 中啟動,例如通過點擊應用程序的圖示。