PawGate is a simple utility designed to prevent accidental keyboard input, particularly when your feline friend decides to grace your workspace. Currently only supported on Windows.
PawGate is a fork of CatLock by @richiehowelll. The original project provided the foundation for this utility. This fork adds documentation, testing infrastructure, CI/CD, and a rebrand while maintaining GPL v3 licensing as required.
If you appreciate the original work, please consider supporting the original author.
- Lock your keyboard with a hotkey (Ctrl+B by default)
- Semi-transparent overlay shows keyboard is locked while you monitor your screen
- Unlock by pressing the hotkey again
- System tray menu for quick access to settings:
- Adjust overlay opacity (5% to 90%)
- Enable/disable lock notifications
- Blocks all 256 keyboard scan codes plus multimedia keys
- Single-instance enforcement (won't run multiple copies)
Building locally avoids Windows SmartScreen warnings that can block downloaded executables.
Easy method - Just run the build script:
build.bat
Manual method:
pip install -r requirements.txt
pip install pyinstaller
pyinstaller --onefile --add-data="./resources/img/icon.ico;./resources/img/" --add-data="./resources/img/icon.png;./resources/img/" --add-data="./resources/config/config.json;./resources/config/" --icon="./resources/img/icon.ico" --hidden-import plyer.platforms.win.notification --noconsole --name="PawGate" "./src/main.py"The executable will be in the dist/ folder.
Note: If Windows Defender flags your locally-built exe, add the
distfolder to Windows Security exclusions.
Pre-built executables are available on the Releases page. Note that Windows SmartScreen may warn about unsigned executables from the internet.
- Relies on https://github.com/boppreh/keyboard/ which only has full support for Windows
- OS bound hotkeys take precedence such as
ctrl+alt+del(this way you don't get locked out if something goes wrong)
Future enhancements planned for PawGate. Contributions welcome!
| Feature | Description | Status |
|---|---|---|
| Webcam cat detection | Use YOLOv8 to detect cat approaching keyboard | Planned |
| Auto-lock on detection | Lock keyboard automatically when cat detected | Planned |
| Configurable cooldown | Prevent lock/unlock spam with cooldown timer | Planned |
| Detection confidence threshold | Adjust sensitivity to avoid false positives | Planned |
| Screenshot on detection | Capture photographic evidence of the culprit | Planned |
| Feature | Description | Status |
|---|---|---|
| Run on Windows startup | Option to launch PawGate at login | Planned |
| Lock on screen saver/sleep | Auto-lock when user steps away | Planned |
| Scheduled lock times | "Lock 9am-5pm on weekdays" | Planned |
| Quick-toggle global hotkey | Enable/disable protection without menu | Planned |
| Configurable unlock method | Choose: hotkey only, click only, or both | Planned |
| Feature | Description | Status |
|---|---|---|
| Cat activity log | "Fiona attempted 47 keypresses today" | Planned |
| Statistics dashboard | Charts of cat activity over time | Planned |
| Custom sounds | Play meow on detection (or deterrent sound) | Planned |
| Desktop widget | Show cat detection status at a glance | Planned |
| Achievement system | "Blocked 1000 cat keypresses!" | Planned |
| Feature | Description | Status |
|---|---|---|
| Native C# implementation | Port to C# for PowerToys submission | Planned |
| Windows 11 Settings UI | Native settings page integration | Planned |
| Keyboard Manager integration | Remap keys while locked | Planned |
| FancyZones awareness | Lock specific screen zones | Planned |
PawGate builds on the work of @richiehowelll. If you find this utility helpful, consider supporting the original creator:
Fiona the Cat 🐱
