feat(desktop): move firefox config to homes and use home-manager modules

This commit is contained in:
Mohammad Rafiq 2025-06-14 11:52:50 +08:00
parent 844e6b263e
commit 6897ad63c9
No known key found for this signature in database
8 changed files with 95 additions and 90 deletions

View file

@ -1,52 +0,0 @@
{
osConfig,
lib,
inputs,
system,
...
}:
let
inherit (builtins) map listToAttrs;
inherit (lib) mkIf;
inherit (lib.lists) findFirstIndex;
inherit (inputs.nur.legacyPackages.${system}.repos.rycee) firefox-addons;
cfg = osConfig.desktop.browser.firefox;
profileCfg = id: {
inherit id;
#TODO: move this into an option?
settings = {
"extensions.autoDisableScopes" = 0; # Auto enable extensions
};
extensions = {
force = true;
packages = with firefox-addons; [
darkreader
gesturefy
sponsorblock
ublock-origin
];
};
};
profiles = listToAttrs (
map (name: {
inherit name;
# If there are duplicate profile names, findFirstIndex will cause issues.
# We sanitize the input in nixosModules.desktop to avoid this.
value = profileCfg (findFirstIndex (x: x == name) null cfg.syncedProfiles);
}) cfg.syncedProfiles
);
in
{
config = mkIf cfg.enable {
home.persistence."/persist/home/rafiq".directories = [ ".mozilla/firefox" ];
home.sessionVariables.BROWSER = "firefox";
programs.firefox = {
enable = true;
inherit profiles;
};
stylix.targets.firefox = {
profileNames = cfg.syncedProfiles;
colorTheme.enable = true;
};
};
}