Buddy is here to keep you company while you work on your computer! It’s an animated, interactive little friend that floats around your screen, responding to your clicks and bringing smiles to your day. 😊
- Interactive Animations: Your Buddy reacts to clicks and moves around on the screen.
- Custom Sprites: Load your own sprites for animations! Buddy adapts to any character you want.
- Adjustable Settings: Set your Buddy’s size, animation speed, movement speed, and more!
- Configurable Events: Make Buddy surprise you with random events on click!
To run Buddy, you’ll need the following:
- Rust: Make sure you have Rust installed. If not, head over to Rust’s official website for installation instructions.
- GTK4: Buddy uses GTK4 for rendering the character. You can install it on Linux by running:
sudo apt install libgtk-4-dev
- Clone the repository to your local machine:
git clone https://github.com/Hqnnqh/buddy.git
cd buddy
- Build the project using cargo
cargo build --release
Simply run the following command to see Buddy in action:
buddy -h
You'll get all the help you need to configure your Buddy.
Want to update Buddy's appearance without restarting the program? Buddy can receive signals to reload the sprites:
kill -SIGUSR1 <pid>
Send SIGUSR1 or SIGUSR2
Replace with the process ID of the Buddy instance. This will trigger Buddy to reload the sprite animations dynamically
Buddy creates a default configuration file upon its first run. This file is located at:
~/.config/buddy/config.toml
The configuration file includes all necessary settings to customize your Buddy's behavior and appearance. However, for Buddy to function, you must specify a valid sprite path:
- Using command-line arguments
- Adding the sprite path to the configuration file
Buddy thrives on customization! Just provide a directory containing different subdirectories for each event type (idle
, click
, run
), and watch your Buddy come to life with your own animations.
We’ve got you covered! Check out the res
folder for a handy script to resize your images. Just adjust the scaling factor to match your desired size.