summaryrefslogtreecommitdiff
path: root/hm/soft/browser.nix
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-03-22 17:05:46 +0100
committeradikro <adikro@disroot.org>2026-03-22 17:05:46 +0100
commit08e25c159d9d948a66488b807d9f30712ef9d2b6 (patch)
tree9797c5a14a522fbbe125cd0bbe770b1befd459a6 /hm/soft/browser.nix
parent43c36f0db8d30e6a06c34c43a25621a13c555f66 (diff)
librewolf stuff
Diffstat (limited to 'hm/soft/browser.nix')
-rw-r--r--hm/soft/browser.nix183
1 files changed, 183 insertions, 0 deletions
diff --git a/hm/soft/browser.nix b/hm/soft/browser.nix
new file mode 100644
index 0000000..c5184fe
--- /dev/null
+++ b/hm/soft/browser.nix
@@ -0,0 +1,183 @@
+{
+ config,
+ lib,
+ pkgs,
+ inputs,
+ ...
+}:
+let
+ cfg = config.hm.soft.browser;
+in
+{
+ options.hm.soft.browser = {
+ librewolf.enable = lib.mkEnableOption "LibreWolf browser";
+ brave.enable = lib.mkEnableOption "Brave browser";
+ };
+ imports = [ inputs.arkenfox.hmModules.arkenfox ];
+ config = lib.mkMerge [
+ (lib.mkIf cfg.librewolf.enable {
+ programs.librewolf = {
+ enable = true;
+ # arkenfox = {
+ # enable = true;
+ # version = "148.0.2-2";
+ # };
+ settings = {
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ };
+
+ profiles = {
+ main = {
+ id = 0;
+ name = "main";
+ isDefault = true;
+ search = {
+ force = true;
+ engines = {
+ "google".metaData.hidden = true;
+ "bing".metaData.hidden = true;
+ # "ddg".metaData.hidden = true;
+ "perplexity".metaData.hidden = true;
+ "wikipedia".metaData.hidden = true;
+ "policy-DuckDuckGo Lite".metaData.hidden = true;
+ "policy-Searx Belgium".metaData.hidden = true;
+ "policy-MetaGer".metaData.hidden = true;
+ "policy-Startpage".metaData.hidden = true;
+ "policy-Mojeek".metaData.hidden = true;
+
+ "OmniSearch" = {
+ urls = [ { template = "http://omnisearch.local:8087/search?q={searchTerms}"; } ];
+ definedAliases = [ "@omni" ];
+ };
+ "SearXNG" = {
+ urls = [ { template = "https://sxng.violets-purgatory.dev/search?q={searchTerms}"; } ];
+ definedAliases = [ "@s" ];
+ };
+ "NixOS Packages" = {
+ urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@np" ];
+ };
+ "NixOS Options" = {
+ urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@no" ];
+ };
+ "Home Manager Options" = {
+ urls = [
+ { template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master"; }
+ ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@hm" ];
+ };
+ };
+ };
+ extensions = {
+ force = true;
+ packages = with pkgs.nur.repos.rycee.firefox-addons; [
+ vimium
+ sidebery
+ bitwarden
+ buster-captcha-solver
+ sponsorblock
+ dearrow
+ darkreader
+ i-dont-care-about-cookies
+ keepassxc-browser
+ ];
+ };
+ settings = {
+ "identity.fxaccounts.enabled" = true;
+ "extensions.autoDisableScopes" = 0;
+ # --- Privacy & Fingerprinting ---
+ "privacy.resistFingerprinting" = true;
+ "privacy.fingerprintingProtection" = true;
+ "privacy.query_stripping.enabled" = true;
+ "privacy.query_stripping.enabled.pbmode" = true;
+ "privacy.trackingprotection.enabled" = true;
+ "privacy.trackingprotection.socialtracking.enabled" = true;
+ "privacy.trackingprotection.emailtracking.enabled" = true;
+ "privacy.bounceTrackingProtection.mode" = 1;
+ "privacy.annotate_channels.strict_list.enabled" = true;
+ "privacy.clearOnShutdown_v2.formdata" = true;
+
+ # --- Data Collection & Form Security ---
+ "dom.forms.autocomplete.formautofill" = false;
+ "signon.management.page.breach-alerts.enabled" = false;
+ "browser.translations.enable" = false;
+ "browser.region.update.enabled" = false;
+
+ # --- Search & URL Bar ---
+ "browser.urlbar.shortcuts.bookmarks" = false;
+ "browser.urlbar.shortcuts.history" = false;
+ "browser.urlbar.shortcuts.tabs" = false;
+ "browser.urlbar.shortcuts.actions" = false;
+ "browser.urlbar.showSearchTerms.enabled" = false;
+
+ # --- Networking & Performance ---
+ "network.proxy.type" = 0;
+ "network.prefetch-next" = false;
+ "network.predictor.enabled" = false;
+ "network.http.speculative-parallel-limit" = 0;
+ "network.early-hints.preconnect.max_connections" = 0;
+ "network.connectivity-service.enabled" = false;
+ "network.captive-portal-service.enabled" = false;
+ "security.tls.enable_0rtt_data" = false;
+
+ # --- Interface & De-clutter ---
+ "browser.startup.page" = 3;
+ "browser.startup.homepage" = "chrome://browser/content/blanktab.html";
+ "browser.newtabpage.enabled" = false;
+ "browser.newtabpage.activity-stream.showSearch" = false;
+ "browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false;
+ "browser.bookmarks.restore_default_bookmarks" = false;
+ "media.hardwaremediakeys.enabled" = false;
+ "media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
+ "layout.spellcheckDefault" = 0;
+
+ # --- Safe Browsing (Privacy Trade-off) ---
+ "browser.safebrowsing.downloads.remote.enabled" = false;
+ "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
+ "browser.safebrowsing.downloads.remote.block_uncommon" = false;
+ };
+ userChrome = ''
+ #TabsToolbar { visibility: collapse !important; }
+ #sidebar-header { display: none !important; }
+ #toolbar-menubar { display: none !important; }
+ '';
+ };
+ privacy = {
+ id = 1;
+ name = "I2P";
+ settings = {
+ "media.peerconnection.enabled" = false;
+ "network.proxy.type" = 1;
+
+ "network.proxy.http" = "127.0.0.1";
+ "network.proxy.http_port" = 4444;
+
+ "network.proxy.ssl" = "127.0.0.1";
+ "network.proxy.ssl_port" = 4444;
+
+ "network.proxy.no_proxies_on" = "localhost, 127.0.0.1";
+
+ "network.http.proxy.pipelining" = true;
+ "network.proxy.share_proxy_settings" = true;
+
+ "network.prefetch-next" = false;
+ "network.dns.disablePrefetch" = true;
+ };
+ userChrome = ''
+ #TabsToolbar { visibility: collapse !important; }
+ #sidebar-header { display: none !important; }
+ #toolbar-menubar { display: none !important; }
+ '';
+ };
+ };
+ };
+ })
+ (lib.mkIf cfg.brave.enable {
+ home.packages = [ pkgs.brave ];
+ })
+ ];
+}