{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"; }; 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 = "fast_syntax_highlight"; src = pkgs.zsh-fast-syntax-highlighting; file = "share/zsh/site-functions/fast-syntax-highlighting.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 ''; }; }