A wallpaper recommender engine that suggests a wallpaper based on the time of day
Find a file
2025-12-04 22:02:31 +01: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 Add rust package build 2025-12-02 19:48:54 +01:00
flake.nix Add default 2025-12-03 14:24:14 +01: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 Use resize fit instead of crop 2025-12-03 09:48:08 +01: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