{ pkgs, lib, system, config, osConfig, ... }: { home.packages = with pkgs; [zsh-powerlevel10k meslo-lgs-nf]; home.file.".p10k.zsh".source = ./p10k; programs.direnv.enable = true; programs.zsh = { enable = true; # dotDir = "$HOME/.config/zsh"; plugins = [ { name = "zsh-powerlevel10k"; src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/"; file = "powerlevel10k.zsh-theme"; } { name = "powerlevel10k-config"; src = lib.cleanSource ./p10k; file = "p10k.zsh"; } ]; oh-my-zsh = { enable = true; # theme = "af-magic"; # theme = "powerlevel10k/powerlevel10k"; plugins = ["git" "history-substring-search" "colored-man-pages"]; }; autosuggestion.enable = true; syntaxHighlighting.enable = true; # zsh sheeee initExtraFirst = '' [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh ''; # recall agenix secrets cannot be used at eval time, so we must do this trash # like what the fuck? I spent 4 hours figuring this out. will i ever reach nix nirvana? initExtra = '' ${builtins.readFile ./zshrc} if [ -f "${osConfig.age.secrets.zsh_remote.path}" ]; then source "${osConfig.age.secrets.zsh_remote.path}" fi ''; }; }