timewall 1.2.0

All-in-one tool for Apple dynamic HEIF wallpapers on GNU/Linux
{
  description = "A Nix-flake-based Rust development environment";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {
    self,
    nixpkgs,
    rust-overlay,
    flake-utils,
  }:
    flake-utils.lib.eachDefaultSystem (system: let
      overlays = [
        rust-overlay.overlays.default
        (final: prev: {
          rustToolchain = let
            rust = prev.rust-bin;
          in
            if builtins.pathExists ./rust-toolchain.toml
            then rust.fromRustupToolchainFile ./rust-toolchain.toml
            else if builtins.pathExists ./rust-toolchain
            then rust.fromRustupToolchainFile ./rust-toolchain
            else
              rust.stable.latest.default.override {
                extensions = ["rust-src" "rustfmt"];
              };
        })
      ];
      pkgs = import nixpkgs {
        inherit overlays system;
      };
    in
      with pkgs; {
        devShells.default = mkShell {
          packages = [
            (rustToolchain.override {extensions = ["llvm-tools-preview"];})
            cargo-edit
            cargo-watch
            cargo-llvm-cov
            rust-analyzer
            just
          ];
          buildInputs = [
            libheif
          ];
        };
      });
}