Home/Projects/GuineaPig Desktop
C# · Python · 2026 · Windows · Linux
GuineaPig Desktop
A pixel guinea pig that lives on your desktop. Like a desktop hamster, but a guinea pig. It sleeps when guinea pigs sleep, wanders the empty parts of your desktop, purrs when you pet it, and squeaks every morning until you feed it. The Windows build is C# on .NET 9; the Pop!_OS port is Python, GTK 3 and GStreamer.
What it does
It acts like a guinea pig.
Transparent and click-through
A per-pixel alpha window. Only the pig is solid; clicks on empty space go straight to your desktop.
Avoids your icons
On Windows it reads the real desktop icon positions and steers around them.
Pet it to hear it purr
Move the mouse slowly back and forth over the pig. It switches sprites, loops purr.wav and floats hearts.
Feed it every morning
Copy the Guinea Pig Food icon, drag the copy onto the pig, and watch it eat. The master icon is never eaten.
Idle wheeks
Random wheeks get more likely as feeding time gets closer.
Wayland ready
On COSMIC it uses gtk-layer-shell so the pig can still sit on top of everything.
Sleep schedule
Right now, your pig would be awake.
Guinea pigs are crepuscular: most active around dawn and dusk. The clock uses your local time.
Two platforms, one pig
| Windows | Pop!_OS / Linux | |
|---|---|---|
| Language | C# on .NET 9 | Python 3, GTK 3, GStreamer |
| Install | dotnet publish, single exe | .deb package, or install.sh |
| Starts with | Windows Run key (HKCU) | XDG autostart entry |
| Click-through | Per-pixel alpha layered window | Input shape from the sprite's alpha |
| Avoids icons | Yes, reads real icon positions | Roams freely (no icon API) |
| Wayland | n/a | gtk-layer-shell on COSMIC |
| Save file | %APPDATA%\GuineaPigDesktop\state.json | ~/.config/GuineaPigDesktop/state.json |
Try it: click the pig, or move your mouse slowly back and forth over it until it purrs.