{
  config,
  lib,
  pkgs,
  ...
}: let
  palette-hex = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.palette;
  palette-shex = pkgs.lib.nix-rice.palette.toRGBShortHex pkgs.rice.palette;
in {
  programs.zsh = {
    enable = true;
    autosuggestion.enable = true;
    enableCompletion = true;
    syntaxHighlighting.enable = true;
    enableVteIntegration = true;
    autocd = true;
    defaultKeymap = "viins";
    initExtra = builtins.readFile ../dots/zsh;
    plugins = [
      {
        name = "powerlevel10k";
        src = pkgs.zsh-powerlevel10k;
        file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
      }
      {
        name = "zsh-vi-mode";
        src = pkgs.zsh-vi-mode;
        file = "share/zsh-vi-mode/zsh-vi-mode.zsh";
      }
      {
        name = "zsh-autopair";
        src = pkgs.zsh-autopair;
        file = "share/zsh-autopair/zsh-autopair.zsh";
      }
      {
        name = "zsh-completions";
        src = pkgs.zsh-completions;
        file = "share/zsh-completions/zsh-completions.zsh";
      }
      {
        name = "zsh-command-time";
        src = pkgs.zsh-command-time;
        file = "share/zsh-completions/zsh-command-time.zsh";
      }
      {
        name = "zsh-autocomplete";
        src = pkgs.zsh-autocomplete;
        file = "share/zsh-autocomplete/zsh-autocomplete.zsh";
      }
      {
        name = "zsh-fast-syntax-highlighting";
        src = pkgs.zsh-fast-syntax-highlighting;
        file = "share/zsh-fast-syntax-highlighting/zsh-fast-syntax-highlighting.zsh";
      }
      {
        name = "zsh-nix-shell";
        src = pkgs.zsh-nix-shell;
        file = "share/zsh-nix-shell/zsh-nix-shell.zsh";
      }
      {
        name = "any-nix-shell";
        src = pkgs.any-nix-shell;
        file = "share/any-nix-shell/any-nix-shell.zsh";
      }
      {
        name = "nix-zsh-completions";
        src = pkgs.nix-zsh-completions;
        file = "share/nix-zsh-completions/nix-zsh-completions.zsh";
      }
    ];
  };
}
