A tiny static web app that locks your screen and keyboard so you can wipe your monitor without triggering clicks, scrolls, or keystrokes. No dependencies, no build step — just HTML, CSS, and vanilla JS.
Live: screencleanlock.vercel.app
- Click Lock. The page goes fullscreen and a black overlay covers the screen.
- While locked, clicks, scrolls, touches, and right-clicks are suppressed — safe to wipe the screen or keyboard.
- Hold Space for 2 seconds to unlock. A countdown shows how much longer to hold.
- Pressing Escape force-exits fullscreen (browsers don't let JS block this) — the app detects the fullscreen change and unlocks automatically, staying in sync with reality.
No build step needed. Serve the directory with any static file server, e.g.:
npx serve .
Then open the printed local URL.
node --test
Runs the unit tests in lockState.test.mjs using Node's built-in test runner.
Deployed on Vercel as a static site (see vercel.json). Push to main and Vercel builds automatically, or deploy manually:
vercel --prod
- index.html — markup and styles
- app.mjs — lock/unlock behavior, event suppression, fullscreen sync
- lockState.mjs — hold-to-unlock timing logic
- lockState.test.mjs — unit tests for the hold tracker