Fractal

Fractal is a Matrix messaging app for GNOME written in Rust. Its interface is optimized for collaboration in large groups, such as free software projects.

Scale to fit:

App ID:

org.gnome.Fractal [flatpak] OR fractal [apt]

automatic-app-scaling

Phone Compatibility:

5 of 5 Points, fully optimized

How to install:

APT:

Fractal is not yet available at Debian repositories. It was wishlisted for Debian on 24 June 2020.

Flatpak:

Flathub: https://flathub.org/apps/details/org.gnome.Fractal

Command:

# You will need to trust and add the flathub repo in flatpak
flatpak install flathub org.gnome.Fractal

Website:

Repo:

Matrix channel:

Known Issues:

Using the apt-version of Fractal doesn't remember login information. This is due to the way the Gnome Keyring works - will presumably be fixed in the future. As a workaround you can install Seahorse (Gnome Keyring UI)

sudo apt install seahorse

and create a new keyring named login. After that, Fractal will remember your login credentials.

Tips & Tricks

Fractal does currently not support E2E (see the issue in their bug tracker), so encrypted chatrooms are virtually inaccessible through this client. However, you can use Pantalaimon as a proxy-server to your Fractal client.

Pantalaimon works as the “good man in the middle”, between your client and the Matrix Server. It deals with de- & encryption and forwards the unencrypted messages to Fractal (or encrypted ones to the room). This also works with media.

Pantalaimon is a daemon, written in Python, that can directly run as a systemd process on Mobian.. The setup is a bit tricky however, and the Repository's notes do not go into great detail.

Setting up Pantalaimon

It's recommended to do this via SSH, as it involves a lot of copying and typing.

Install Pantalaimon

sudo apt install pantalaimon

Setting up Pantalaimon

Create a 'pantalaimon' folder in ~/.config

mkdir -p ~/.config/pantalaimon

and create a file pantalaimon.conf in that folder with the following content (make sure to exchange matrix.org with your actual homeserver:

[Default]
# LogLevel = Debug
SSL = True

[local-matrix]
Homeserver = https://matrix.org
ListenAddress = localhost
ListenPort = 8009
# UseKeyring = True
# IgnoreVerification = True

Optional lines are commented out here (#).

Now you should be able to run pantalaimon by executing it pantalaimon.

Optional: systemd service

Optional: In order to start pantalaimon automatically via systemd, copy the sample service file provided by the package (/usr/share/doc/pantalaimon/examples/pantalaimon.service) into ~/.config/systemd/user/.

Then execute the following commands to reload the systemd daemon and start the service:

systemctl --user daemon-reload
systemctl --user enable --now pantalaimon.service
Log In

In Fractal, set your homeserver to http://localhost:8009 (if you set a different ListenPort, you need to adjust it here, too) and login with your username and password. To access encrypted messages from other devices/sessions, you will need to establish trust on your other logged in Matrix clients.

Troubleshooting: CPU spikes

When using Pantalaimon through the systemd service, it is always running in the background, even if you do not actively using Fractal (or any other Matrix client). This can become a CPU hog, if you receive a lot of encrypted messages or media and drain your battery. There is no concrete solution to this, but you can work around it by limiting the CPU power dedicated to the Pantalaimon process:

Install the cpulimit tool:

sudo apt install cpulimit

Edit your systemd service file, described above to:

[Unit]
Description=Pantalaimon E2E Matrix reverse proxy

[Service]
ExecStart=/usr/bin/cpulimit --limit=25 --lazy --foreground -- /usr/bin/pantalaimon

[Install]
WantedBy=default.target

Then reload the systemd daemon and restart the service:

systemctl --user daemon-reload
systemctl --user restart pantalaimon.service