From ee3385342045d541547081c1b6a6af566c8ed5c9 Mon Sep 17 00:00:00 2001 From: wi11-holdsworth <83637728+wi11-holdsworth@users.noreply.github.com> Date: Thu, 18 Dec 2025 15:31:08 +1100 Subject: [PATCH] feat: install firefox --- flake.lock | 43 ++++ flake.nix | 12 +- modules/home-manager/bundles/desktop.nix | 1 + modules/home-manager/features/firefox.nix | 250 ++++++++++++++++++++++ 4 files changed, 304 insertions(+), 2 deletions(-) create mode 100644 modules/home-manager/features/firefox.nix diff --git a/flake.lock b/flake.lock index 64afcd2..00a104d 100644 --- a/flake.lock +++ b/flake.lock @@ -85,6 +85,27 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1678901627, @@ -215,6 +236,27 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1766030459, + "narHash": "sha256-hWlPTEnYoqfSKozF2Ro2/ymVy11RugLw5U9zex/76f4=", + "owner": "nix-community", + "repo": "NUR", + "rev": "285245c3721e42d2886cd445503485ccb7165b7b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", @@ -222,6 +264,7 @@ "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_2", "nixvim": "nixvim", + "nur": "nur", "zen-browser": "zen-browser" } }, diff --git a/flake.nix b/flake.nix index 9cb806e..f8e4131 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,10 @@ url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; @@ -26,10 +30,13 @@ outputs = { - nixpkgs, - home-manager, + # keep-sorted start agenix, + home-manager, + nixpkgs, + nur, zen-browser, + # keep-sorted end ... }@inputs: let @@ -45,6 +52,7 @@ nixpkgs.lib.nixosSystem { modules = [ ./hosts/${hostName}/configuration.nix + nur.modules.nixos.default home-manager.nixosModules.home-manager { home-manager = { diff --git a/modules/home-manager/bundles/desktop.nix b/modules/home-manager/bundles/desktop.nix index 0867706..60e4e46 100644 --- a/modules/home-manager/bundles/desktop.nix +++ b/modules/home-manager/bundles/desktop.nix @@ -6,6 +6,7 @@ imports = util.toImports ../features [ # keep-sorted start "aerc" + "firefox" "kitty" "mail" "obsidian" diff --git a/modules/home-manager/features/firefox.nix b/modules/home-manager/features/firefox.nix new file mode 100644 index 0000000..e7adee0 --- /dev/null +++ b/modules/home-manager/features/firefox.nix @@ -0,0 +1,250 @@ +{ + pkgs, + ... +}: +{ + programs.firefox = { + enable = true; + languagePacks = [ "en-GB" ]; + profiles.will = { + settings = { + # keep-sorted start + "browser.aboutwelcome.enabled" = false; + "browser.bookmarks.addedImportButton" = false; + "browser.bookmarks.restore_default_bookmarks" = false; + "browser.newtabpage.enabled" = false; + "browser.safebrowsing.downloads.enabled" = false; + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.safebrowsing.remote.block_potentially_unwanted" = false; + "browser.safebrowsing.remote.block_uncommon" = false; + "browser.search.suggest.enabled" = false; + "browser.startup.homepage" = "chrome://browser/content/blanktab.html"; + "browser.startup.page" = 3; + "browser.tabs.groups.smart.userEnabled" = false; + "browser.toolbars.bookmarks.visibility" = "never"; + "browser.urlbar.suggest.searches" = false; + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.usage.uploadEnabled" = false; + "dom.security.https_only_mode" = true; + "dom.security.https_only_mode_ever_enabled" = true; + "extensions.formautofill.creditCards.enabled" = false; + "general.autoScroll" = true; + "intl.locale.requested" = "en-GB"; + "network.trr.mode" = 3; + "network.trr.uri" = "https://firefox.dns.nextdns.io/"; + "privacy.annotate_channels.strict_list.enabled" = true; + "privacy.bounceTrackingProtection.mode" = 1; + "privacy.clearOnShutdown_v2.formdata" = true; + "privacy.fingerprintingProtection" = true; + "privacy.globalprivacycontrol.enabled" = true; + "privacy.globalprivacycontrol.was_ever_enabled" = true; + "privacy.query_stripping.enabled " = true; + "privacy.query_stripping.enabled.pbmode" = true; + "privacy.trackingprotection.allow_list.baseline.enabled" = true; + "privacy.trackingprotection.allow_list.convenience.enabled" = false; + "privacy.trackingprotection.consentmanager.skip.pbmode.enabled" = false; + "privacy.trackingprotection.emailtracking.enabled" = true; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.socialtracking.enabled" = true; + "sidebar.main.tools" = "syncedtabs,history,bookmarks"; + "sidebar.new-sidebar.has-used" = true; + "sidebar.position_start" = false; + "sidebar.revamp" = true; + "sidebar.verticalTabs" = true; + "sidebar.verticalTabs.dragToPinPromo.dismissed" = true; + "signon.autofillForms" = false; + "signon.firefoxRelay.feature" = "disabled"; + "signon.generation.enabled" = false; + "signon.management.page.breach-alerts.enabled" = false; + "signon.rememberSignons" = false; + "toolkit.telemetry.reportingpolicy.firstRun" = false; + # keep-sorted end + }; + search = { + default = "ddg"; + privateDefault = "ddg"; + engines = { }; + order = [ ]; + force = true; + }; + extensions = { + force = true; + packages = with pkgs.nur.repos.rycee.firefox-addons; [ + # keep-sorted start sticky_comments=no + # detect-cloudflare + bitwarden + dearrow + floccus + nixpkgs-pr-tracker + react-devtools + return-youtube-dislikes + sponsorblock + ublock-origin + # keep-sorted end + ]; + settings = { + # keep-sorted start block=yes + # sponsorblock + "sponsorBlocker@ajay.app".settings = { + hideSegmentCreationInPopup = false; + autoSkipOnMusicVideosUpdate = true; + changeChapterColor = true; + autoSkipOnMusicVideos = false; + hideVideoPlayerControls = false; + useVirtualTime = true; + categoryPillColors = { }; + payments = { + chaptersAllowed = false; + freeAccess = false; + lastCheck = 0; + lastFreeCheck = 0; + licenseKey = null; + }; + allowExpirements = true; + allowScrollingToEdit = true; + audioNotificationOnSkip = false; + autoHideInfoButton = true; + categoryPillUpdate = true; + chapterCategoryAdded = true; + checkForUnlistedVideos = false; + cleanPopup = false; + darkMode = true; + deArrowInstalled = true; + defaultCategory = "chooseACategory"; + disableSkipping = false; + donateClicked = 0; + dontShowNotice = false; + forceChannelCheck = false; + fullVideoLabelsOnThumbnails = true; + fullVideoSegments = true; + hideDeleteButtonPlayerControls = false; + hideDiscordLaunches = 0; + hideDiscordLink = false; + hideInfoButtonPlayerControls = false; + hideSkipButtonPlayerControls = false; + hideUploadButtonPlayerControls = false; + categorySelections = [ + { + name = "sponsor"; + option = 2; + } + { + name = "poi_highlight"; + option = 1; + } + { + name = "exclusive_access"; + option = 0; + } + { + name = "chapter"; + option = 0; + } + { + name = "selfpromo"; + option = 1; + } + { + name = "interaction"; + option = 1; + } + { + name = "intro"; + option = 1; + } + { + name = "outro"; + option = 1; + } + { + name = "preview"; + option = 1; + } + { + name = "filler"; + option = 1; + } + { + name = "music_offtopic"; + option = 2; + } + { + name = "hook"; + option = 1; + } + ]; + manualSkipOnFullVideo = false; + minDuration = 0; + isVip = false; + muteSegments = false; + noticeVisibilityMode = 3; + renderSegmentsAsChapters = false; + scrollToEditTimeUpdate = false; + serverAddress = "https://sponsor.ajay.app"; + showAutogeneratedChapters = false; + showCategoryGuidelines = true; + showCategoryWithoutPermission = false; + showChapterInfoMessage = true; + showDeArrowInSettings = true; + showDeArrowPromotion = true; + showDonationLink = false; + showNewFeaturePopups = false; + showSegmentFailedToFetchWarning = true; + showSegmentNameInChapterBar = true; + showTimeWithSkips = true; + showUpcomingNotice = false; + showUpsells = false; + minutesSaved = 67.630516; + shownDeArrowPromotion = false; + showZoomToFillError2 = false; + skipNoticeDuration = 4; + sponsorTimesContributed = 0; + testingServer = false; + trackDownvotes = false; + trackDownvotesInPrivate = false; + trackViewCount = false; + trackViewCountInPrivate = false; + ytInfoPermissionGranted = false; + skipNonMusicOnlyOnYoutubeMusic = false; + hookUpdate = false; + permissions = { + sponsor = true; + selfpromo = true; + exclusive_access = true; + interaction = true; + intro = true; + outro = true; + preview = true; + hook = true; + music_offtopic = true; + filler = true; + poi_highlight = true; + chapter = false; + }; + segmentListDefaultTab = 0; + prideTheme = false; + }; + # ublock-origin + "uBlock0@raymondhill.net".settings = { + advancedUserEnabled = true; + selectedFilterLists = [ + "user-filters" + "ublock-filters" + "ublock-badware" + "ublock-privacy" + "ublock-quick-fixes" + "ublock-unbreak" + "easylist" + "easyprivacy" + "adguard-spyware-url" + "urlhaus-1" + "plowe-0" + ]; + }; + # keep-sorted end + }; + }; + }; + }; +} -- 2.53.0