{pkgs, ...}: {
  programs.z-lua = {
    enableAliases = true;
    enableZshIntegration = true;
  };

  programs.zsh = {
    autocd = true;
    enableCompletion = false;
    syntaxHighlighting.enable = true;
    defaultKeymap = "viins";

    shellAliases = {
      cfind = "cscope -C -R -L1";
      chmod = "chmod -v";
      chown = "chown -v";
      cp = "cp -v";
      rm = "rm -v";
      ip = "ip --color=auto";
      f = "''$(pay-respects zsh)";
    };

    history = {
      expireDuplicatesFirst = true;
      extended = true;
      save = 100000;
      size = 100000;
    };

    plugins = [
      {
        name = "nix_shell";
        src = pkgs.zsh-nix-shell;
        file = "share/zsh-nix-shell/nix-shell.plugin.zsh";
      }
      {
        name = "nix_completion";
        src = pkgs.nix-zsh-completions;
        file = "share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh";
      }
      {
        name = "pure_prompt";
        src = pkgs.fetchFromGitHub {
          owner = "sindresorhus";
          repo = "pure";
          rev = "a02209d36c8509c0e62f44324127632999c9c0cf";
          hash = "sha256-BmQO4xqd/3QnpLUitD2obVxL0UulpboT8jGNEh4ri8k=";
        };
        file = "pure.plugin.zsh";
      }
      {
        name = "fzf";
        src = pkgs.fzf-zsh;
        file = "share/zsh/plugins/fzf-zsh/fzf-zsh.plugin.zsh";
      }
      {
        name = "zsh-sudo";
        src = pkgs.fetchFromGitHub {
          owner = "hcgraf";
          repo = "zsh-sudo";
          rev = "d8084def6bb1bde2482e7aa636743f40c69d9b32";
          sha256 = "1dpm51w3wjxil8sxqw4qxim5kmf6afmkwz1yfhldpdlqm7rfwpi3";
        };
        file = "sudo.plugin.zsh";
      }
    ];

    envExtra = '''';

    initExtra = ''
           # binds
           bindkey '^K' fzf-file-widget

           # options
           setopt nobeep
           setopt nopromptcr
           setopt c_bases
           setopt completeinword
           setopt completealiases
           setopt notify

           #
           RPS1=""

           #
           function chpwd() {
             ls;
           }

           eval "$(direnv hook zsh)"
           zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'

           if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then
      TMUX_EXE="${pkgs.tmux}/bin/tmux"
             systemd-run --scope --user $TMUX_EXE attach-session -t $USER || systemd-run --scope --user $TMUX_EXE new-session -s $USER
           fi

           if [[ -n "$BUBBLEWRAP_DIR" ]]; then
      RPS1="{{$BUBBLEWRAP_DIR}}"
           fi
    '';
  };
}