Skip to content

Repository files navigation

Goku Desktop Pet

Goku Desktop Pet banner

A pixel art Goku who lives on your desktop. He walks along the bottom of your screen, climbs a rope up the edges, jumps to warm up, stands on and rides your floating windows, watches your mouse, and can be picked up and thrown. Every so often he powers up into Super Saiyan or Ultra Instinct. Leave him alone for a few hours and he will turn to your cursor, charge up, and fire a Kamehameha straight at it.

Runs on Windows and Linux.


Features

  • Free roaming. Goku walks, jumps, shadow boxes, celebrates, and takes the occasional nap while you work. He moves along one axis at a time: he walks left and right, and changes height only by jumping or by climbing a rope up a screen edge, so he never drifts diagonally through empty space.
  • Transformations. Now and then he powers up into Super Saiyan (golden hair and aura) or Ultra Instinct (silver hair and aura), then reverts. Both are recolours of the same animated Goku, so the character stays consistent.
  • Mouse aware. He turns to watch your cursor when it comes close. Click to poke him into a fighting stance. Click him fast a few times for an Ultra Instinct surprise.
  • Grab and throw. Pick him up with the mouse (the one time he can go anywhere) and fling him. He falls with real gravity, bounces, and kicks up a little dust when he lands.
  • Windows are platforms. He stands on the title bars of your other windows and rides them as you drag them around. Close the window and he drops.
  • Rope climbing. He walks to a screen edge, grabs a rope, and climbs it to the top, then drops back down.
  • Idle Kamehameha. Ignore him long enough and he turns to your cursor, charges a beam from his hands, and fires it, complete with a charging orb, a muzzle flare, and an impact burst right at the pointer. The wait time is configurable, from one hour up to eight, or off.
  • Speech bubbles, multi monitor roaming, and adjustable size, all from the tray icon or the right click menu.

Every effect, the Kamehameha beam included, is drawn from pixels so the whole thing keeps a consistent retro look.

Normal, Super Saiyan, Ultra Instinct, and climbing


Install

Windows

Option A: download the executable (easiest)

  1. Go to the Releases page.
  2. Download goku-pet-windows.exe.
  3. Double click it. Goku appears on your desktop and an icon appears in the system tray.

Windows SmartScreen may warn about an unrecognised app because the executable is not code signed. Choose More info then Run anyway. See the FAQ below.

Option B: run from source

git clone https://github.com/harshavardhanmdev/Desktop-Interactable-Goku.git
cd Desktop-Interactable-Goku
pip install -r requirements.txt
python run_pet.py

Linux (Mint, Debian, Ubuntu)

Install the small set of Qt runtime libraries, then use the install script.

sudo apt update
sudo apt install -y python3 python3-venv python3-pip libxcb-cursor0 libxkbcommon-x11-0

git clone https://github.com/harshavardhanmdev/Desktop-Interactable-Goku.git
cd Desktop-Interactable-Goku
bash packaging/install_linux.sh          # add --autostart to launch at login
goku-pet

The script creates a private virtual environment under ~/.local/share/goku-pet, adds a goku-pet launcher to ~/.local/bin, and registers an entry in your application menu. Nothing is installed system wide.

Linux (Arch, Manjaro)

sudo pacman -S python python-pip xcb-util-cursor libxkbcommon-x11

git clone https://github.com/harshavardhanmdev/Desktop-Interactable-Goku.git
cd Desktop-Interactable-Goku
bash packaging/install_linux.sh
goku-pet

If you prefer, you can skip the script and just pip install --user -r requirements.txt then python run_pet.py.


Interactions cheat sheet

Action What Goku does
Move the cursor near him He turns to face it
Single left click Poke him into a fighting stance
Fast triple click Transform to Ultra Instinct and throw a punch
Left click and drag Pick him up and carry him
Release while moving Throw him, he falls and bounces
Right click Open the menu
Leave him alone for hours He fires a Kamehameha at your cursor

Menu and settings

Right click Goku or use the tray icon for:

Setting Description
Kamehameha now Fire a beam at the cursor immediately
Jump Make him hop
Move to next screen Jump to your other monitor (multi monitor only)
Pause Freeze him in place
Stand on windows Toggle standing on other windows
Speech bubbles Toggle the occasional chatter
Follow mouse Chase the cursor instead of wandering
Size Small, medium, or large
Idle Kamehameha Off, or 1 to 8 hours before he fires on his own

Settings are saved to %APPDATA%\GokuPet\settings.json on Windows and ~/.config/goku-pet/settings.json on Linux.

Command line flags

goku-pet --scale large --idle-minutes 120 --follow-mouse
Flag Meaning
--scale {small,medium,large} On screen size
--idle-minutes M Minutes of no interaction before a Kamehameha
--no-window-platforms Do not stand on other windows
--no-bubbles Disable speech bubbles
--follow-mouse Follow the cursor around
--debug Show the current state for troubleshooting

Flags override the saved settings for that run.


FAQ

Windows says the app is unrecognised. The executable is not code signed, so SmartScreen shows a warning. This is expected for a small open source project. Choose More info then Run anyway, or run from source with Python if you prefer.

My antivirus flags the executable. PyInstaller bundles sometimes trigger false positives. If that worries you, run from source instead. The full source is in this repository.

Goku will not stand on my windows on Linux. Window detection uses X11. On a Wayland session there is no standard way for an app to read the geometry of other windows, so Goku stays on the desktop floor and everything else keeps working. Log in with an X11 or Xorg session to get window standing. You can check with echo $XDG_SESSION_TYPE.

Does he use a lot of CPU? He runs at about 30 frames per second and idles very light. If you want him out of the way for a while, use Pause from the menu.

How do I make him fire the Kamehameha right now to see it? Right click and choose Kamehameha now, or launch with --idle-minutes 0.1 and wait a few seconds.


Building the assets yourself

The processed sprites are already committed, so you do not need this to run the pet. If you want to regenerate them from the raw art:

pip install pillow numpy scipy
python tools/prepare_assets.py     # slice the source art into clean frames
python tools/generate_forms.py     # recolour into Super Saiyan and Ultra Instinct
python tools/generate_beam.py      # draw the beam, rope, and effect pixels
python tools/make_hero.py          # rebuild the README banner and showcase

Ideas for later

Sound effects, a feeding minigame, more hand drawn walk frames, and pet to pet sparring if you run more than one.


Credits and disclaimer

Built with PySide6. The Kamehameha beam and all effects are generated pixel art.

This is an unofficial, non commercial fan project. Dragon Ball, Goku, and all related characters are the property of their respective rights holders including Akira Toriyama, Shueisha, Toei Animation, and Bird Studio. The MIT license covers the source code only, not the character artwork. If you own the rights and would like something changed, please open an issue.

About

This is an open source Goku - Desktop interactable for Windows and Linux Operating Systems. Goku can interact with your mouse, your windows and shoot a kamehameha wave.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages