Chromium and Brave are closely related. To declaratively install extensions on Brave, simply change @JimJ92120 's code to replace chromium with brave. This should fulfill all of the given criteria.
Something like:
home-manager.users.adam.programs = {
brave = {
enable = true;
package = pkgs.brave;
extensions = [
# malwarebytes browser guard
"ihcjicgdanjaechkgeegckofjjedodee"
# bitwarden
"nngceckbapebfimnlniiiahkandclblb"
# ublock origin
"cjpalhdlnbpafiamejdnhcphjbkeiagm"
];
};
};
I do not believe environment.systemPackages = [ pkgs.brave ]; is necessary.
I’m glad you asked; this is something I’ve been meaning to look into for some time.
NixOS and home-manager are open-source. Take advantage of it. Figuring it out was a matter of looking into home-manager/modules/programs/chromium.nix at 1a4f12ae0bda877ec4099b429cf439aad897d7e9 · nix-community/home-manager · GitHub .