PauseCat is a professional-grade Windows utility engineered in Rust and powered by WebView2 to provide a seamless, non-intrusive break experience. Designed for high-performance workstations, it ensures consistent health intervals without interrupting productivity with inefficient or flickering overlays.
- High-Fidelity Overlays: Utilizes a GDI-based screen capture and pure Rust Gaussian blur implementation for instantaneous, flicker-free break transitions.
- Glassmorphic UI: Hardware-accelerated WebView2 host providing a modern, semi-transparent interface with smooth animations and interactive components.
- Native UX Hardening: Comprehensive protection against accidental gestures and system-level input interference to maintain application focus.
- Session Awareness: Monitors Windows Terminal Services (WTS) notifications to detect session locks, unlocks, and system sleep states, automatically pausing and resuming the timer.
- Media Control Synchronization: Integration with System Media Transport Controls (SMTC) to intelligently manage background media playback during active break sessions.
- Theme Synchronization: Real-time synchronization with Windows system theme preferences for a cohesive desktop experience.
- Optimized Performance: Low-overhead Rust implementation resulting in a minimal memory footprint and a compact binary size of less than 2.5 MB.
- Reliable State Management: Event-driven architecture powered by a central state machine to ensure consistent behavior across complex system events.
- Automated Update Pipeline: Integrated update engine for secure version management and automated deployment via GitHub Releases.
- Robust Input Validation: Enforced configuration limits and sanitization for work and break durations to ensure application stability.
graph TD
A[Timer Engine] -- Heartbeat --> B{App State}
B -- Break Triggered --> C[System Bridge]
C -- Check Presence --> D{User Active?}
D -- Yes --> E[Overlay Engine]
D -- No --> F[Pause Timer]
E -- GDI Snapshot --> G[Blur background]
G -- WebView2 --> H[3D UI Layer]
H -- User Dismiss --> I[Reset Timer]
sequenceDiagram
participant T as Timer Engine
participant S as State Machine
participant U as Updater / Syncer
participant O as Overlay UI
T->>S: Interval Reached
S->>U: Check Asset Integrity
U-->>S: Asset Ready
S->>O: Initialize (Inject Settings)
O-->>S: User Dismissed
S->>T: Resume Heartbeat
pauseCat/
├── assets/ # HTML/CSS UI and static assets
├── src/
│ ├── app.rs # Core application state machine
│ ├── events.rs # Internal event definitions
│ ├── main.rs # Entry point and Win32 loop
│ ├── settings.rs # Persistence and configuration
│ ├── system.rs # Win32 system hooks (Media, Theme, Presence)
│ ├── timer.rs # Interruptible high-fidelity heartbeat
│ ├── tray.rs # System tray and notification handler
│ ├── updater.rs # GitHub API client and asset syncer
│ └── overlay/
│ ├── blur.rs # Gaussian blur implementation
│ ├── capture.rs # GDI BitBlt screen capture
│ └── webview.rs # WebView2 host and resource injection
├── tests/ # Integration and unit test suite
└── wix/ # WiX Toolset installer configuration
- Rust 1.94+
- WebView2 Runtime
- WiX Toolset v4+ (for installer builds)
- UPX (for binary compression)
-
Clone the repository:
git clone https://github.com/0xarchit/pauseCat.git cd pauseCat -
Run in development mode:
cargo run
-
Execute the test suite:
cargo test
The release pipeline uses advanced link-time optimizations and binary compression.
# Optimized build with UPX
$env:RUSTFLAGS="-C link-arg=/OPT:REF -C link-arg=/OPT:ICF -C link-arg=/INCREMENTAL:NO"
cargo build --release
upx --best --lzma target\release\pausecat.exe
# Build MSI
wix build wix\main.wxs -ext WixToolset.UI.wixext -ext WixToolset.Util.wixext -o target\release\PauseCat_Installer.msi- Feature Isolation: One branch per feature:
feature/<description>orfix/<description>. - Conventional Commits: Use
feat:,fix:,refactor:,chore:,test:. - Main is Read-Only: Never commit directly to
main.
- Download the latest
PauseCat_Installer.msifrom the Releases page. - The WiX installer handles everything: installation, autostart registry, and WebView2 runtime checks.
- Once installed, PauseCat lives in your System Tray.
We welcome contributions! Please see our CONTRIBUTING.md and CODE_OF_CONDUCT.md for details.

