Omahub
← All plugins
J

Snake

by Jon Håvard Gundersen

Something to do while the build's compiling and the agent's still thinking. Snake, in your top bar.

Install
$ omarchy plugin add https://github.com/jhgundersen/omarchy-snake-plugin --enable

Snake

Snake

The build's compiling. The agent's still thinking. The good idea hasn't shown up yet. This is what you do instead of doomscrolling: a fully playable Snake, one click away in your Omarchy top bar.

It's a self-contained bar-widget plugin for Omarchy's shell, in the same style as the built-in Audio, Network, and Bluetooth widgets: one bar icon, one popup panel.

Install

omarchy plugin add https://github.com/jhgundersen/omarchy-snake-plugin.git --enable

Or, to hack on it locally, clone it straight into your plugins directory:

git clone https://github.com/jhgundersen/omarchy-snake-plugin.git ~/.config/omarchy/plugins/jhgundersen.snake
omarchy plugin enable jhgundersen.snake

Uninstall

omarchy plugin remove jhgundersen.snake

Or disable it without removing the files:

omarchy plugin disable jhgundersen.snake

Playing

Click the snake icon in the bar to open the panel. Each open starts a fresh run.

  • Arrow keys, hjkl, or wasd — steer
  • Space — pause/resume, or restart after a game over
  • m, or the mode(m) label under the board — toggle between Levels and Endless mode
  • b, or the borders(b) label — toggle solid walls (default, running into an edge ends the run) vs. wrapping walls (stepping off one side re-enters from the opposite side)
  • f, the food(f) label, or clicking the board — cosmetic easter egg: cycles the food skin. Your choice is remembered for next time.
  • Esc — close the panel

Levels

Level 42, about to eat the Apple logo

Two modes, swap with m:

  • Levels (default) — the header shows your current level and a thin progress bar tracks score toward the next one. You start on Level 1 with an open board; each level up to 25 takes 12 points, then the cost itself climbs by one point per level (26 takes 13, 27 takes 14, ...) up to Level 50. From level 2 on, each level lays out a different wall pattern to route around — a bar with a gap, a cross, a ring, pillars, and a few more — cycling through 8 shapes, with the gaps getting narrower for the first three cycles (up to level 25) before holding at their tightest for the rest. Leveling up respawns the snake on a clear patch of the new layout (score and best carry over; the food skin doesn't change).
  • Endless — the classic game: open board, no obstacles, no leveling, score just climbs.

Persistence

Your best score (tracked separately for Levels and Endless, since they're not really comparable), lifetime playtime (shown off in some of the game-over lines), and chosen food skin survive shell restarts — kept as JSON in ~/.local/state/omarchy/plugins/jhgundersen.snake/state.json, written on death, on closing the panel, and on changing the food skin.

Files

  • manifest.json — plugin manifest (bar-widget kind)
  • Panel.qml — bar icon + popup panel + game logic, all in one entry point
  • preview.png — marketplace listing screenshot
  • screenshot-levels.png — levels/obstacles screenshot
  • LICENSE — MIT

License

MIT — see LICENSE. No external dependencies beyond the Omarchy shell APIs (qs.Ui, qs.Commons) it runs inside.