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.
This commit is contained in:
Ivan Malison
2025-11-28 01:00:10 -08:00
parent b822353e11
commit 5338dc64c2
3 changed files with 67 additions and 0 deletions
@@ -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}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+1
View File
@@ -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
+64
View File
@@ -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 ];
};
}