Support
Setup, everyday use, and what to check when something misbehaves.
Requirements
macOS 13 Ventura or later, on Apple silicon or Intel.
First run
- Move Curtain to your Applications folder and open it. It lives in the menu bar — there is no Dock icon.
- Work through the three setup steps. On the Accessibility step, grant Curtain permission in System Settings.
- Quit and reopen Curtain. macOS applies a new Accessibility grant only to a freshly launched app, so this step is not optional.
The App Store edition needs no Accessibility permission, because it does not block input.
Everyday use
| Action | How |
|---|---|
| Raise the curtain | Press ⌘⇧L, or choose Toggle Curtain from the menu bar |
| Lift it | Press ⌘⇧L again, then authenticate with Touch ID or your password |
| Change the hotkey, opacity or hint | Menu bar → Preferences |
| Check what it is doing | Hover the menu bar icon — the tooltip says whether input is actually being blocked |
The screen is black but someone can still type
That means the input filter is not running. Three things cause it, in order of likelihood.
Accessibility is not granted to this exact copy
macOS ties the grant to one signed app. Grant Curtain under System Settings → Privacy & Security → Accessibility, then quit and reopen it.
More than one copy of Curtain on the Mac
If several copies exist — one in Applications, another in a Downloads folder — macOS can trust the signature and still refuse the input filter. Keep one copy, then grant it again:
tccutil reset Accessibility com.rbchronicles.Curtain
Another app holds secure input
While a password field is focused somewhere — a password manager, a sudo prompt in Terminal — macOS withholds keystrokes from every app's input filter, Curtain included. Dismiss that field and raise the curtain again. Curtain warns about this in its log and in the menu bar tooltip.
See exactly what is happening
Run this in Terminal, then raise the curtain:
log stream --style compact --predicate 'subsystem == "com.rbchronicles.Curtain"'
Event tap installed means blocking is on. Event tap NOT created means it is not, and the same line reports whether macOS considers the app trusted.
Remote control stopped working
Curtain passes through any input posted by a process, which covers Screen Sharing, Apple Remote Desktop and third-party VNC tools. It blocks only input coming from the hardware attached to the Mac. If a remote tool is blocked, its input is arriving at the hardware layer, and no app can tell it apart from the keyboard on the desk.
Things Curtain deliberately does not do
- It is not a screen lock. The session stays unlocked behind the overlay, which is the point — your remote work keeps running. If you want the Mac locked, use ⌃⌘Q.
- It does not survive display sleep. If the display sleeps and the system lock screen appears, that replaces the overlay.
- It is not protection against a hostile person with access to the machine. It hides your screen from the people around it.
Still stuck
Open an issue at github.com/RaghavaNaidu46/Curtain/issues. Including the output of the log stream command above makes it much easier to help.