diff --git a/hosts/common/programs/assorted.nix b/hosts/common/programs/assorted.nix index 8e1cf9d3..654c4535 100644 --- a/hosts/common/programs/assorted.nix +++ b/hosts/common/programs/assorted.nix @@ -1182,16 +1182,20 @@ in })); system.activationScripts.notifyActive = lib.mkIf config.sane.programs.guiApps.enabled { - text = '' - # notify all logged-in users that the system has been activated/upgraded. - if [ -d /run/user ]; then - for uid in $(ls /run/user); do - PATH="$PATH:${pkgs.sudo}/bin" \ - sudo -u "#$uid" env DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$uid/bus" \ - PATH="$PATH:${pkgs.libnotify}/bin" \ - notify-send 'nixos activated' "version: $(cat "$systemConfig/nixos-version")" - done - fi - ''; + text = lib.concatStringsSep "\n" ([ + '' + tryNotifyUser() { + local user="$1" + local new_path="$PATH:${pkgs.sudo}/bin:${pkgs.libnotify}/bin" + local version="$(cat $systemConfig/nixos-version)" + PATH="$new_path" sudo -u "$user" \ + env PATH="$new_path" NIXOS_VERSION="$version" /bin/sh -c \ + '. $HOME/.profile; dbus_file="$XDG_RUNTIME_DIR/bus"; if [ -e "$dbus_file" ]; then DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_file" notify-send "nixos activated" "version: $NIXOS_VERSION" ; fi' + } + '' + ] ++ lib.mapAttrsToList + (user: en: lib.optionalString en "tryNotifyUser ${user}") + config.sane.programs.guiApps.enableFor.user + ); }; }