Debian

gnome 地圖程序從不執行

  • September 30, 2020

我在執行 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 MapsGdk-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 下導致的問題。

GTK3

環境變數設置為“ GDK_BACKENDwayland”時,將強制執行帶有 Wayland 後端的 GTK3 應用程序。同樣,將環境變數設置為“x11”將強制它與 X11 後端一起執行(對於強制應用程序使用在其原生 Wayland 模式下執行時存在兼容性問題的 Xwayland 很有用)。

您可以使用envX11 GDK 後端在修改後的環境中執行應用程序。要從終端在 Wayland 中的 X11 下啟動 GNOME Maps:

$ env GDK_BACKEND=x11 gnome-maps

如果可以,可以修改下應用程序桌面入口的Execkey/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 中啟動,例如通過點擊應用程序的圖示。

引用自:https://unix.stackexchange.com/questions/611875