Skip to content

dixieflatline76/Spice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

460 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Spice logo

Spice ๐ŸŒถ๏ธ | A highly-concurrent, plugin-driven desktop environment engine for macOS and Windows, written in Go.

Build Status Go Report Card License Latest Release Chrome Web Store Firefox Add-ons

Spice is a premium wallpaper manager that automatically cycles high-quality wallpapers from Wallhaven, Pexels, curated museum collections, your personal Google Photos, and Wikimedia Commons. It is available on the Mac App Store and Microsoft Store and runs quietly in the background, keeping your workspace fresh without interrupting your flow.

Note: Spice lives in your Windows system tray or macOS menu bar, giving you instant control over your desktop environment.

Spice Screenshot

โš™๏ธ Why Spice? (A Modular Desktop Engine)

Spice is more than a utility; it's a high-performance framework for desktop environment management.

  • Low-Contention UI Pipeline: Separates heavy 4K I/O operations from the Fyne UI thread using a hybrid-concurrency pipeline with serialized hot-path writes and O(1) state stores.
  • Actor-Model Multi-Monitor: Independent goroutines manage each connected display autonomously without synchronous blocking.
  • Plugin Ecosystem: Exposes a robust ui.Plugin interface allowing developers to inject custom Fyne preference panels and system tray menus safely into the host engine.

โœจ Key Features

๐ŸŒŽ Infinite Sources

  • ๐Ÿ”— Browser Companion: Use our Chrome Extension or Firefox Add-on to seamlessly send any image from the web to your desktop.
  • ๐Ÿ›๏ธ The Museum Experience: Turn your desk into a gallery with 4K+ Open Access masterpieces from The Met, Art Institute of Chicago, Cleveland Museum of Art, and the Rijksmuseum (Amsterdam).
  • ๐Ÿ“ธ Curated Sources: Native support for Wallhaven, Pexels, and Wikimedia Commons.
  • โ˜๏ธ Personal Collections: Seamlessly cycle your own memories with Google Photos integration.
  • ๐Ÿ“ Local Folders: Point Spice to any directory on your computer to use your existing wallpaper library.
  • โค๏ธ Local Favorites: Build your own curated collection that works offline.

๐Ÿง  Smart Technology

  • ๐Ÿ“ Smart Fit 2.0: A custom heuristic pipeline utilizing pigo cascade detection and luminance entropy calculations to override strict aspect-ratio gates.
    • Quality Mode (Strict): Ensures perfect composition by rejecting images that don't fit your screen, unless a clear face is detected.
    • Flexibility Mode: Accepts high-res images with a "Safe Fallback" for ultrawide monitors.
  • ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Face Boost: Uses confidence-weighted scaling to ensure subjects are perfectly framed without zooming in on phantom shadows or knees.
  • โšก Ultra-Responsive: Engineered for zero-lag performance, ensuring the UI stays snappy even while handling high-resolution 4K content.
  • ๐Ÿ–ฅ๏ธ Independent Multi-Monitor Suite: Spice v2.0 detects every connected display and assigns it an autonomous controller. Every monitor can be controlled individually via dedicated hotkeys.
  • ๐Ÿ“ Orientation Intelligence: Spice understands the difference between landscape and portrait monitors. It picks images that match your screen's orientation before applying SmartCrop, so your vertical monitors get true portrait compositions.
  • ๐ŸŽฏ Smart Crop Anchors: Fine-tune composition with a 9-direction anchor grid. Override the automatic crop position using intuitive WASD-style keyboard shortcuts to keep the best part of any image in frame.
  • ๐Ÿƒ Organic Staggering: Handled via decentralized monitor Actor loops to prevent sudden CPU spikes across all displays.

๐ŸŽฎ Control & Experience

  • โŒจ๏ธ Global Hotkeys: Control Spice instantly from anywhere.
  • ๐ŸŒ Multilingual Support: Fully localized in 12 languages (English, German, Spanish, French, Italian, Portuguese, Japanese, Russian, Ukrainian, Chinese Simplified, and Chinese Traditional).

Targeted Actions (Single Monitor)

Target a specific monitor (1-9) by holding that number key while pressing the shortcut. Defaults to Display 1 if no number is held.

