Split-browser with debian-minimal doesn't show up

I installed @rustybird 's brilliant qubes-split-browser, and it worked really well when the disp-template was fedora-34-dvm or whonix-ws-16-dvm. However, when the disp-template is a minimal debian-firefox qube, very often I see error messages in that persistent qube that stores bookmarks (which is split-backend in my case). It says:

disp: (firefox-esr:xxx): Gtk-WARNING **:xx:xx:xx.xxx(current time): Locale not supported by C library.
disp: Using the fallback 'C' locale.
disp: Unable to init server: Could not connect: Connection refused
disp: Error: cannot open display: :0

It launches a disp but firefox isn’t showing up. If I run firefox in cli in that disp, I receive an error Failed to read the configuration file. Please contact your system administrater., but firefox launches, but those shortcuts (Alt+B to open bookmarks in split-backend, etc.) don’t work.

More details:

I have 4 disp-templates: fedora-34-dvm, whonix-ws-16-dvm, split-frontend and deb-firefox. The latter two are based on the same template qube, which is a debian-minimal qube, installed with firefox-esr, pulseaudio-qubes, and thunar.

In deb-firefox, I ran firefox-esr and did some modification to it (extensions, preferences, etc.). I didn’t run firefox-esr in split-frontend.

When split-backend 's default dispvm is set to split-frontend, a reboot “occasionally” solves the problem. After reboot, I can have disps launching properly.
But, at that point, if I split-backend 's change default dispvm to deb-firefox, and try to launch disps, the same error will occur.
If I change it back to split-frontend, the problem does not disappear.
If I change it to fedora-34-dvm, the problem disappears.

When split-backend 's default dispvm is set to deb-firefox, reboot doesn’t solve the problem.

How can I debug this? Thank you!

Here are two lines from journalctl.

May 11 10:22:29 disp8418 qubes-gui[559]: WARNING handle_focus: Window 0x1000003 data not initializedXGetWindowAttributes for 0x1000003 failed in handle_crossing, ret=0x0
May 11 10:22:57 disp8418 qubes-gui[559]: XGetWindowAttributes for 0x1000003 failed in handle_crossing, ret=0x0

According to my observation, in launched dispVMs, sb.js has been copied to /usr/lib/firefox-esr, and sb-load.js has been copied to /usr/lib/firefox/default/pref/. So it’s firefox not recognizing them.

I managed to partly fix the issue. In /usr/local/etc/qubes-rpc/, edit the split-browser-disp, in “master” section, add the line cd -- "$SB_FIREFOX_DIR", and I can launch firefox and use split-browser functions. However, simply editing that in disp-template is not sufficient. Firefox doesn’t show up automatically, and I have to manually run “split-browser-disp” and input “master” in that launched disp to have a working split-browser.

EDIT: Seems that only disp to persist channel is set up in this workaround. I can create new bookmarks and call bookmark function, but I can’t open bookmark links in the browser.

After heavy testing, I find significant inconsistency in whether firefox will launch in debian-11-minimal based DispVMs. It’s just a matter of chance.

This should be fixed in qubes-split-browser-0.14.1 (it’s the only real change from 0.14.0), but the package has been stuck in the testing repository. I’ve pinged fepitre about stabilization.

If you want to apply the bugfix manually, note that it’s for the persistent side even though the error message originates on the disposable side.

1 Like

Thank you for that! The problem has been solved.