{ config, lib, pkgs, ... }:

with lib;

let
  cfg = config.settings.applications.zsh;
in {
  options = {
    settings.applications.zsh.enable = lib.mkOption {
      type = lib.types.bool;
      description = ''
        Enable zsh shell
      '';
    };
  };

  config = mkIf cfg.enable {
    home.packages = with pkgs; [
      eza    
      bat
    ];

    home.shellAliases = {
      ls = "eza";   
    };

    programs.bash = {
      enable = false;
    };

    programs.zsh = {
      enable = true;
      enableCompletion = true;
      autosuggestion.enable = true;
      syntaxHighlighting.enable = true;
    };

    programs.starship = {
      enable = true;
      enableBashIntegration = true;
      enableZshIntegration = true;
    };

    programs.skim = {
      enable = true;
      enableZshIntegration = true;
    };
  };
}
