Making KopiaUI start on login when installed as a Flatpak
KopiaUI's built-in "Launch at startup" toggle silently fails under Flatpak. The sandbox can't write to host `~/.config/autostart/`. Fix is a hand-rolled autostart `.desktop` file with a minimal `flatpak run` Exec line.
KopiaUI installed as a Flatpak (io.kopia.KopiaUI) has a "Launch at startup" toggle in Settings → Preferences. Under Flatpak, ticking it does nothing useful. The app reports success, but no autostart entry lands on the host and Kopia just doesn't come back after reboot.
Sandbox problem, not a Kopia bug.
Notes below assume KDE Plasma on Wayland (default Bazzite spin). The fix file itself is DE-agnostic; GNOME-specific deltas are called out where they matter.
# Why it breaks
The toggle writes to $XDG_CONFIG_HOME/autostart/kopia-ui.desktop. Under Flatpak, $XDG_CONFIG_HOME is rewritten to the per-app sandbox directory (~/.var/app/io.kopia.KopiaUI/config/), and the sandbox doesn't get --filesystem=xdg-config/autostart:create by default. The file is "written" inside the sandbox where the session autostart loader never looks.
The flatpak-exported launcher at /var/lib/flatpak/exports/share/applications/io.kopia.KopiaUI.desktop is also a bad copy-paste source. Its Exec= line is built for URL-handler launches:
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=kopia-ui --file-forwarding io.kopia.KopiaUI @@u %U @@
The --file-forwarding ... @@u %U @@ block expects URL arguments. With no URLs at autostart, what actually happens depends on the session manager. Anything from a stray "Open File" prompt to silently failing to background.
This is also why the click-path through Plasma's System Settings → Autostart → Add Application doesn't save you: it copies the exported .desktop into your autostart dir verbatim, broken Exec and all. Same trap on GNOME's Tweaks → Startup Applications. You need the hand-rolled file below.
# Fix
Drop a minimal autostart entry on the host:
# ~/.config/autostart/kopia-ui.desktop
[Desktop Entry]
Type=Application
Version=1.0
Name=KopiaUI
Comment=Fast and secure open source backup
Exec=flatpak run io.kopia.KopiaUI
StartupNotify=false
Terminal=false
X-GNOME-Autostart-enabled=true
The file is plain XDG autostart-spec, so Plasma's session manager picks it up directly from ~/.config/autostart/ and runs it on login. The X-GNOME-Autostart-enabled=true line is GNOME-specific extra metadata; Plasma ignores it, but leaving it in keeps the file portable if you also use a GNOME session somewhere.
Verify after a reboot:
pgrep -af 'kopia-ui|io.kopia.KopiaUI'
You should see a flatpak run wrapper and the actual kopia-ui process under it.
# When it still doesn't work
- Plasma's System Settings → Autostart lists it but it doesn't run. Check
~/.config/autostart/kopia-ui.desktopperms. It must be readable by your user.chmod 644it. Same applies to GNOME's Tweaks → Startup Applications. - Tray icon never appears on Plasma. Plasma has native StatusNotifierItem support, so this should just work. If it doesn't, make sure the system tray widget is on your panel and configured to show all icons, not just an allow-list.
- Tray icon never appears on GNOME. GNOME has no native system tray. Install the AppIndicator and KStatusNotifierItem Support extension. Without it, KopiaUI runs but minimises to nothing.
- Kopia repo not unlocked at autostart. By design. Kopia won't decrypt the repo without the password. Either configure the OS keyring integration in KopiaUI, or accept that you need to click through the unlock prompt once per session.
# Why not the in-app toggle
Even if a future Kopia release adds --filesystem=xdg-config/autostart:create to its Flatpak manifest, the in-app toggle still produces the messy Exec line from the exported launcher (it copies the system desktop entry verbatim). The Plasma and GNOME click-path autostart dialogs do the same thing. The hand-rolled file above is cleaner and survives Kopia upgrades because nothing on the package side touches ~/.config/autostart/.
# Related
- Bazzite: an immutable gaming-first Fedora variant. Why Flatpak is the default install path on immutable Fedora.
- Making CoolerControl's GUI start on login. Same family of "Linux desktop autostart is annoying" problem, different root cause: rpm package ships no autostart entry at all, instead of one written into a sandboxed path.
- Making 1Password browser extensions talk to the Flatpak desktop app. Same shape of problem: Flatpak sandbox isolation breaking an in-app feature that assumes host-level filesystem access.
- Running rsync from a systemd timer on Bazzite (SELinux rsync_t domain). If you're running Kopia alongside other backup automation.