Skip to content

Modular Backends & Configuration System

Choose a tag to compare

@Hcode00 Hcode00 released this 24 Jul 19:09
· 30 commits to main since this release

Changelog: hpaper v0.5

🔧 Major Architecture Changes

  • Complete rewrite of the application architecture
  • Removed dependency on github.com/sevlyar/go-daemon - now using custom daemon implementation
  • Modular backend system - abstracted wallpaper backends into pluggable interfaces
  • Configuration file support - moved from command-line only to config file + CLI hybrid approach

🎨 New Backend Support

  • Added Hyprpaper backend - now supports both Swaybg and Hyprpaper
  • Backend abstraction - easy to add new wallpaper managers in the future
  • Monitor-specific wallpaper setting

⚙️ Configuration System

  • New config file system - ~/.config/hpaper/hpaper.conf with auto-generation
  • Comprehensive settings:
    • Rotation interval configuration
    • Backend selection (swaybg/hyprpaper)
    • swaybg mode and output settings
    • Monitor name for hyprpaper
    • Pywal integration settings

🎨 Pywal Integration

  • Built-in pywal support - automatic color scheme generation from wallpapers
  • Configurable pywal commands - customize how pywal is invoked
  • Cross-backend compatibility - works with both swaybg and hyprpaper

💬 IPC System Overhaul

  • Unix socket communication - replaced signal-based IPC with socket-based system
  • New current command - get the path of currently applied wallpaper
  • Improved error handling and response system
  • Better client-daemon separation

❌ Removed Features

  • Download functionality - removed due to poor quality and repetitive wallpapers from free providers

🛠️ Improved Functionality

  • Better process management - more reliable swaybg process handling
  • Enhanced logging - simplified logging system (removed complexity of leveled logging)
  • Robust daemon lifecycle - improved startup, shutdown, and signal handling
  • Thread-safe operations - proper mutex usage for concurrent access

📋 Command Changes

  • Available commands: start, next, prev, current, quit
  • Config flag support: -config flag after start for custom configuration files
  • Removed: download command and single-image setting

🔍 New Features

  • Auto-config generation - creates default config if none exists
  • Better wallpaper validation - expanded supported image formats
  • Improved randomization - better shuffle algorithm using proper seeding

⚠️ Breaking Changes

  • Configuration required - now depends on config file instead of bloated CLI arguments and flags
  • Command structure changed - simplified command interface
  • Removed features - download and single-image functionality no longer available