{ pkgs, userDetails, ... }: { programs.firefox = { # TODO see if there is way to login to moz account in profile enable = true; arkenfox = { enable = true; }; profiles = let search = { engines = { "Timmy Search" = { urls = [{ template = "https://search.tjkeller.xyz/search?q={searchTerms}"; }]; # Don't know how to do w/ POST but I prefer GET anyways iconURI = "https://search.tjkeller.xyz/static/themes/simple/img/favicon.svg"; # TODO doesn't seem to work }; "Nix Packages" = { urls = [{ template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; }]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@np" ]; }; }; default = "Timmy Search"; privateDefault = "Timmy Search"; force = true; # Overwrite old }; userChrome = builtins.readFile ./resources/firefox/userChrome.css; arkenfox = { enable = true; enableAllSections = true; "0100"."0102"."browser.startup.page".value = 3; # 0=blank, 1=home, 2=last visited page, 3=resume previous session "0100"."0103"."browser.startup.homepage".enable = false; "0100"."0104"."browser.newtabpage.enabled".enable = false; "2800"."2811"."privacy.clearOnShutdown.history".enable = false; }; settings = { "browser.compactmode.show" = true; "browser.uiCustomization.state" = builtins.readFile ./resources/firefox/uiCustomization.json; # Toolbar etc. "browser.uidensity" = 1; # Compact "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # userchrome "app.normandy.first_run" = false; "browser.aboutConfig.showWarning" = false; # arkenfox does "browser.download.dir" = userDetails.home.downloads; # FF will create this dir if it doesn't exist "browser.newtabpage.activity-stream.feeds.section.topstories" = false; "browser.newtabpage.activity-stream.feeds.topsites" = false; "browser.urlbar.suggest.topsites" = false; "devtools.toolbox.host" = "window"; "dom.push.enabled" = false; # "extensions.pocket.enabled" = false; "general.smoothScroll" = false; #identity.fxaccounts.account.device.name = "timmy’s Firefox on nixos"; # HOSTNAME }; workSettings = settings // { "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; # Use builtin dark theme instead of system theme }; in { Personal = { id = 0; isDefault = true; inherit search; inherit userChrome; inherit arkenfox; inherit settings; }; Work = { id = 1; inherit search; inherit userChrome; inherit arkenfox; settings = workSettings; }; }; }; }