{ config, pkgs, ... }: let confettiListener = pkgs.writeShellScript "confetti-listener" '' #!/usr/bin/env bash set -euo pipefail exec dbus-monitor "interface='org.freedesktop.Notifications'" | \ while read -r line; do if echo "$line" | grep -q "confetti"; then confetti fi done ''; in { systemd.user.services.confetti-listener = { description = "Listen for notifications and trigger confetti"; after = [ "graphical-session.target" ]; partOf = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ]; path = with pkgs; [ dbus gnugrep coreutils ]; serviceConfig = { ExecStart = "${confettiListener}"; Restart = "always"; RestartSec = "1s"; }; }; }