diff --git a/README.md b/README.md index a2c370a..db04118 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,18 @@ cargo install --path . ```ini [Unit] Description=Hydration Notifier Service -After=network.target +After=graphical.target default.target [Service] -ExecStart=/home//.cargo/bin/hydration-notifier +ExecStart=/home//.cargo/bin/hydration-notifier Restart=always +RestartSec=5 +StandardOutput=journal +StandardError=journal +Environment="PATH=/home//.cargo/bin:/usr/local/bin:/usr/bin:/bin" [Install] -WantedBy=multi-user.target +WantedBy=default.target ``` 3. Enable and start the service: diff --git a/src/main.rs b/src/main.rs index 4c9fdd3..3c3fdc8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -33,23 +33,24 @@ struct Args { #[arg(short, long, default_value_t = 60 * 60)] interval_seconds: u64, - #[arg(short, long, default_value_t = 5)] + #[arg(short, long, default_value_t = 10)] duration_seconds: u64, } fn main() { let args = Args::parse(); - let mut rng = rand::rng(); loop { - Notification::new() + if let Err(e) = Notification::new() .appname("Hydration Notifier") .summary("Drink Water") .timeout(Duration::from_secs(args.duration_seconds)) .body(MESSAGES[rng.random_range(0..MESSAGES.len())]) .show() - .unwrap(); + { + eprintln!("Failed to show notification: {}", e); + } thread::sleep(Duration::from_secs(args.interval_seconds)); }