flipoff/docs/README.md
NotAShelf b464a0979a
docs: update demo; add usage instructions
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I6c7565ca7190a93f9b9dd2434cdbfdcc6a6a6964
2026-04-07 15:29:00 +03:00

2.4 KiB

flipoff

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

Demo

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