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

activate-linux: the Activate Windows watermark as a Linux overlay

The "Activate Windows" watermark ported to Linux

6,035 stars123 forksCGPL-3.0

At a glance

What is it?
activate-linux draws the Activate Windows watermark on top of your Linux desktop using cairo, pango and either X11 or Wayland. It is a joke program, and the README is honest about where it does not work.
Who is it for?
Adopt activate-linux if you want the watermark joke on a Linux desktop and you are comfortable building C with the X11 or Wayland development headers present, or installing it from the Ubuntu PPA, the AUR, Nix or the Gentoo ebuild.
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 117 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 November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • MrGlockenspiel/activate-linux6,035 ★ · +81
Star history
Repository2026-09-232026-11-14
MrGlockenspiel/activate-linux6k6k

81 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What activate-linux actually draws, and for whom

activate-linux reproduces the Windows activation watermark on a Linux desktop. The README describes it as the "Activate Windows" watermark ported to Linux with cairo in C. It is a joke project, and the Portal 2 quote at the top of the README sets the tone: this is not solving a desktop problem, it is reproducing a familiar piece of Windows nagware on a system that has no activation concept at all. The audience is people who find that funny, or who want a screenshot, a wallpaper or a stream overlay that looks like an unactivated Windows install.

That framing matters when judging the project. There is no licence check, no activation state, no integration with any package manager's policy. The program draws text on a layer above your windows and exits when told to. Anyone looking for an on-screen display framework, a notification daemon or a general overlay toolkit should look elsewhere; the scope here is one specific watermark and the command line flags that position and style it.

How the cairo overlay works across X11 and Wayland

The build system exposes the architecture directly. The Makefile filters a backends variable against three names, x11, wayland and gdi, and compiles with the matching preprocessor define: -DX11, -DWAYLAND or -DGDI. The default is `backends ?= wayland x11`, so a plain make produces a binary that can talk to either display server, and the choice at runtime depends on the environment it is started in.

Text rendering comes from cairo and pango. When either the wayland or x11 backend is enabled, the Makefile adds the pkg-config packages cairo, pango and pangocairo and defines -DCOLOR_HELP and -DCAIRO. The X11 path pulls in x11, xfixes, xinerama, xrandr and xext, which is what you would expect for an overlay that has to appear on the right monitor and stay above other windows. The Wayland path links wayland-client and adds -lrt, and the repository ships wlr-layer-shell-unstable-v1.xml, the protocol description for the layer shell used by wlroots-based compositors. That file is the strongest hint about how the Wayland overlay is placed: it is a layer surface, not an ordinary window.

The practical consequence is that behaviour differs by session. On X11 the build links XFixes, Xinerama and XRandR. On Wayland it depends on the compositor implementing the layer shell protocol that the XML file describes. The README does not enumerate which compositors are known to work, so that is a question to answer on your own machine before relying on it.

Installing activate-linux and running it once

The README lists packaged routes before it lists a source build, and those are the shortest path. On Ubuntu, a PPA maintained by eddelbuettel carries the program. On Arch, it is in the AUR as activate-linux-git. On NixOS the repository is a flake, so it runs directly from GitHub. Gentoo users get an ebuild through the vaacus overlay. Windows users can install it from the Scoop Extras bucket.

The source build needs the development headers first. The README gives this Debian-based command, which installs cairo, pango, the X11 and Wayland development packages, and the optional libconfig library:

bash
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

After that, the build is a plain make, and the README notes that the executable's name depends on the target platform:

bash
make

The README also documents installation and removal through the Makefile targets, and warns that the binary name is platform-dependent:

bash
sudo make install
sudo make uninstall

For Nix users the README gives a single command that runs the flake without a local clone:

bash
nix run "github:MrGlockenspiel/activate-linux"

Once it is running you should see the watermark text drawn over your desktop. The command line surface is documented separately: the README points at ARGS.md for information about command line arguments, and the repository also carries example.cfg for the libconfig path, a man page named activate-linux.1, and a systemd unit named activate-linux.service. If you want the overlay to start with your session, the unit file is the place to look rather than inventing a startup script.

Where activate-linux breaks down

