Something went wrong. Try again.
a simple background deamon reminding you to drink water
Something went wrong. Try again.
hydration-notifier module.nix
1.5 kB · 62 lines
Nix
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263{ package }:
{ lib, config, ... }:
let cfg = config.services.hydration-notifier; in { options.services.hydration-notifier = { enable = lib.mkEnableOption "Hydration notifier service";
interval = lib.mkOption { type = lib.types.int; default = 60 * 30; description = "Notification interval in seconds."; };
duration = lib.mkOption { type = lib.types.int; default = 10; description = "Duration of the notification."; };
dailyTarget = lib.mkOption { type = lib.types.int; default = 2000; description = "Daily target in milliliters."; };
dayStart = lib.mkOption { type = lib.types.int; default = 6 * 60 * 60; description = "Day start in seconds."; };
dayEnd = lib.mkOption { type = lib.types.int; default = 21 * 60 * 60; description = "Day end in seconds."; };
};
config = lib.mkIf cfg.enable { systemd.user.services.hydration-notifier = { description = "Hydration Notifier Service";
wantedBy = [ "default.target" ]; after = [ "default.target" ];
restartTriggers = [ package ];
serviceConfig = { ExecStart = "${package}/bin/hydration-notifier -i ${toString cfg.interval} -d ${toString cfg.duration} --daily-target ${toString cfg.dailyTarget} --day-start ${toString cfg.dayStart} --day-end ${toString cfg.dayEnd}"; Restart = "always"; RestartSec = 5; }; }; };}