{
  description = "jiriks74's ZSH configuration";

  inputs = {
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = {nixpkgs, ...}: let
    # Supported systems for your flake packages, shell, etc.
    systems = [
      "aarch64-linux"
      "i686-linux"
      "x86_64-linux"
      "aarch64-darwin"
      "x86_64-darwin"
    ];
    # This is a function that generates an attribute by calling a function you
    # pass to it, with each system as an argument
    forAllSystems = nixpkgs.lib.genAttrs systems;
  in {
    formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
    homeManagerModules = {
      default = {
        config,
        lib,
        pkgs,
        ...
      }: {
        inport = ./zsh.nix;
      };
      withPackages = {
        config,
        lib,
        pkgs,
        ...
      }: {
        imports = [
          ./zsh.nix
          ./packages.nix
        ];
      };
    };
  };
}