The README is unusually candid about one platform: the macOS section is titled "MacOS (Horrific)" and tells you to use Lakr233's ActivateMac instead because it actually works properly. The MacPorts dependency list is xorg-server, cairo and xorg-libXinerama, meaning you are running an X server on macOS to display a joke watermark. That is a clear statement that macOS is not a supported target in any meaningful sense.

The second limitation is the Wayland side. The presence of wlr-layer-shell-unstable-v1.xml in the repository root means the overlay needs a compositor that speaks that protocol. The README does not list supported compositors, and it does not document what happens when the protocol is missing, so the failure mode is left to the user to discover. If your compositor does not implement layer shell, the project offers no documented fallback.

Third, configuration depends on an optional library. libconfig is listed under optional dependencies, and the Makefile only defines -DLIBCONFIG and adds src/config.c when pkg-config finds libconfig. Build without it and the config file path is not compiled in, so example.cfg becomes inert. That is a build-time switch that changes runtime behaviour, and it is easy to miss if you installed the development package after your first build.

Alternatives and how they differ

The README itself names the closest alternative: ActivateMac by Lakr233, which it recommends for macOS because that project works properly there. The difference is platform and implementation, not features. ActivateMac targets Apple's desktop natively; activate-linux targets X11 and Wayland with cairo and pango, and its macOS support is an X server workaround the README does not endorse.

Outside that, the honest comparison is against doing nothing. A desktop wallpaper with the watermark baked in achieves a similar visual joke with zero dependencies, no overlay process and no compositor protocol requirements, at the cost of not floating above your windows. A conky or similar system monitor can draw text on the desktop, but it is a general tool with its own configuration language, whereas activate-linux is deliberately narrow: one watermark, positioned and styled through the flags in ARGS.md. If you want a real overlay framework for notifications or widgets, neither the README nor the repository layout suggests this project is trying to be one.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-07-20, with release v1.2.0 tagged on 2026-07-19. The gap before that is worth noting: v1.1.0 is dated 2023-01-29 and v1.0.0 2022-09-13. So the project sat for roughly three and a half years between the 1.1.0 and 1.2.0 releases before the recent activity. Nothing in the repository indicates a support commitment, and there is no homepage listed.

The licence is GPL-3.0, stated in the README badge and in LICENSE.md. For a desktop joke program that is unremarkable, but it does mean that if you redistribute a modified binary you are inside the GPL's source-availability terms. Linking it into a proprietary product is not something to attempt without reading the licence yourself; this is a description of the licence, not legal advice.

Upgrade cost is low in the packaged routes: the PPA, AUR, Nix flake and Gentoo ebuild all track the project for you. Source builds are where the cost sits, because the dependency list is long and split across X11, Wayland, cairo, pango and optionally libconfig. A distribution upgrade that changes pkg-config names or drops a development package will break the build; only the optional libconfig addon is guarded by a pkg-config existence check and skipped when missing.

Editorial conclusion

Adopt activate-linux if you want the watermark joke on a Linux desktop and you are comfortable building C with the X11 or Wayland development headers present, or installing it from the Ubuntu PPA, the AUR, Nix or the Gentoo ebuild. Do not adopt it on macOS: the README labels that platform horrific and points at ActivateMac instead, and do not expect it to be a general-purpose desktop notifier, since the configuration surface is a libconfig file plus command line arguments documented in ARGS.md. Before installing, verify which backend your session uses, because the Makefile default is wayland x11 and the binary is compiled against the development packages for both, and read ARGS.md and example.cfg to see whether the positioning and text options you want exist.

Frequently asked questions

How do I activate Linux on Windows?

The README documents a Windows build using MSYS2 with the gdi backend, and installation from the Scoop Extras bucket. The X11 and Wayland backends are the Linux paths.

How do I activate the Linux terminal?

There is no separate terminal mode. activate-linux is a graphical overlay built on cairo and pango, and the README points at ARGS.md for its command line arguments.

How do I activate Linux?

The README describes the program as the "Activate Windows" watermark ported to Linux, so running it draws the watermark rather than activating anything. Install it from the Ubuntu PPA, the AUR, Nix, the Gentoo ebuild or a source build.

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)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/mrglockenspiel-activate-linux.svg)](https://hysenlabs.com/projects/mrglockenspiel-activate-linux)

Was this useful?