Skip to content

Repository files navigation

Cursor Update Arcade

Cursor Update Arcade

status apt commands lines of code necessity joy

An over-engineered neon button for people who could type sudo apt install --only-upgrade cursor, but have chosen joy.

Cursor Update Arcade turns the deeply glamorous chore of updating Cursor on Ubuntu into a tiny GTK arcade cabinet: orbiting pixels, a live combo-scored APT log, a confetti cannon, six switchable neon themes, persistent achievements, a hall of fame leaderboard, a JRPG boss fight against your outdated package, and yes, the Konami code.

It upgrades exactly one package: cursor.

It is not affiliated with Cursor or Anysphere. It is a local GTK wrapper around normal APT commands wearing approximately nine costumes.

Why

Because Cursor updates often, terminals are useful but boring, and sometimes the correct amount of engineering is "far too much, but with a leaderboard."

See MANIFESTO.md for the philosophy and LORE.md for the canon. Yes, an apt wrapper has canon now.

What It Does (the boring, real part)

  • Runs pkexec apt-get update
  • Checks the installed Cursor version against APT's candidate version
  • Verifies Cursor's official APT repo appears in package policy output
  • Runs pkexec apt-get install --only-upgrade --yes cursor only when an update actually exists
  • Shows live logs in a GTK window

What It Also Does (the entire point)

  • 🎮 Arcade scoring — every line of APT output banks points with a rising combo meter
  • 🏆 12 achievements — persisted to disk, including three secret ones
  • 🎉 Unlock popups + desktop notifications — a window pops on unlock (Xbox/Steam style) and a real freedesktop notification fires, so you see it even after closing the app
  • 🗄️ Trophy Cabinet — open it any time from the main window to browse every trophy, your lifetime stats, and the leaderboard
  • 🥇 Hall of fame — your ten fastest updates, ranked, forever
  • 🎨 6 neon themes — Synthwave, Matrix, Vaporwave, Game Boy, the cursed Hot Dog Stand, Terminal Amber
  • ⚔️ Boss fight — your outdated package appears as a JRPG enemy and is defeated by --only-upgrade
  • 🎉 Confetti cannon — fires on a successful update
  • 🕹️ The Konami code — ↑↑↓↓←→←→BA unlocks Chaos Mode
  • 📡 Honest telemetry — transmits exactly 0 bytes to /dev/null, privacy flawless
  • 🥠 Fortune cookies — rotating developer wisdom in the footer

What It Does Not Do

  • It does not run a full system upgrade.
  • It does not install random Cursor binaries.
  • It does not replace Cursor's real launcher.
  • It does not phone home (the /dev/null thing is a bit).
  • It does not pretend this needed to be this fancy.

Requirements

Ubuntu or a similar GNOME Linux desktop with:

  • Cursor installed from the official .deb / APT package
  • Python 3.10+
  • GTK Python bindings
  • pkexec for graphical authentication
sudo apt install python3-gi gir1.2-gtk-3.0 policykit-1

Install

./scripts/install.sh

This installs the app into ~/.local/share/cursor-update-arcade, a launcher into ~/.local/bin, a desktop entry, and a neon icon. Then search your app menu for Cursor Update Arcade.

Run Without Installing

PYTHONPATH=src python3 -m cursor_update_arcade            # full neon
PYTHONPATH=src python3 -m cursor_update_arcade --dry-run  # GUI, no privileged commands

The Flags

--theme {synthwave,matrix,vaporwave,gameboy,hotdog-stand,terminal-amber}
--surprise-me            pick a theme for you; lives on the edge
--difficulty {tourist,normal,nightmare}   cosmetic; nightmare is just faster pixels
--chaos                  start in Chaos Mode, skip the Konami code, no judgement
--no-fun                 disable animations, score, achievements, and joy. (Why.)
--dry-run                open the GUI but skip privileged APT commands

No display required for these — they run anywhere:

cursor-update-arcade --self-test       # Power-On Self Test (this is the test suite)
cursor-update-arcade --version         # a comically detailed banner
cursor-update-arcade --list-themes     # the theme catalog
cursor-update-arcade --hall-of-fame    # your trophies and high scores

Achievements & the Trophy Cabinet

Achievements unlock once, with a popup window and a desktop notification. After that, click 🏆 Achievements in the app (or run --hall-of-fame) to review everything you've earned — unlocked trophies, locked ones, masked secrets, lifetime stats, and your leaderboard.

Progress is stored the way real desktop apps store state — in your XDG state directory:

${XDG_STATE_HOME:-~/.local/state}/cursor-update-arcade/profile.json

It's written atomically (temp file + rename) so a crash mid-save can't corrupt your glory. Delete the file to wipe everything and start a New Game+.

Safety Notes

pkexec apt-get update refreshes metadata for all configured repos — that is just how APT works, and it does not upgrade anything. The only upgrade command is scoped to Cursor:

pkexec apt-get install --only-upgrade --yes cursor

So the arcade lights are dramatic, but the package operation is intentionally, proudly boring. The neon is a costume; the engine underneath is two commands.

FAQ

Is this a joke? Yes. Does it work? Also yes. Those are not in tension.

Couldn't this be a one-line alias? It could. We chose violence (of color).

Is there an Enterprise Edition? This is the Enterprise Edition. There is no other edition.

Uninstall

./scripts/uninstall.sh

Releases

Packages

Contributors

Languages