Action macOS Shortcut Windows Shortcut
Next Wallpaper Command + 1-9 + โ†’ Alt + 1-9 + โ†’
Prev Wallpaper Command + 1-9 + โ† Alt + 1-9 + โ†
Fav / Unfav Command + 1-9 + โ†‘ Alt + 1-9 + โ†‘
Del + Block Command + 1-9 + โ†“ Alt + 1-9 + โ†“
Pause Play Command + 1-9 + P Alt + 1-9 + P
Shuffle Command + 1-9 + R Alt + 1-9 + R
Info Command + 1-9 + I Alt + 1-9 + I
Anchor Up Command + 1-9 + W Alt + 1-9 + W
Anchor Down Command + 1-9 + S Alt + 1-9 + S
Anchor Left Command + 1-9 + A Alt + 1-9 + A
Anchor Right Command + 1-9 + D Alt + 1-9 + D
Anchor Center Command + 1-9 + E Alt + 1-9 + E
Anchor Auto Command + 1-9 + Q Alt + 1-9 + Q

Global Actions (All Monitors)

These actions affect all displays simultaneously.

Action macOS Shortcut Windows Shortcut
Next (All Displays) Cmd + Ctrl + โ†’ Ctrl + Alt + โ†’
Previous (All Displays) Cmd + Ctrl + โ† Ctrl + Alt + โ†
Shuffle (All Displays) Cmd + Ctrl + R Ctrl + Alt + R
Info (Primary Display) Cmd + Ctrl + I Ctrl + Alt + I
All Settings Cmd + Ctrl + O Ctrl + Alt + O
Global Sync Cmd + Ctrl + D Ctrl + Alt + D

Tip

Shortcut Conflicts: If these hotkeys conflict with your browser (e.g., Alt + Arrow on Windows or Cmd + Arrow on macOS for navigation) or other apps, you can disable Global or Targeted shortcuts independently in the App settings.

Important

macOS Permissions: Display-specific (chorded) hotkeys require Accessibility or Input Monitoring permissions to detect the number keys correctly. Go to System Settings > Privacy & Security to enable them for Spice.

  • ๐Ÿท๏ธ Instant Attribution: See the artist/photographer name via the tray menu in real-time.
  • โฏ๏ธ Per-Display Pause: Pause rotation on a specific monitor while keeping others moving, or stop all rotation via the "Never" frequency setting.
  • โ›” Blocklist: Trash a wallpaper once, and it's gone forever.

๐Ÿ“š Documentation

  • User Guide: For a comprehensive look at all settings and features, see our Detailed User Guide.
  • Architecture: Curious how Spice works under the hood? Read our Architecture Documentation for a deep dive into the data flow and actor-based multi-monitor management.
  • Developer Context: For concurrency rules, lock hierarchy, and implementation constraints, see the Internal Developer Guide.
  • New Providers: Want to add your own wallpaper source? Check out our Provider Creation Guide to learn how to implement the ImageProvider interface in minutes.
  • New Plugins: Want to extend Spice with completely new features? Read our Plugin Development Guide.

๐Ÿ“ฆ Installation

For macOS

The easiest way to install Spice is via Homebrew:

brew install --cask spice

Alternatively, download the .dmg from the Releases Page.

For Windows

Install directly from the Microsoft Store.

Alternatively, install silently via Winget:

winget install DixieFlatline76.Spice

๐ŸŒ Browser Companion Extension

๐Ÿš€ Usage

For a comprehensive walkthrough of all features, keyboard shortcuts, and configuration options, please refer to the Detailed User Guide.

๐Ÿ”‘ Developer Setup & Secrets

Note: The compiled App Store releases include production OAuth credentials. If you are building from source, you must provide your own API keys (e.g., Google GCP, Pexels, Wikimedia) via a .spice_secrets file. See the included load_secrets scripts for details.

Tips

  • Wallhaven Favorites: To use your private collection, use the URL format with your User ID: https://wallhaven.cc/user/<username>/favorites/<id>, rather than the generic favorites link.
  • Disable Local Favorites: To turn off the "Favorite Images" provider, simply uncheck the "Active" box next to its query in the Spice Preferences > Wallpaper tab.

๐Ÿ”ฎ Roadmap

We have big plans for Spice!

  • Linux & Intel Mac Support: While we currently focus on Apple Silicon (arm64), we plan to expand our official builds to Intel Macs and Linux.
  • More Providers: Adding support for other wallpaper sources like Pixabay.
  • Customizable Keyboard Shortcuts: Full control over modifier keys and hotkey combinations to avoid OS-level conflicts.

โš ๏ธ Known Limitations

  • Blocklist Editing: You can currently reset the whole blocklist, but removing single images is coming soon.

๐Ÿ’ฌ Feedback

Found a bug or have an idea? Please open an issue on GitHub.


Privacy Policy | PolyForm Noncommercial 1.0.0 - Copyright (c) 2026 Karl Kwong