# NotifyPulse 🔔 A background Windows notification app that fires reminders at random intervals with weighted probability — plus exact-time daily triggers. --- ## Features | Feature | Details | | -------------------- | ------------------------------------------------------------------ | | **Weighted random** | `Text \| 40%` – higher % = more likely to be picked | | **Time triggers** | `Text \| 14:30` – fires every day at that exact time | | **Random interval** | 10–30 minutes between random notifications | | **Pause hotkey** | Press **F13** to pause; queued notifications fire when you unpause | | **System tray** | Runs silently in the tray, right-click to quit or open config | | **Auto-start ready** | Drop the EXE in Windows startup folder | --- ## Quick Start ### Run from Python ```bash pip install -r requirements.txt python notifier.py ``` ### Build .exe ```bat build.bat ``` The EXE lands in `dist\NotifyPulse.exe`. Copy `notifications.txt` next to it (or it auto-creates a sample). --- ## notifications.txt Format ``` # Lines starting with # are comments # Weighted random entries (percentages should add up to 100, but don't have to) Take a break and stretch! 🚶 | 35% Drink some water 💧 | 30% Check your posture 🧍 | 20% Deep breath – you got this! 😌| 15% # Time-based triggers – fire every day at HH:MM Morning standup ☕ | 09:00 Afternoon focus 🎯 | 14:00 End-of-day wrap-up 📋 | 17:30 ``` ### Rules - Separator is `|` (pipe character) - Percentages: `30%` — picks proportionally (doesn't need to sum to 100) - Times: `HH:MM` in 24-hour format - Lines without `|` get equal weight in random selection - Comments start with `#` --- ## Hotkey | Key | Action | | ------- | -------------------- | | **F13** | Toggle pause/unpause | > **Paused?** Notifications are queued. When you unpause, all queued messages fire immediately (with a 1.5s gap between them). --- ## Auto-start with Windows 1. Press `Win + R` → type `shell:startup` → Enter 2. Drop a shortcut to `NotifyPulse.exe` in that folder 3. It will launch silently on every login --- ## Troubleshooting **Notifications not showing?** - Check Windows Focus Assist / Do Not Disturb is off - Windows 10/11 only (winotify requires it) **F13 not working?** - Run the app as Administrator (keyboard hook needs elevated rights sometimes) - Or remap a key to F13 using AutoHotkey / your keyboard software **Build fails?** - Make sure Python 3.10+ is installed - Run `build.bat` from the project folder