program map gnome nigdy nie działa

Sep 29 2020

Mam ten problem podczas korzystania z map 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 (Ta wiadomość zmieniała się wiele razy)

Co to jest?

Odpowiedzi

RomanRiabenko Oct 01 2020 at 02:17

Zakładając, że Mapy GNOME ulegają awarii podczas uruchamiania Gdk-Messagew Debianie 10 pod GNOME:

Error 71 (Protocol error) dispatching to Wayland display.

Oznacza to, że GDK jako silnik renderujący GTK z jakiegoś powodu nie może komunikować się z Mutter, który jest kompozytorem Wayland w GNOME. W rezultacie aplikacja nie wyjaśnia systemowi, jak wyrenderować ją na wyświetlaczu i ulega awarii. Zakładając, że Twoja instalacja Debiana 10 jest taka sama, jak każda inna, błąd może być spowodowany w połączeniu ze sterownikami graficznymi i oprogramowaniem sprzętowym specyficznym dla Twojego sprzętu.

Debian posiada wbudowany szereg mechanizmów awaryjnych na wypadek, gdyby Wayland jeszcze dla Ciebie nie działał. Chociaż niektóre z nich są automatyczne, jedno jest oczywiste dla użytkownika końcowego. Możesz wybrać inną sesję na ekranie logowania, inną niż domyślna sesja „GNOME”, która używa Wayland. Naciśnij ikonę koła zębatego ⚙️ pod polem hasła, aby uzyskać do nich dostęp. Inne opcje to „Domyślny system X11” i „GNOME na Xorg ”. Po zalogowaniu może się wydawać, że nic się nie zmieniło, więc możesz sprawdzić bieżącą sesję za pomocą echo $XDG_SESSION_TYPE. GNOME Classic zmienia znacznie więcej niż tylko serwer wyświetlania.

Możliwe jest również wymuszenie uruchomienia aplikacji na XWayland w ramach sesji Wayland. W ten sposób nie musisz zmieniać domyślnej sesji i możesz kontynuować korzystanie z Wayland, unikając problemów, które aplikacja powoduje w Wayland.

GTK3

GDK_BACKENDZmienna, gdy ustawiony na „Wayland”, będzie przymusowo uruchomić aplikację GTK3 z backend Wayland. Podobnie, ustawienie zmiennej środowiskowej na „x11” wymusi jej działanie z zapleczem X11 (przydatne do wymuszania aplikacji na Xwayland, które mają problemy ze zgodnością, gdy działają w ich natywnym trybie Wayland).

Możesz użyć envdo uruchomienia aplikacji w zmodyfikowanym środowisku z zapleczem X11 GDK. Aby uruchomić mapy GNOME pod X11 w Wayland z terminala:

$ env GDK_BACKEND=x11 gnome-maps

Jeśli to działa, możesz zmodyfikować Execklucz wpisu aplikacji na pulpicie pod /usr/share/applications. W przypadku map GNOME znajduje się w org.gnome.Maps.desktop:

Exec=gapplication launch org.gnome.Maps %U

Zmodyfikowany byłby:

Exec=env GDK_BACKEND=x11 gapplication launch org.gnome.Maps %U

W ten sposób Mapy uruchomią się w XWayland po uruchomieniu z GNOME, na przykład poprzez kliknięcie ikony aplikacji.