Writing
Projects · March 2026 · 3 min read

WipeMode - lock your keyboard while you clean it

I was cleaning my keyboard one day and sent a dozen emails in the process. So I built a small macOS app that locks all input while you wipe down. One click to lock, hold a shortcut to unlock.

Oliver Bagley

Oliver Bagley

eCommerce Manager & Digital Systems

WipeMode - lock your keyboard while you clean it

It's a stupid problem, but a surprisingly common one. You lift your laptop to clean underneath, your palm grazes the trackpad, and suddenly you've opened six tabs, activated Siri twice, and somehow entered a meeting you weren't in.

I looked around for something that would just lock the keyboard and mouse temporarily - not sleep the screen, not require a password to unlock, just pause all input while I cleaned. Nothing did exactly that. So I built it.

How it works

WipeMode sits in your menu bar. Click it and it locks all input system-wide using macOS's CGEventTap API - not just the app in focus, everything. An overlay goes up and your desktop blurs behind it.

To unlock, hold a configurable shortcut (default ⌘⌃U) for about a second. A progress ring fills as you hold - deliberate enough that a rogue swipe won't trigger it, fast enough that it doesn't feel like a chore. The shortcut and hold duration are both adjustable in settings.

The technical bit

The interesting part is the input blocking. macOS lets you create a CGEventTap - a system-level listener that can intercept and suppress keyboard and mouse events before they reach any application. That's what WipeMode uses. It requires Accessibility permission, which macOS will prompt for on first run.

The app is built in Swift and SwiftUI, weighs under 1MB, and runs on macOS 13 and later. No telemetry, no network calls, no accounts. The source is on GitHub.

Work together

Got something to
work on?

If something here resonated, I'd like to hear from you.

More posts

Projects · March 2026 · 4 min read

SonoCast - streaming vinyl to Sonos via Icecast

I wanted to play vinyl through my Sonos. Sonos doesn't accept line-in from a USB sound card. So I built a two-container Docker stack that grabs the audio, encodes it, and streams it out as a custom radio station.

Read more