Professional power management utility for Windows
Schedule shutdowns, monitor battery, and automate power actions with precision.
- Countdown Timers — Set precise durations with natural language input (e.g.,
1h30m,90:00) - Scheduled Timers — Schedule actions at specific times on specific days
- Recurring Actions — Automatically repeat timers after completion
- Smart Scheduling — Supports daily, weekdays, weekends, or custom day selections
- Real-time Monitoring — Live battery level with visual indicators
- Smart Rules — Trigger actions on low battery, specific percentages, or AC disconnect
- Priority System — Intelligent action ordering (shutdown > restart > hibernate > sleep > lock)
Execute immediate or scheduled power commands:
| Action | Description |
|---|---|
| ⏻ Shutdown | Complete system power off |
| ↺ Restart | System reboot |
| ❄ Hibernate | Save session to disk, power off |
| ☽ Sleep | Low-power standby mode |
| 🔒 Lock | Secure screen lock |
| ⇥ Log Off | Sign out current user |
- Minimize to Overlay — Compact floating clock when minimized
- Dual Modes — Digital or analog clock faces
- Multiple Styles — Minimal, glass, panel, edge (digital); classic, neon, minimal, halo (analog)
- Persistent Position — Remembers overlay position across sessions
- Timer Integration — Active countdown visible on overlay
- Themes — Dark, Midnight, and Amber color schemes
- Accent Colors — 6 preset colors + custom color picker
- Notification Control — Configurable warning lead times
- Confirmation Dialogs — Optional 5-second countdown with cancel
Download the latest installer from the Releases page.
Prerequisites:
# Clone the repository
git clone https://github.com/Virusilvester/pohtimer.git
cd pohtimer
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build production release
npm run tauri build- Navigate to the Timers tab
- Click + New Timer
- Choose timer type:
- Countdown: Enter duration (e.g.,
30m,2h,1:30:00) - Schedule: Set time and select days
- Countdown: Enter duration (e.g.,
- Select power action
- Click Start Timer
- Go to the Battery tab
- Click + to add a rule type:
- Low Battery — Triggers at OS low threshold (~15-20%)
- Battery at % — Custom percentage trigger
- Power Disconnected — AC unplug detection
- Configure action and enable the rule
- Click ⊟ Minimize to overlay in the sidebar, or
- Click the overlay button in the title bar
- Double-click overlay to restore
- Right-click for context menu
- Drag to reposition
- Minimize to system tray for background operation
- Tray shows active timer/rule count
- Click to restore window
| Setting | Description |
|---|---|
| Start with Windows | Launch on login |
| Start minimized | Open as overlay on startup |
| Ask before closing | Prompt to exit or minimize |
| Notify before action | Warning notification before timer fires |
| Confirm before action | 5-second countdown with cancel option |
| Overlay size | 100px — 300px adjustable |
| Clock style | Digital/Analog with multiple themes |
PoHtimer/
├── src/ # Frontend (React + TypeScript)
│ ├── components/ # UI components
│ ├── store.ts # Zustand state management
│ ├── tauricommands.ts # Tauri API bridge
│ └── ...
├── src-tauri/ # Backend (Rust)
│ ├── src/
│ │ ├── main.rs # Application entry
│ │ ├── lib.rs # Core commands
│ │ └── tray.rs # System tray implementation
│ └── Cargo.toml
└── package.json
Tech Stack:
- Frontend: React 19, TypeScript, Framer Motion, Zustand
- Backend: Rust, Tauri 2.0
- Styling: CSS Variables, CSS-in-JS
- State: Zustand with persistence
- CSP-compliant content security policy
- Local-only operation — no network dependencies for core functionality
- Safe power action execution with confirmation dialogs
- Auto-start requires explicit user consent
- macOS and Linux support
- Remote monitoring API
- Advanced scheduling (cron expressions)
- Power usage statistics
- Dark/Light theme auto-switching
- Custom sound notifications
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the GPL-3.0 license. See LICENSE for more information.
- Tauri — Build smaller, faster, more secure desktop applications
- React — The library for web and native user interfaces
- Framer Motion — Production-ready motion library
Made with ⚡ by Virusilvester
