Turn off your computer the only viable way: by flipping it off
  • Python 88.3%
  • Nix 11.7%
Find a file
NotAShelf 5e1b4321fd
gesture: replace dead is-None guard with proper landmark count check
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4b0e7001bd89bd9a7717e0d949853bd86a6a6964
2026-04-07 16:20:44 +03:00
docs docs: center demo image; prettify README 2026-04-07 15:33:36 +03:00
src/flipoff gesture: replace dead is-None guard with proper landmark count check 2026-04-07 16:20:44 +03:00
.envrc initial commit 2026-04-07 11:11:43 +03:00
poetry.lock initial commit 2026-04-07 11:11:43 +03:00
pyproject.toml build: fix the README path; set version to 1.0.0 2026-04-07 13:54:50 +03:00
shell.nix initial commit 2026-04-07 11:11:43 +03:00
uv.lock build: fix the README path; set version to 1.0.0 2026-04-07 13:54:50 +03:00

flipoff

Congratulations. You have reached the logical conclusion of your relationship with modern computing.


Latest demo for flipoff with Walter White from Breaking Bad

Synopsis

flipoff is a Python-based utility that leverages sophisticated computer vision to solve the oldest problem in human-computer interaction: the fact that your machine is still running when you no longer wish it to be. It monitors your webcam feed for a specific, globally recognized gesture of structural disapproval, also known as the middle finger, and immediately executes a system shutdown via D-Bus.

Important

Disclaimer

I am not responsible if you use this while in a Zoom meeting and accidentally flip off your coworkers. Granted, that would be hilarious and I want to hear about it but I don't accept responsibility.

Motivation

We live in an era of digital friction. Imagine you have just sat through a three-hour "sync" meeting that could have been an email. Or that your IDE has decided that your perfectly valid syntax is actually a personal affront. Perhaps rust-analyzer has safely leaked memory again. Your computer is just standing there, even.

YOU HATE IT ALL.

For those kind of moments, conventional exit strategies are insufficient and meaningless. They lack energy. They lack... catharsis. Thus, flipoff was made. Built on three core pillars of modern engineering:

  • Efficiency: Why move a mouse several inches when you can simply extend a single digit from the comfort of your keyboard?
  • Emotional Honesty: Your computer should know exactly how you feel about its latest "Mandatory Update" during a presentation. Hate. Let me tell you about hate.
  • The Final Word: There is no greater feeling of power than watching your monitor go black at the exact moment of your peak indignation.

We have spent decades teaching computers to understand our speech and our touch. It was about time we taught them to understand our boundaries.

Building & Development

Prerequisites

  • Python 3.11+
  • uv
  • Bunch of system libraries (see shell.nix for a list)

Or, if you're sane, Nix. For now a very simple Nix development shell is provided in shell.nix. Use either diren allow or nix-shell to get the dependencies.

Running

# With webcam
$ uv run flipoff

# With debug overlay for landmarks
$ uv run flipoff --debug

# Dry run (no actual poweroff)
$ FLIPOFF_DRYRUN=1 uv run flipoff