Troubleshooting GUI Linux apps on openSUSE on WSLg

So you've install openSUSE Tumbleweed or Leap on WSL and are ready to try GUI apps on WSLg but run into some issues. Here are some fixes.

Issues Covered:

  • undefined symbol: g_memdup2
  • Could not load a pixbuf
  • GUI apps look bad
  • No GCR slot URIs found

undefined symbol: g_memdup2

symbol lookup error: /usr/lib64/libgobject-2.0.so.0: undefined symbol: g_memdup2

You have outdated libraries.

Fix:

sudo zypper dup

Could not load a pixbuf

Could not load a pixbuf from /org/gtk/libgtk/icons/16x16/status/image-missing.png.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Bail out! Gtk:ERROR:gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Aborted

You need to refresh GdkPixbuf.

Fix:

sudo /usr/bin/gdk-pixbuf-query-loaders-64 --update-cache

GUI apps look bad

You install your favorite text editor, say GNOME editor with:

sudo zypper in gedit

But it comes out looking like:

You are missing some key desktop environment components that make apps look nice. Same goes for KDE apps, like Kate:

And XFCE apps, like xfce4-terminal:

The fix:

If you plan to run GTK3+ and GNOME apps on WSLg on openSUSE, run:

sudo zypper in --no-recommends -t pattern gnome 

For KDE apps:

sudo zypper in --no-recommends -t pattern kde 

For GTK2 and XFCE apps:

sudo zypper in --no-recommends -t pattern xfce

You can even combine them, it is only about 312MB:

sudo zypper in --no-recommends -t pattern gnome kde xfce

No GCR slot URIs found, GCR certificate pinning unavailable

You get something like:

*[wrn] 14:56:18.0966 geary:application-certificate-manager.vala:74: No GCR slot URIs found, GCR certificate pinning unavailable                                                                                                          *[wrn] 14:56:19.0016 geary:application-client.vala:947: Error creating controller: The name org.freedesktop.secrets was not provided by any .service files 

And then your app doesn't open.

The fix:

Install gnome-keyring

sudo zypper install gnome-keyring