When a snapshot is created before applying a system update, I get this in the log:
[snip]
BTRFS Snapshot saved successfully (0s)
Tagged snapshot '2026-02-04_16-37-10': ondemand
------------------------------------------------------------------------------
Failed to show notification: Cannot autolaunch D-Bus without X11 $DISPLAY
Detecting snapshots ...
[snip]
Not sure why it’s trying to choose an X11 branch, what could I do to diagnose further / fix the issue? Edit: note that this kinda hard to reproduce, not only do updates need to be there, the last snapshot needs to have occurred quite a while ago (24h I think?). Found a way to trigger it all the time.
Edit 2: Forgot to mention, this issue occurs when using the GUI Add/Remove Programs thing, I have not tried with sudo pacman -Syu yet.
Related: how does Manjaro set up this Timeshift auto-snapshot magic? I’ve not been successful trying it myself in an Arch VM (snapper worked fine but I find it a bit clunky, and Manjaro uses Timeshift anyway).
We don’t. It’s the default timeshift configuration.
That said, timeshift does tend to deviate from standards. For instance, it uses cronie for its timed snapshots (or rsync backups), instead of using a systemd timer.
Interesting, I took a quick look and noticed I have /usr/share/libalpm/hooks/00-timeshift-autosnap.hook in Manjaro installs but not in Arch installs (with timeshift having been set up). Where does that come from?
[Trigger]
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Creating Timeshift snapshot before upgrade...
Depends = timeshift
When = PreTransaction
Exec = /usr/bin/timeshift-autosnap
AbortOnFail
EDIT: /usr/bin/timeshift-autosnap is also only on Manjaro (it’s a huge shell script so not pasting it here).
From timeshift-autosnap-manjaro, which — as I’ve just seen in the package manager, because I don’t have that package installed — is indeed a Manjaro package.
Dug in some more and realized this is the package being used for auto-snapshots: AUR (en) - timeshift-autosnap (EDIT: I realized I miscommunicated here, this is not the package being used, it’s just the parent of timeshift-autosnap-manjaro). After editing the config file to always trigger snapshots and executing sudo timeshift-autosnap, it did pop up the notification correctly.
I’d rather think it’d be an issue with timeshift-autosnap-manjaro, but I wouldn’t be surprised if it were a problem with pamac (“Add/Remove Software”) either. It is known to have issues…
Thanks! Looks like it’s just an additional flag to disable rsync snapshots (reasonable). What’s causing pamac (or the various scripts / tools involved in the snapshot process) to attempt to show a notification using X11 dbus is still a mystery.
And that worked just like running timeshift-autosnap earlier, despite all the gtk stuff in there:
So the rabbit hole goes further into notify-send. I’m still leaning towards some environment / config mess-up for pamac which makes the code executing believe it’s on X11. notify-send obviously works on Wayland (screenshot above), I doubt the bug is in there.
This page lists one possible issue that’s aligned with my instinct:
If DBUS_SESSION_BUS_ADDRESS is not set for a process that tries to use D-Bus, by default the process will attempt to invoke dbus-launch with the --autolaunch option to start up a new session bus
Especially since apparently--autolaunch only works in X11 sessions.
Autolaunch of dbus-daemon only works when under an X11 session. It is otherwise disabled because there’s no way for different applications to establish a common instance of the dbus daemon.
Perhaps it’s mistakenly not set for me when pamac executes an update? Not sure how to even test this hypothesis without building my own pamac and adding breakpoints / debug logs (and being blocked on iterating unless there are updates)…
Edit: here’s the function that ends up calling notify-send, relevant line: