A Windows desktop app that lets you lock and unlock your PC by showing a QR code to your webcam. Includes a Kid Lock mode that blocks keyboard/mouse while keeping the screen visible — perfect for watching movies without little hands messing things up.
- QR Code Lock/Unlock — Generate a unique QR code. Show it to your webcam to toggle the lock.
- 🧒 Kid Lock Mode — Transparent overlay blocks all keyboard & mouse input while the screen stays visible. A small red 🔒 badge pulses in the top-right corner.
- 🔒 Full Lock Mode — Opaque fullscreen lock screen covers the entire desktop.
- Passkey Fallback — Set a passkey during setup to unlock manually if you lose the QR code.
- Live Camera Preview — See your webcam feed in the dashboard while scanning.
- Neumorphic Dark UI — Modern, clean design built with PyQt6.
- Windows Installer — One-click setup via Inno Setup.
| Dashboard | Kid Lock (transparent) | Full Lock |
|---|---|---|
| Scan QR, toggle modes | Screen visible, input blocked, red badge | Passkey entry to unlock |
- Download QRScreenLock_Setup_1.0.0.exe from this repo.
- Run the installer (requires admin for input blocking).
- Launch QR Screen Lock from the Start Menu or Desktop.
git clone https://github.com/bxf1001g/windows_QR_Locker.git
cd windows_QR_Locker
pip install -r requirements.txt
python app.py- First Launch — Set a passkey (4+ characters) and generate your QR code. Save the QR image somewhere safe.
- Choose Lock Mode:
- 🧒 Kid Lock — Blocks input, screen stays visible (great for movies).
- 🔒 Full Lock — Covers the screen entirely.
- Start Scanning — Click the scan button to activate your webcam.
- Show QR Code — Hold your printed/saved QR code to the camera:
- First scan → Locks the screen
- Second scan → Unlocks the screen
- Lost your QR? — Enter your passkey on the Full Lock screen to unlock.
├── app.py # Main PyQt6 application & dashboard
├── config.py # Secret & passkey storage (AppData)
├── qr_generator.py # QR code image generation
├── qr_scanner.py # Webcam QR scanning (background thread)
├── screen_locker.py # Lock screen overlays (Full + Kid Lock)
├── icon.svg # App icon (SVG source)
├── icon.ico # App icon (Windows ICO)
├── installer.iss # Inno Setup installer script
├── QRScreenLock.spec # PyInstaller build spec
├── requirements.txt # Python dependencies
└── installer_output/ # Built installer exe
- Python 3.10+
- Windows 10/11
- Webcam
- Dependencies:
PyQt6,opencv-python,pyzbar,qrcode,pillow
Note: For
BlockInput(OS-level keyboard/mouse blocking), run as Administrator.
pip install pyinstaller
python -m PyInstaller QRScreenLock.spec --noconfirm"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer.issThe installer will be output to installer_output/QRScreenLock_Setup_1.0.0.exe.
If you find this useful, consider buying me a coffee!
This project is open source and available under the MIT License.