a simple background deamon reminding you to drink water
Rust 59%
Nix 41%

README.md

Hydration Notifier #

A simple service that reminds you to drink water at regular intervals via notification.

Installation #

Install via NixOs #

  1. Add to flake.nix
{
  inputs = {
    ...
    hydration-notifier.url =
      "git+https://tangled.org/tobinio.dev/hydration-notifier";
    ...
  };

  outputs = { self, nixpkgs }: {
    # change `yourhostname` to your actual hostname
    nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
      ...
      specialArgs = { inherit inputs; };
      modules = [
        ...
        inputs.hydration-notifier.nixosModules.default
      ];
    };
  };
}
  1. Configure in configuration.nix
{
  services.hydration-notifier = {
    enable = true;

    # Optional settings
    interval = 1800 ; # 30 min
    duration = 10;
    dailyTarget = 2000;
    dayStart = 21600; # 6h
    dayEnd = 75600; # 21h
  };
}

Install via Systemd #

  1. Build and Install hydration-notifier using Cargo:
cargo install --path .
  1. Create a systemd service file at ~/.config/systemd/user/hydration-notifier.service with the following content:
[Unit]
Description=Hydration Notifier Service
After=graphical.target default.target

[Service]
ExecStart=/home/<User>/.cargo/bin/hydration-notifier
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
Environment="PATH=/home/<User>/.cargo/bin:/usr/local/bin:/usr/bin:/bin"

[Install]
WantedBy=default.target
  1. Enable and start the service:
systemctl --user daemon-reload
systemctl --user enable hydration-notifier.service
systemctl --user start hydration-notifier.service
  1. Verify the service status:
systemctl --user status hydration-notifier.service