Skip to content

An Interactive HTML5 & Video Wallpaper Engine for Linux Mint (Cinnamon)

Notifications You must be signed in to change notification settings

Neppity3303/MintpaperEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mintpaper Engine

A lightweight, interactive wallpaper engine for Linux Mint. Mintpaper Engine allows you to run HTML/JS/CSS presets or videos as your desktop wallpaper with support for multi-monitor setups, system-tray control, and real-time system stat injection. Installation and Requirements Linux Mint 22.3

If you want to collaborate please contact me on discord @nepputty

The included setup.sh script is optimized for Linux Mint 22.3. Running the script will automatically detect and install all necessary system headers and Python dependencies. Linux Mint 22.2 and Older

If you are running version 22.2, the automatic installer may not be able to resolve all system-level dependencies. You must manually ensure the following packages are installed via apt before running the setup script: Bash

sudo apt update sudo apt install libayatana-appindicator3-dev gobject-introspection gir1.2-webkit2-4.1 libgirepository1.0-dev

General Setup

Once the system prerequisites are met, clone the repository and run the automated setup: Bash

git clone https://github.com/Neppity3303/MintpaperEngine.git cd MintpaperEngine bash setup.sh

Creating Interactive Presets

The engine looks for an index.html file within your folder in the /presets/ directory. Input Handling

The engine injects mouse and click data directly into the JavaScript context. Implement these functions in your window object to make your wallpaper responsive: JavaScript

// Monitor-space mouse coordinates window.updateMouse = (x, y) => { // Logic for eye-tracking or hover effects };

// Mouse button state window.updateClick = (isPressed) => { // Logic for click-to-animate or interaction };

Hardware Integration

Real-time system statistics are pushed to the wallpaper every 2 seconds. This allows for reactive elements based on PC performance. JavaScript

window.updateStats = (stats) => { // Available data: // stats.cpu (Percentage) // stats.ram (Percentage) // stats.disk (Percentage) };

Performance Tuning

Users can set a frame rate limit via the Control Panel. To respect this limit in your code, use the following hook: JavaScript

window.setFPS = (limit) => { // Logic to update your animation timing or requestAnimationFrame loop };

Key Features

Instance Locking: Uses Linux Abstract Sockets (\0) to prevent multiple engine instances from running simultaneously.

Non-Persistent UI: The Control Panel is designed to be hidden, not destroyed, allowing it to maintain state and reappear instantly from the tray.

Auto-Pathing: The setup.sh script generates absolute paths for the launcher, ensuring the engine can be moved between directories without breaking the Mint Menu shortcut.

Project Structure

engine/: Core logic for window management, audio, and display syncing.

ui/: Gtk code for the Control Panel and system tray indicator.

presets/: Directory for HTML and Video wallpaper assets.

launch.sh: The primary entry point that activates the virtual environment and starts the engine.

Bugs

Upon startup Mintpaper Engine may hide your desktop icons, this can be resolved by pressing apply changes Mintpaper Engine mutes spotify and possibly some other applications. You can fix this by opening the sound app, going to the applications tab and unmuting it

About

An Interactive HTML5 & Video Wallpaper Engine for Linux Mint (Cinnamon)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published