A wallpaper recommender engine that suggests a wallpaper based on the time of day
  • Rust 64.1%
  • Nix 18.4%
  • Shell 17.5%
Find a file
2026-08-23 08:28:20 +02:00
src Simply sampling logic 2025-12-04 22:02:31 +01:00
.gitignore Update scripts to use dynamic env var selection 2025-12-02 19:48:54 +01:00
Cargo.lock Initial commit 2025-12-02 19:48:26 +01:00
Cargo.toml Initial commit 2025-12-02 19:48:26 +01:00
flake.lock Switch from swww to awww 2026-08-23 08:28:20 +02:00
flake.nix Switch from swww to awww 2026-08-23 08:28:20 +02:00
index_wallpapers.sh Update scripts to use dynamic env var selection 2025-12-02 19:48:54 +01:00
README.md Update README 2025-12-03 14:38:21 +01:00
switch_wallpaper.sh Switch from swww to awww 2026-08-23 08:28:20 +02:00

Wallpaper Recommender

A small tool to suggest wallpapers based on the time of day and the luminosity of the wallpaper.

This is made to work using SWWW and Hyprland.

Install

You can add the project as a flake input:

{
  inputs = {
    wallpaper-recommender = {
      url = "git+https://git.argmin.dk/joshnie/wallpaper_recommender";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
  outputs =
    {
      self,
      wallpaper-recommender,
      ...
    }@inputs:

Configuration for home-manager:

{
  inputs,
  pkgs,
  ...
}:
{
  home.packages = with pkgs; [
       inputs.wallpaper-recommender.packages.${pkgs.system}.default
  ];
}

How to use

This package exposes two commands:

  • index-wallpapers: Indexes all wallpapers and computes their luminosities.
  • switch-wallpapers: Selects a new random wallpaper and updates it using SWWW.

The following two env vars are used by this flake:

  • WALLPAPER_DB: This is a file path for the sqlite DB, defaults to ~/.local/share/wallpapers.db.
  • WALLPAPER_DIR: This is the folder to put wallpapers in, defaults to ~/Wallpapers

Dependencies

All dependencies are handled automatically by Nix, but if you were to manually resolve them, the following are required:

  1. SQLite
  2. SWWW (and a Wayland compatible DE)
  3. ImageMagick
  4. file