On my Pixelbook, I'm using XRDP to RD into an xorg session of XFCE. It works pretty well except that certain Linux apps called upon within the remote desktop session launch in Chrome OS (DISPLAY=:0) instead XFCE (DISPLAY=:10), affecting mainly GNOME apps but some XFCE apps as well.

My limited understanding is that Crostini forwards xwayland to sommelier, which then passes onto a Wayland server to render on Chrome OS, though I'm pretty fuzzy on the nitty gritty. Now, it appears that, when called upon within the remote desktop session, the app only passes onto Chrome OS when it fails to render in XFCE, often with at least the following error messages in common:

(app.name:xxxx): Gtk-WARNING **: Loading IM context type 'xim' failed
xkbcommon: ERROR: Key "<CAPS>" added to modifier map for multiple modifiers; 
Using Mod3, ignoring Lock

What I would like to do is for apps called upon on XFCE to launch in XFCE, which it only does for some apps, and for apps called upon on Chrome OS to launch in Chrome OS, which it already does and I'd like to keep it that way (i.e., without completely disabling sommelier). I tried, to no avail:

  • Run as DISPLAY=:10 <executable>. Apps either still launch on Chrome OS with the same error messages, or completely fail to launch.
  • Disable Wayland: not sure how since no display manager is running (lightdm disabled).
  • Connect as an XVNC session: same issue persists.

Example screenshots below, any suggestion appreciated.

xterm launches in xfce; xfce4-terminal launches in Chrome OS

catfish produces error message and launches in Chrome OS; firefox launches in xfce with no error

1 Answer 1


Use GDK_BACKEND=x11 environment variable to force X11 instead of Wayland. To set as a persistent X session environment variable, add export GDK_BACKEND=x11 in ~/.config/xfce/xinitrc before the codes that start xfce4-session.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .