Stop people reading your screen over your shoulder, and see who is standing behind you.
One keyboard shortcut. No system settings changed.
![]() |
![]() |
| Side mirrors | Side mirrors + rear-view strip |
![]() |
![]() |
| Bigger mirrors | Bigger side mirrors, no strip |
- Dim overlay: covers every monitor with a dark layer. You can still read your screen up close, but it is hard to read from a distance. Clicks and typing pass through the overlay, so you keep working as normal.
- Side mirrors: show the left and right edges of your webcam image in the bottom corners of the screen, like the side mirrors on a car.
- Rear-view strip: shows the top of the webcam image at the top of the screen.
Each shortcut toggles its feature: press it once to turn on, press again to turn off.
| Shortcut | Action |
|---|---|
Super+Shift+H |
Dim overlay on/off |
Super+Shift+J |
Mirrors snapshot (fades out after a few seconds) |
Super+Shift+K |
Live side mirrors on/off |
Super+Shift+L |
Live side mirrors + rear-view strip on/off |
- Linux with GNOME (X11 or Wayland with XWayland)
- Python 3 with GTK 3 bindings (
python3-gi,python3-gi-cairo) ffmpegfor the webcam mirrors
On Debian or Ubuntu:
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 ffmpeggit clone https://github.com/911RS/shoulder-guard.git
cd shoulder-guard
./install-shortcut.shYou can pass your own key bindings:
./install-shortcut.sh '<Super><Shift>h' '<Super><Shift>j' '<Super><Shift>k' '<Super><Shift>l'To remove the shortcuts:
./uninstall-shortcut.shpython3 guard.py # dim overlay toggle
python3 mirrors.py # one snapshot
python3 mirrors.py live # live side mirrors toggle
python3 mirrors.py live top # live side mirrors + rear-view strip toggleEdit shoulder-guard.ini. After a change, press the shortcut twice (off, then on) to load the new values.
| Setting | Default | Meaning |
|---|---|---|
[guard] opacity |
0.78 |
Overlay darkness, 0 = invisible, 1 = black |
[mirrors] device |
/dev/video0 |
Webcam device |
[mirrors] hold |
3 |
Seconds a snapshot stays visible |
[mirrors] opacity |
0.8 |
How solid the mirrors look |
[mirrors] fps |
10 |
Live mode frame rate |
[mirrors] height |
0.17 |
Side mirror height as a fraction of the screen |
[mirrors] top_enabled |
no |
Always show the rear-view strip |
The ini file lists every setting with a comment. Each setting can also be set with an environment variable, for example GUARD_OPACITY=0.9 or MIRROR_DEVICE=/dev/video2. To use an ini file in another location, set SHOULDER_GUARD_CONFIG=/path/to/file.ini.
Webcam frames stay on your computer. Nothing is recorded or sent anywhere. Snapshot mode writes one temporary frame to $XDG_RUNTIME_DIR, which is cleared when you log out.




