Skip to content

Desktop background change failure in FreeBSD 14/15 (running as a VMware guest)

This issue started appearing as far back as FreeBSD 13.*, most likely after the upgrade from Xfce 4.18 to 4.20.

It manifests itself as follows:

When X11/Xfce4 starts, VMware automatically resizes the guest desktop resolution. However, the desktop background image does not stretch automatically — it gets “stuck” at some intermediate size (typically around 1024×768) and remains positioned in the top-left corner of the desktop. The VMware window is maximized at boot time. If you first manually resize the VMware window (make it smaller or move the borders) and then maximize it again, the already-set background then stretches properly to fill the entire desktop. When opening the Desktop Settings dialogue, two identical warning windows pop up on top with the message: “Unable to load images from folder (null)”. After closing these warnings, selecting any image has no effect — the desktop background does not change, and nothing on the Background tab of the settings works at all. Through trial and error, I found that the image being displayed is actually /usr/local/share/backgrounds/xfce/xfce-x.svg. There is also a discussion of this exact problem on the FreeBSD forums: https://forums.freebsd.org/threads/another-post-about-a-broken-xfce4-perhaps.98060/

And, just in case, here is the content of ~/.xsession-errors:

libxfce4windowing-Message: 19:00:15.438: Failed to fetch _NET_NUMBER_OF_DESKTOPS; assuming 1 libxfce4windowing-Message: 19:00:15.439: Failed to get _NET_WORKAREA; using full screen dimensions libxfce4windowing-Message: 19:00:15.439: Failed to fetch _NET_CURRENT_DESKTOP; assuming 0 libxfce4windowing-Message: 19:00:15.439: Failed to fetch _NET_CURRENT_DESKTOP; assuming 0 /usr/local/bin/iceauth: creating new authority file /var/run/user/1001/ICEauthority libxfce4windowing-Message: 19:00:15.699: Failed to fetch _NET_CURRENT_DESKTOP; assuming 0 '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature) '-avx512er' is not a recognized feature for this target (ignoring feature) '-avx512pf' is not a recognized feature for this target (ignoring feature)

(xfwm4:2955): xfwm4-WARNING **: 19:00:15.978: Unsupported GL renderer (llvmpipe (LLVM 19.1.7, 256 bits)).

(vmware-user:2965): Gtk-WARNING **: 19:00:17.302: gtk_disable_setlocale() must be called before gtk_init() Xlib: extension "DPMS" missing on display ":0.0".

(xfce4-power-manager:2978): xfce4-power-manager-WARNING **: 19:00:17.332: Display is not DPMS capable

(xfdesktop-settings:3002): GLib-GObject-CRITICAL **: 19:00:42.253: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed

(xfdesktop-settings:3002): GLib-GIO-CRITICAL **: 19:00:42.253: g_file_get_path: assertion 'G_IS_FILE (file)' failed

(xfdesktop-settings:3002): GLib-GObject-CRITICAL **: 19:00:42.337: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed

(xfdesktop-settings:3002): GLib-GIO-CRITICAL **: 19:00:42.337: g_file_get_path: assertion 'G_IS_FILE (file)' failed