diff --git a/modules/home-manager/shell/zsh/default.nix b/modules/home-manager/shell/zsh/default.nix index 9f28094..462fa35 100644 --- a/modules/home-manager/shell/zsh/default.nix +++ b/modules/home-manager/shell/zsh/default.nix @@ -27,6 +27,7 @@ in enable = true; strategy = [ "completion" ]; }; + defaultKeymap = "viins"; dotDir = ".config/zsh"; enableCompletion = true; enableVteIntegration = true; @@ -41,10 +42,6 @@ in size = 1000000; }; - historySubstringSearch = { - enable = true; - }; - initExtra = '' ## Directories setopt AUTO_PUSHD @@ -83,8 +80,8 @@ in PS1="%B%{$fg[magenta]%}%~%{$reset_color%} $%b " ## Vi mode - bindkey -v export KEYTIMEOUT=1 + bindkey '^R' mcfly-history-widget ## Zsh line editor unsetopt BEEP @@ -95,15 +92,40 @@ in ''; plugins = with pkgs; [ + { + name = "zsh-vi-mode"; + src = zsh-vi-mode; + file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; + } { name = "fast-syntax-highlighting"; src = zsh-fast-syntax-highlighting; file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh"; } { - name = "zsh-vi-mode"; - src = zsh-vi-mode; - file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; + name = "jq-zsh-plugin"; + src = jq-zsh-plugin; + file = "share/jq-zsh-plugin/jq.plugin.zsh"; + } + { + name = "zsh-autopair"; + src = zsh-autopair; + file = "share/zsh/zsh-autopair/autopair.zsh"; + } + { + name = "zsh-forgit"; + src = zsh-forgit; + file = "share/zsh/zsh-forgit/forgit.plugin.zsh"; + } + { + name = "zsh-fzf-tab"; + src = zsh-fzf-tab; + file = "share/fzf-tab/fzf-tab.plugin.zsh"; + } + { + name = "zsh-nix-shell"; + src = zsh-nix-shell; + file = "share/zsh-nix-shell/nix-shell.plugin.zsh"; } ]; @@ -115,6 +137,7 @@ in MODE_CURSOR_SEARCH = "#e7c547 steady underline"; MODE_CURSOR_VISUAL = "$MODE_CURSOR_VICMD steady bar"; MODE_CURSOR_VLINE = "$MODE_CURSOR_VISUAL #54ced6"; + ZVM_LINE_INIT_MODE = "i"; }; shellAliases = { @@ -137,13 +160,17 @@ in }; }; - nix-index.enable = true; + broot.enable = true; fzf = { enable = true; enableZshIntegration = true; package = pkgs.unstable.fzf; }; + + mcfly.enable = true; + navi.enable = true; + nix-index.enable = true; }; user.packages = with pkgs; [