I currently have a shell configuration through home-manager which pulls specific commits from github. I’d like to automatically update these throughout my project. Currently, my config does this:
Read them by running the command 'home-manager news'.
{ config, pkgs, libs, ... }:
let sources = import ../../nix/sources.nix ;
in
{
home = {
packages = with pkgs; [
zsh
nix-zsh-completions
bat
exa
fd
fzf
htop
tmux
ripgrep
tree
universal-ctags
z-lua
];
};
programs.zsh = {
enable = true;
enableCompletion= false;
initExtraBeforeCompInit = builtins.readFile ../../config/zsh/.zshrc ;
plugins = [ {
name = "powerlevel10k";
src = pkgs.fetchFromGitHub {
owner = sources.powerlevel10k.owner;
repo = sources.powerlevel10k.repo;
rev = sources.powerlevel10k.rev;
sha256 = sources.powerlevel10k.sha256;
};
}
];
};
}
I’ve heard niv is the right solution from Freenode, but I’m currently unclear how to use it in my config. The above works, but I’m not sure if there is a cleaner way which could avoid using fetchFromGithub (this seems redundant since calling the niv expression should pull the source?