(QubesOS) Fractal matrix client setup?

I have been trying to setup a Fractal qube without much success. The stable flatpak on my Librem 5 (Byzantium) works without issue, and I was able to apply dark mode to it using this command:

sudo flatpak override org.gnome.Fractal --env=GTK_THEME=Adwaita-dark

However I’m having lots of problems when trying to configure a Fractal qube in QubesOS. While the beta has no issues loading images, the stable flatpak can’t load images at all.

But there are more important problems that I can’t solve which affect both stable and beta flatpaks and are present in minimal and standard qubes based on Debian-12:

  • After starting the app for the first time, I can login and verify the session, but not all rooms or messages decrypt, even after importing room keys (which I can only seem to do in Fractal-beta).

  • After starting the app for the first time, once I close the app, subsequent attempts to open the app will get stuck loading indefinitely, using around 95% CPU as it tries.

I have made scripts for creating the template and app qubes using Debian-12-minimal and have also swapped the minimal for standard Debian-12 with no noticeable difference.

Here are the scripts:

Template Qube creation script (Fractal-stable)
#!/bin/bash

SOURCE_TEMPLATE=debian-12-minimal
FRACTAL_TEMPLATE=deb-12-m-fractal

qvm-clone $SOURCE_TEMPLATE $FRACTAL_TEMPLATE
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'apt-get install --no-install-recommends dbus-user-session flatpak gnome-keyring libshumate-1.0-1 libsqlcipher0 nautilus pulseaudio-qubes qubes-core-agent-networking seahorse sqlite3 xdg-desktop-portal xdg-desktop-portal-gnome xdg-desktop-portal-gtk xfce4-notifyd -y'
sleep 3
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak install flathub org.gnome.Fractal -y'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'echo -e "Xft.dpi: 156" >> /etc/X11/Xresources/x11-common'
qvm-shutdown --wait $FRACTAL_TEMPLATE
Template Qube creation script (Fractal-beta)
#!/bin/bash

SOURCE_TEMPLATE=debian-12-minimal
FRACTAL_TEMPLATE=deb-12-m-fractal-b

qvm-clone $SOURCE_TEMPLATE $FRACTAL_TEMPLATE
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'apt-get install --no-install-recommends dbus-user-session flatpak gnome-keyring libshumate-1.0-1 libsqlcipher0 nautilus pulseaudio-qubes qubes-core-agent-networking seahorse sqlite3 xdg-desktop-portal xdg-desktop-portal-gnome xdg-desktop-portal-gtk xfce4-notifyd -y'
sleep 3
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak install flathub org.gnome.Platform/x86_64/46'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'export all_proxy=http://127.0.0.1:8082; flatpak install flathub-beta org.gnome.Fractal -y'
qvm-run -u root --pass-io $FRACTAL_TEMPLATE 'echo -e "Xft.dpi: 156" >> /etc/X11/Xresources/x11-common'
qvm-shutdown --wait $FRACTAL_TEMPLATE
App Qube creation script (Fractal-stable)
#!/bin/bash

FRACTAL_TEMPLATE=deb-12-m-fractal
DISPOSABLE_FRACTAL_TEMPLATE=fractal
NETWORK_QUBE=sys-fw-whonix

qvm-create --class AppVM --template $FRACTAL_TEMPLATE --prop autostart=false --prop audiovm=sys-audio --prop netvm="" --prop template_for_dispvms=true --label purple $DISPOSABLE_FRACTAL_TEMPLATE
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE appmenus-dispvm 1
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE menu-items org.gnome.Fractal.desktop
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE menu-favorites org.gnome.Fractal
qvm-run --pass-io $DISPOSABLE_FRACTAL_TEMPLATE seahorse
qvm-shutdown --wait $DISPOSABLE_FRACTAL_TEMPLATE
qvm-prefs $DISPOSABLE_FRACTAL_TEMPLATE netvm $NETWORK_QUBE
App Qube creation script (Fractal-beta)
#!/bin/bash

FRACTAL_TEMPLATE=deb-12-m-fractal-b
DISPOSABLE_FRACTAL_TEMPLATE=fractal
NETWORK_QUBE=sys-fw-whonix

qvm-create --class AppVM --template $FRACTAL_TEMPLATE --prop autostart=false --prop audiovm=sys-audio --prop netvm="" --prop template_for_dispvms=true --label purple $DISPOSABLE_FRACTAL_TEMPLATE
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE appmenus-dispvm 1
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE menu-items org.gnome.Fractal.desktop
qvm-features $DISPOSABLE_FRACTAL_TEMPLATE menu-favorites org.gnome.Fractal
qvm-run --pass-io $DISPOSABLE_FRACTAL_TEMPLATE seahorse
qvm-shutdown --wait $DISPOSABLE_FRACTAL_TEMPLATE
qvm-prefs $DISPOSABLE_FRACTAL_TEMPLATE netvm $NETWORK_QUBE

Verbose startup command:

flatpak run -vv org.gnome.Fractal
Error (Fractal-stable)
libEGL warning: DRI2: failed to authenticate
MESA: error: ZINK: failed to choose pdev
libEGL warning: egl: failed to create dri2 screen
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
2024-04-26T21:46:41.994643Z  INFO fractal::application: Fractal (org.gnome.Fractal)
2024-04-26T21:46:41.994685Z  INFO fractal::application: Version: 6 (stable)
2024-04-26T21:46:41.994693Z  INFO fractal::application: Datadir: /app/share/fractal
2024-04-26T21:46:42.765473Z  INFO fractal::session_list: Restoring previous session for user: @USERNAME:INSTANCE
2024-04-26T21:46:42.765516Z  INFO fractal::session_list: Database path: /home/user/.var/app/org.gnome.Fractal/data/fractal/DIRECTORY
Error (Fractal-beta)
F: Running 'bwrap --args 38 -- fractal'
libEGL warning: DRI2: failed to authenticate
MESA: error: ZINK: failed to choose pdev
libEGL warning: egl: failed to create dri2 screen
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
2024-04-27T16:47:16.904429Z  INFO fractal::application: Fractal (org.gnome.Fractal)
2024-04-27T16:47:16.904661Z  INFO fractal::application: Version: 7.rc (beta)
2024-04-27T16:47:16.904685Z  INFO fractal::application: Datadir: /app/share/fractal

(fractal:2): Gtk-WARNING **: 11:47:16.982: Unable to acquire the address of the accessibility bus: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown. If you are attempting to run GTK without a11y support, GTK_A11Y should be set to 'none'.
2024-04-27T16:47:17.654899Z  INFO fractal::session_list: Restoring previous session for user: @USERNAME:INSTANCE
2024-04-27T16:47:17.656456Z  INFO fractal::session_list: Database path: /home/user/.var/app/org.gnome.Fractal/data/fractal-beta/1d332a68-faf6-4a4b-bc19-f5baae592e3f
2024-04-27T16:47:17.665191Z ERROR fractal::system_settings::linux: Could not access clock format system setting: Portal request failed: org.freedesktop.zbus.Error: No such interface âorg.freedesktop.portal.Settingsâ

I would greatly appreciate any help to troubleshoot this issue.

Thank you.

1 Like