CLI tool
MrGlockenspiel/activate-linux avatar
MrGlockenspiel/activate-linux

activate-linux: the Activate Windows watermark, lovingly ported

The "Activate Windows" watermark ported to Linux

5,964 stars124 forksCGPL-3.0

At a glance

What is it?
activate-linux is a GPL-3.0 C program that draws the Activate Windows watermark on a Linux desktop, rendered with cairo over Wayland or X11 with a GDI backend for Windows. It is a joke, announced by a Portal 2 quote, that ships with a man page, a systemd service, an RPM spec, a Nix flake and packaging for five platforms.
Who is it for?
Install activate-linux when you want the best-known joke in desktop computing running on your own machine, a harmless overlay with real engineering behind it and distribution packaging to lean on. Skip it if overlay software on a locked-down or production desktop is unwelcome, since it draws over the screen by design.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 72 days ago.
What is it written in?
Mainly C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 26, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A joke that ships a man page

The premise needs one sentence, activate-linux ports the Activate Windows watermark to Linux, rendered with cairo in C, and the README sets the register immediately with a Cave Johnson quote from Portal 2 about dangerous science and being fired. What elevates the project past a screenshot novelty is the packaging around the punchline, a manual page in activate-linux.1, a systemd user service in activate-linux.service for running it at login, an RPM spec and a build-rpm.sh for Fedora-style distributions, a Nix flake with package.nix, and even a Makefile.BSD for the BSD family. Joke software that carries an install path, an uninstall target and documentation is a different genre from joke software that carries a screenshot, and this is firmly the former, GPL-3.0 licensed with a source tree formatted under clang-format rules.

One source, three graphics backends

The Makefile implements a backend switch, wayland, x11 and gdi, defaulting to the two Linux display servers and enabling Windows builds when gdi is requested. Each backend pulls its libraries through pkg-config, x11 with xfixes, xinerama, xrandr and xext for the X path, wayland-client with the real-time library for the Wayland path, and cairo with pango and pangocairo layered on for text rendering and color support wherever a Linux backend is active. The Windows path links gdi32 directly and even handles thirty-two bit builds when the MSYS2 toolchain reports an i686 architecture. A wlr-layer-shell-unstable-v1.xml protocol definition sits in the repository, the wlroots layer-shell protocol that lets a client place itself as an overlay layer on Wayland, which is the mechanism the watermark rides on that display server.

Fourteen development packages, one apt line

Building on Linux means assembling the classic X and cairo toolchain, and the README enumerates every piece, libcairo2-dev, libpango1.0-dev, libxi-dev, libx11-dev, x11proto-core-dev, x11proto-dev, libxt-dev, libxext-dev, libxfixes-dev, libxinerama-dev, libxrandr-dev, libwayland-dev and wayland-protocols, fourteen packages reduced to a single copy-paste apt install line for Debian-based distributions. One dependency is optional, libconfig-dev, which unlocks a configuration file path, with an example.cfg committed to the repository showing the shape. The build itself is a plain make, with make install and make uninstall targeting the conventional prefix layout, and an experimental xmake route exists for anyone who wants to test an alternative build system and, per the README's request, leave feedback to improve it:

console
make

The dependencies land in one command on Debian-based systems:

console
sudo apt install libconfig-dev libcairo2-dev libxi-dev libx11-dev x11proto-core-dev x11proto-dev \
libxt-dev libxext-dev libxfixes-dev libxinerama-dev libxrandr-dev libwayland-dev wayland-protocols libpango1.0-dev

Packaged everywhere a joke can be

The installation section reads like a checklist of how seriously the community took the bit. Ubuntu users install from a PPA maintained by eddelbuettel:

console
sudo add-apt-repository ppa:edd/misc
sudo apt update
sudo apt install activate-linux

Arch users get activate-linux-git from the AUR through their helper of choice. Nix users run it without installing at all, nix run against the repository's flake. Gentoo users enable the vaacus overlay, maintained by a named contributor, sync and emerge it. And Windows users install it through Scoop's Extras bucket with two commands. Five distribution channels for a program whose entire output is a watermark is the punchline working as intended, and it also means the joke arrives verified, signed and updated by people who package for a living.

Windows builds through MSYS2

The Windows build path is documented for MSYS2 and is refreshingly concrete. The preparation installs the toolchain through pacman, git, make, pkgconf and the pactoys metapackage, then pulls the compiler through pacboy with the package suffix syntax, gcc:p. The repository is cloned, the backends variable is exported as gdi, and make produces the executable, whose name the README notes depends on the target platform. Clang users are supported with the note that the proper MSYS2 CLANG64 shortcut must be used so the right runtime is on the path, and the Makefile detects the compiler and silences two clang-specific warnings rather than letting the build go red over style arguments. The result is a Windows program that draws a Windows watermark, on Windows, for people who miss it.

macOS, self-described as horrific

The macOS section carries the heading Horrific, which is the kind of honesty documentation rarely attempts. The supported route installs an X server and graphics stack through MacPorts, xorg-server, cairo and xorg-libXinerama, then builds normally against them, meaning the overlay runs inside an X compatibility layer rather than natively in the Mac's window system. The README then does something almost unprecedented, it recommends a different project, Lakr233's ActivateMac, on the grounds that it actually works properly, linking the reader straight out. Steering users to the better tool for their platform, inside your own README, is either commendable sportsmanship or the second joke, and the project is self-aware enough that both readings are available.

Three releases across four years

Version history tells a quiet story, v1.0.0 in September 2022, v1.1.0 in January 2023, then a long silence until v1.2.0 on 2026-07-19, with the repository pushed the following day, the pattern of a finished joke occasionally dusted off and improved rather than a maintained product. The modern touches arrived anyway, AGENTS.md and CLAUDE.md for coding assistants sit at the root, arguments are documented in ARGS.md rather than stuffed into the README, and an example configuration demonstrates the optional libconfig integration. The cultural footnote is worth stating, the Activate Windows watermark became a universal symbol of unfinished computing, and this project turned that symbol into an artifact with a spec file, which is either the most or the least serious thing a C program can do.

Editorial conclusion

Install activate-linux when you want the best-known joke in desktop computing running on your own machine, a harmless overlay with real engineering behind it and distribution packaging to lean on. Skip it if overlay software on a locked-down or production desktop is unwelcome, since it draws over the screen by design. Verify first that your session matches a supported backend, Wayland or X11 on Linux and GDI on Windows, install from your platform's package source rather than building blind, and read ARGS.md for the command line options before scripting it into a login service.

Frequently asked questions

How do you activate Linux?

You do not, Linux requires no activation. activate-linux is a joke program that draws the Activate Windows watermark on a Linux desktop, written in C with cairo. Install it from your distribution's packaging, run the binary, and the familiar watermark appears.

What is activate-linux?

activate-linux is a GPL-3.0 C program that renders a copy of the Activate Windows watermark on Linux desktops, using cairo over Wayland or X11, with a GDI backend for Windows. Despite being a joke, it ships a man page, a systemd service, an RPM spec and a Nix flake.

How do you install activate-linux?

On Ubuntu, add the ppa:edd/misc PPA and install the activate-linux package; on Arch, use activate-linux-git from the AUR; on Nix, run nix run github:MrGlockenspiel/activate-linux; on Windows, install it from Scoop's Extras bucket; Gentoo users can emerge it from the vaacus overlay.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. MrGlockenspiel/activate-linux on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mrglockenspiel-activate-linux.svg)](https://hysenlabs.com/projects/mrglockenspiel-activate-linux)