{ pkgs, ... }: { home.packages = [ pkgs.zoxide pkgs.oh-my-posh ]; programs.zoxide.enable = true; programs.oh-my-posh.enable = true; home.file.".config/oh-my-posh/config.omp.json" = { source = ./custom/config.omp.json; force = true; }; programs.zsh = { enable = true; plugins = [ # { # name = "zsh-autocomplete"; # completes history, commands, etc. # src = pkgs.fetchFromGitHub { # owner = "marlonrichert"; # repo = "zsh-autocomplete"; # rev = "762afacbf227ecd173e899d10a28a478b4c84a3f"; # sha256 = "1357hygrjwj5vd4cjdvxzrx967f1d2dbqm2rskbz5z1q6jri1hm3"; # }; # e.g., nix-prefetch-url --unpack https://github.com/marlonrichert/zsh-autocomplete/archive/762afacbf227ecd173e899d10a28a478b4c84a3f.tar.gz # } { name = "vi-mode"; src = pkgs.zsh-vi-mode; file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; } { name = "autosuggestion"; src = pkgs.zsh-autosuggestions; file = "share/zsh-autosuggestions/zsh-autosuggestions.zsh"; } ]; enableCompletion = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -l"; upd = "sudo nixos-rebuild switch --flake ~/Nixos/#biscuit"; hupd = "home-manager switch --flake ~/Nixos/#biscuit --impure"; }; history.size = 10000; oh-my-zsh = { plugins = [ ]; enable = true; theme = "robbyrussell"; extraConfig = '' zstyle ':completion:*' completer _expand _complete _ignored _approximate _expand_alias zstyle ':autocomplete:*' default-context curcontext zstyle ':autocomplete:*' min-input 0 setopt HIST_FIND_NO_DUPS autoload -Uz compinit compinit # setopt autocd # cd without writing 'cd' setopt globdots # show dotfiles in autocomplete list ''; }; initContent = '' # Oh-My-Posh initialization for Zsh eval "$(oh-my-posh init zsh --config ~/.config/oh-my-posh/config.omp.json)" # zsh-autocomplete bindkey -M menuselect '^M' .accept-line # run code when selected completion ''; }; }