Files
nix/hosts/common/configs/user/gui/firefox/default.nix
2025-07-14 16:46:27 +01:00

193 lines
6.7 KiB
Nix

{ user, home }:
{
config,
lib,
pkgs,
...
}:
let
hmConfig = config.home-manager.users.${user};
in
{
environment.persistence = {
"/persist/state"."${home}/.mozilla" = { };
"/persist/cache"."${home}/.cache/mozilla" = { };
};
home-manager.users.${user} = {
programs.firefox = {
enable = true;
policies = {
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DefaultDownloadDirectory = "${home}/Downloads";
DisableFirefoxStudies = true;
DisablePocket = true;
DisableSetDesktopBackground = true;
DisableTelemetry = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
EmailTracking = true;
};
FirefoxHome = {
Locked = true;
Search = true;
TopSites = true;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
};
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OverrideFirstRunPage = "";
PasswordManagerEnabled = false;
Preferences =
lib.attrsets.mapAttrs
(key: value: {
Value = value;
Status = "locked";
})
{
"browser.aboutConfig.showWarning" = false;
"browser.bookmarks.addedImportButton" = true;
"browser.bookmarks.restore_default_bookmarks" = false;
"browser.bookmarks.showMobileBookmarks" = true;
"browser.download.useDownloadDir" = false;
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.sessionstore.restore_on_demand" = true;
"browser.sessionstore.restore_pinned_tabs_on_demand" = false;
"browser.translations.automaticallyPopup" = false;
"browser.uiCustomization.state" = builtins.readFile (
(pkgs.formats.json { }).generate "firefox-browser-uiCustomization-state.json" {
"placements" = {
"widget-overflow-fixed-list" = [ ];
"unified-extensions-area" = [
"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action"
"sponsorblocker_ajay_app-browser-action"
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
"languagetool-webextension_languagetool_org-browser-action"
"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action"
];
"nav-bar" = [
"sidebar-button"
"alltabs-button"
"firefox-view-button"
"back-button"
"forward-button"
"stop-reload-button"
"vertical-spacer"
"urlbar-container"
"customizableui-special-spring2"
"fxa-toolbar-menu-button"
"ublock0_raymondhill_net-browser-action"
"addon_darkreader_org-browser-action"
"wayback_machine_mozilla_org-browser-action"
"unified-extensions-button"
"downloads-button"
"privatebrowsing-button"
];
"toolbar-menubar" = [ "menubar-items" ];
"TabsToolbar" = [ ];
"vertical-tabs" = [ "tabbrowser-tabs" ];
"PersonalToolbar" = [ "personal-bookmarks" ];
};
"seen" = [
"wayback_machine_mozilla_org-browser-action"
"addon_darkreader_org-browser-action"
"ublock0_raymondhill_net-browser-action"
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
"languagetool-webextension_languagetool_org-browser-action"
"sponsorblocker_ajay_app-browser-action"
"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action"
"developer-button"
"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action"
"screenshot-button"
];
"dirtyAreaCache" = [
"unified-extensions-area"
"nav-bar"
"toolbar-menubar"
"TabsToolbar"
"vertical-tabs"
"PersonalToolbar"
];
"currentVersion" = 22;
"newElementCount" = 0;
}
);
"extensions.autoDisableScopes" = 0;
"sidebar.main.tools" = "history,bookmarks";
"sidebar.revamp" = true;
"sidebar.verticalTabs" = true;
};
};
profiles.default = {
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
languagetool
bitwarden
darkreader
noscript
sponsorblock
ublock-origin
violentmonkey
wayback-machine
user-agent-string-switcher
];
search = {
default = "ddg";
privateDefault = "ddg";
order = [
"ddg"
"google"
"wikipedia"
"nix"
];
force = true;
engines = {
google.metaData.alias = "@g";
ddg.metaData.alias = "@d";
wikipedia.metaData.alias = "@w";
nix = {
urls = [
{
template = "https://mynixos.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@n" ];
};
};
};
};
};
xdg.mimeApps.defaultApplications = lib.attrsets.genAttrs [
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
"x-scheme-handler/about"
"x-scheme-handler/unknown"
] (_: "firefox.desktop");
home.sessionVariables.DEFAULT_BROWSER = lib.meta.getExe hmConfig.programs.firefox.finalPackage;
};
}