From 5338dc64c253c159126b455e22c4655682db01bc Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Wed, 13 Aug 2025 22:57:34 -0600 Subject: [PATCH] nixos/rumno: init module Add a NixOS module for rumno, a visual pop-up notification manager. The service runs as a systemd user service and registers itself as a D-Bus notification daemon. --- .../manual/release-notes/rl-2511.section.md | 2 + nixos/modules/module-list.nix | 1 + nixos/modules/services/misc/rumno.nix | 64 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 nixos/modules/services/misc/rumno.nix diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 4b0b58028e7b..043a277b8c03 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -205,6 +205,8 @@ - [ErsatzTV](https://ersatztv.org), a personal IPTV server. Available as [services.ersatztv](#opt-services.ersatztv.enable) +- [rumno](https://gitlab.com/ivanmalison/rumno), a visual pop-up notification manager. Available as [services.rumno](#opt-services.rumno.enable). + ## Backward Incompatibilities {#sec-release-25.11-incompatibilities} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 0e27de7945bf..fdcad28d70aa 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -928,6 +928,7 @@ ./services/misc/rmfakecloud.nix ./services/misc/rshim.nix ./services/misc/rsync.nix + ./services/misc/rumno.nix ./services/misc/safeeyes.nix ./services/misc/sdrplay.nix ./services/misc/servarr/lidarr.nix diff --git a/nixos/modules/services/misc/rumno.nix b/nixos/modules/services/misc/rumno.nix new file mode 100644 index 000000000000..d0c07e460f67 --- /dev/null +++ b/nixos/modules/services/misc/rumno.nix @@ -0,0 +1,64 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.rumno; +in +{ + meta.maintainers = with lib.maintainers; [ imalison ]; + + options.services.rumno = { + enable = lib.mkEnableOption "rumno visual pop-up notification manager"; + + package = lib.mkPackageOption pkgs "rumno" { }; + + extraArgs = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ ]; + example = [ + "--verbose" + "--config" + "/etc/rumno/config.toml" + ]; + description = '' + Extra command-line arguments to pass to the rumno daemon. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.user.services.rumno = { + description = "Rumno visual pop-up notification manager"; + wantedBy = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + after = [ "graphical-session-pre.target" ]; + + serviceConfig = { + Type = "dbus"; + BusName = "de.rumno.v1"; + ExecStart = "${cfg.package}/bin/rumno daemon --foreground ${lib.escapeShellArgs cfg.extraArgs}"; + Restart = "on-failure"; + RestartSec = 1; + + # Environment for GTK/GUI applications + PassEnvironment = [ + "DISPLAY" + "WAYLAND_DISPLAY" + "XDG_RUNTIME_DIR" + ]; + }; + + environment = { + # Set GTK theme environment variables if needed + GTK_THEME = lib.mkDefault ""; + }; + }; + + # Ensure dbus service file is installed + environment.systemPackages = [ cfg.package ]; + }; +}