101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# 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
|