{ self, inputs, ... }: {
  flake = {
    homeModules.shell = { pkgs, lib, ... }: {
      programs = {
        zsh = {
          enable = true;
          package = pkgs.zsh;
          enableCompletion = true;
          autocd = true;
          initContent = lib.getExe self.packages.${pkgs.stdenv.hostPlatform.system}.myFastfetch;

          autosuggestion = {
            enable = true;
            strategy = [ "history" ];
            highlight = "fg=8";
          };

          history = {
            append = true;
            extended = true;
            ignoreSpace = false;
            save = 100000;
            size = 100000;
            saveNoDups = true;
            share = true;
          };

          oh-my-zsh = {
            enable = true;
            package = pkgs.oh-my-zsh;
            plugins = [
              "git"
              "golang"
              "docker"
              "eza"
              "fzf"
              "gh"
              "kitty"
            ];
          };
        };
        starship = {
          enable = true;
          package = self.packages.${pkgs.stdenv.hostPlatform.system}.myStarship;
        };
      };
    };

    nixosModules.shell = { pkgs, lib, ... }: {
      programs.zsh = {
        enable = true;
        autosuggestions = {
          enable = true;
        };
      };
      environment = {
        pathsToLink = [ "/share/zsh" ];
        systemPackages = with pkgs; [
          eza
          fzf
          cmatrix
        ];
      };
    };
  };

  perSystem = { pkgs, lib, ... }: {
    packages.myStarship = inputs.wrapper-modules.wrappers.starship.wrap {
      inherit pkgs;

      settings = {
        battery = {
          full_symbol     = "󰁹 ";
          charging_symbol = "󰂄 ";
        };
      };
      preset = [
        "nerd-font-symbols"
        "bracketed-segments"
      ];
    };
  };
}
