Skip to content

Repository files navigation

Robot Fox Desktop Pet

A small Java Swing desktop companion that demonstrates animation, system-tray integration, and runtime plugin discovery with ServiceLoader.

Coral-orange robot fox mascot

Highlights

  • Animated transparent desktop window with screen-edge collision
  • Start, stop, and exit actions in the operating-system tray
  • Pet and tray plugins discovered from external JAR files
  • Reproducible Java 17 and Gradle 9.6 build
  • Headless unit and plugin-packaging tests in GitHub Actions
  • Original robot-fox artwork with reproducible derived assets

Quick start

Requirements: Java 17 or newer. No system Gradle installation is required.

./gradlew clean build
./gradlew run

The second command launches a graphical desktop application, so it must run in a desktop session rather than a headless server.

Build outputs include the application distribution and example plugins:

build/distributions/
build/libs/
build/plugins/pet/
build/plugins/tray/

The ZIP and TAR distributions include both plugin JARs. After extracting one, launch the platform script under bin/; the application automatically resolves the adjacent plugins/ directory.

For a custom plugin location, set the Java system property desktopPet.pluginDir to the desired directory.

Architecture

PluginInterface/    PetPlugin and TrayPlugin contracts
src/main/           Swing application, animation, tray, and plugin loading
PluginPetMove/      Example sprite-sheet pet plugin
PluginTrayAid/      Example tray plugin installer
picture/            Generated runtime frames and tray icons
artwork/            Original high-resolution mascot source
tools/              Reproducible artwork derivation tool

PluginManager scans build/plugins/pet and build/plugins/tray. Each plugin JAR registers an implementation through META-INF/services.

Application preferences are saved to ~/.desktop-pet/settings.properties, outside the repository.

Regenerate artwork

The committed runtime images are derived from the original mascot source with a small Java 17 tool:

./gradlew generateArtwork

See ARTWORK.md for the asset provenance and generation prompt.

Verification

./gradlew clean build

This compiles the app and both plugin source sets, verifies runtime artwork, runs unit and integration tests, and packages the example plugin JARs.

Project status

This is a portfolio-scale desktop experiment, not a production desktop agent. The graphical window and operating-system tray still require manual validation on each supported desktop environment.

License

The repository is public for viewing and portfolio evaluation. No open-source license is currently granted; see LICENSE. Original team credits are listed in CONTRIBUTORS.md.

About

Java Swing robot-fox desktop pet with runtime ServiceLoader plugins

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages