Skip to content

Doble-2/scenery-wallpapers

Repository files navigation

🌄 Scenery

The Wallpaper Manager for Power Users

Platform Hyprland License Python

Organize, index, and deploy your wallpaper collection with the power of the CLI.

Scenery CLI Demo

⚡ What is Scenery?

Scenery isn’t just an image folder. It’s an intelligent indexing engine designed for minimalist setups (Arch Linux, Hyprland, Sway).

It fixes the chaos of having thousands of images named like wallhaven-8392.jpg. Scenery analyzes your images, extracts dominant colors, computes their resolution, and lets you inject them into your desktop with simple commands.

🚀 “Galaxy Brain” Features

  • 🔍 Visual CLI Search: A beautiful Rich-powered UI that shows metadata and terminal previews.
  • 🎨 Color Extraction: Automatically detects whether a wallpaper is dark, red, or nord through palette analysis.
  • 🛡️ MD5 Integrity: Moved files? Renamed folders? Scenery uses hashes, not names, so your database never breaks.
  • 🤖 Smart Import: Recursively scans your old wallpaper folder, detects duplicates, and organizes everything automatically.
  • pipe-friendly: Designed for chaining. scenery get outputs clean paths, perfect for swww, feh, or hyprpaper.

🖼️ Previews (current collection)

cozy-minecraft anime-00339 moon arch-purple

space-00367 minimal-gradient alena-aenami-away platforms


🛠️ Tech Stack

Built with modern libraries to ensure stability and speed:

  • Typer: For a robust CLI with autocomplete.
  • Rich: For a beautiful terminal UI.
  • Pillow: Image processing.
  • Colorgram: Color palette extraction.

📦 Quick Install

  1. Clone the repository:

    git clone https://github.com/Doble-2/scenery-wallpapers.git
    cd scenery-wallpapers
  2. Set up the environment (recommended on Arch due to PEP 668):

    python -m venv .venv
    source .venv/bin/activate
    python -m pip install -U pip
    python -m pip install -r requirements.txt

Optional (terminal preview):

sudo pacman -S chafa
  1. Configure Paths: Create your .env file to protect your privacy.
    cp .env.example .env
    # Edit .env and set the path to your old wallpapers folder
    
    # IMPORTANT: Use absolute paths (e.g. /home/your-user/Pictures/Wallpapers)

🎮 Usage Guide

Make sure your environment is activated. Here’s the typical workflow of an Architect:

1. Data Ingestion (Import)

Bring your old wallpapers into the 21st century. Scenery will copy them, avoid duplicates, and organize the structure.

python scenery.py import --verbose

2. Indexing (Index)

Analyzes files in assets/, extracts colors, and generates the manifest.yaml database.

python scenery.py index

3. Search and Filtering

Looking for something dark to code at night?

python scenery.py search --tag dark --tag minimalist

Default output (simpler): clickable name, resolution, tags, and colors.

Useful flags:

# Show preview (uses chafa if you’re in the VS Code terminal)
python scenery.py search --tag minecraft --preview

# Control preview size
python scenery.py search --tag minecraft --preview --preview-width 50 --preview-height 12

# Show extra columns (if you need them)
python scenery.py search --tag minecraft --show-path --show-id

4. Integration (The Magic)

Use scenery inside your Hyprland scripts or startup configuration.

Example: Change to a random wallpaper with SWWW

swww img $(python scenery.py get --random) --transition-type grow

Example: Specific “Nord” themed wallpaper

swww img $(python scenery.py get --tag "nord" --random)

📂 Repository Structure

scenery-wallpapers/
├── assets/          # 🖼️ Your image sanctuary (managed by Scenery)
├── src/             # 🧠 Lógica del Core y CLI
├── manifest.yaml    # 🗃️ Portable database (YAML)
└── scenery.py       # 🚀 Entry point

🤝 Contributing

Got an idea to improve the color algorithm or support more formats? PRs are welcome!

  1. Fork the repo.
  2. Create your branch (git checkout -b feature/AmazingFeature).
  3. Commit (git commit -m 'Add AmazingFeature').
  4. Push (git push origin feature/AmazingFeature).
  5. Open a Pull Request.
Built with 🖤 and Python by Doble-2

About

A visual CLI wallpaper manager for Linux power users. Index, tag, and preview images directly in your terminal. Built with Python, Typer & Rich.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages