{ description = "Flake"; inputs = { nixpkgs = { url = "github:nixos/nixpkgs/nixos-unstable"; }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, nixpkgs, systems, ... }: let forAllSystems = function: nixpkgs.lib.genAttrs (import systems) (system: function nixpkgs.legacyPackages.${system}); treefmtEval = forAllSystems (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix); in { formatter = forAllSystems (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper); checks = forAllSystems (pkgs: { formatting = treefmtEval.${pkgs.system}.config.build.check self; }); devShells = forAllSystems (pkgs: { default = pkgs.mkShell { packages = with pkgs; [ ydotool slurp imagemagick ]; }; }); }; }