Skip to content

About

Dim your screen and watch who's behind you with webcam side mirrors. One keyboard shortcut, GNOME on Linux.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Shoulder Guard logo

Shoulder Guard

Stop people reading your screen over your shoulder, and see who is standing behind you.
One keyboard shortcut. No system settings changed.

Dim overlay

Side mirrors Side mirrors and rear-view strip
Side mirrors Side mirrors + rear-view strip
Bigger mirrors Bigger side mirrors without the strip
Bigger mirrors Bigger side mirrors, no strip

What it does

  • 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

Requirements

  • Linux with GNOME (X11 or Wayland with XWayland)
  • Python 3 with GTK 3 bindings (python3-gi, python3-gi-cairo)
  • ffmpeg for the webcam mirrors

On Debian or Ubuntu:

sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 ffmpeg

Install

git clone https://github.com/911RS/shoulder-guard.git
cd shoulder-guard
./install-shortcut.sh

You 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.sh

Run without shortcuts

python3 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 toggle

Settings

Edit 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.

Privacy

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.

About

Dim your screen and watch who's behind you with webcam side mirrors. One keyboard shortcut, GNOME on Linux.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages