summaryrefslogtreecommitdiff
path: root/hm/soft/browser.nix
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-04-04 15:19:42 +0200
committeradikro <adikro@disroot.org>2026-04-04 15:19:42 +0200
commit156b4f2c45321bd6cbb63097105c31baa955bfc6 (patch)
treecc639e5a8f3e2859db46f41c28747bb162f7a4ba /hm/soft/browser.nix
parent4ff17027412da68da76a988f3d4d6d633e2ebb91 (diff)
moving away from home manager
Diffstat (limited to 'hm/soft/browser.nix')
-rw-r--r--hm/soft/browser.nix365
1 files changed, 180 insertions, 185 deletions
diff --git a/hm/soft/browser.nix b/hm/soft/browser.nix
index a66b733..b53804e 100644
--- a/hm/soft/browser.nix
+++ b/hm/soft/browser.nix
@@ -1,196 +1,191 @@
{
config,
lib,
- pkgs,
...
}:
let
cfg = config.hm.soft.browser;
in
{
- options.hm.soft.browser = {
- librewolf.enable = lib.mkEnableOption "LibreWolf browser";
- brave.enable = lib.mkEnableOption "Brave browser";
+ options.hm.soft.browser.librewolf.enable = lib.mkEnableOption "Enables the librewolf browser";
+ config = lib.mkIf cfg.librewolf.enable {
+ programs.librewolf = {
+ enable = true;
+ # policies = {
+ # DisableTelemetry = true;
+ # DisableFirefoxStudies = true;
+ # DontCheckDefaultBrowser = true;
+ # SearchEngines = {
+ # Remove = [
+ # "Google"
+ # "Bing"
+ # "Perplexity"
+ # "Wikipedia (en)"
+ # "DuckDuckGo"
+ # "DuckDuckGo Lite"
+ # "Searx Belgium"
+ # "MetaGer"
+ # "Startpage"
+ # "Mojeek"
+ # ];
+ # PreventInstalls = true;
+ # };
+ # };
+ #
+ # profiles = {
+ # main = {
+ # id = 0;
+ # name = "main";
+ # isDefault = true;
+ # search = {
+ # force = true;
+ # default = "OmniSearch";
+ # order = [
+ # "OmniSearch"
+ # "SearXNG"
+ # ];
+ # 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://127.0.0.1:8087/search?q={searchTerms}"; } ];
+ # definedAliases = [ "@o" ];
+ # };
+ # "SearXNG" = {
+ # urls = [ { template = "https://sxng.violets-purgatory.dev/search?q={searchTerms}"; } ];
+ # icon = "https://sxng.violets-purgatory.dev/favicon.ico";
+ # 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
+ # buster-captcha-solver
+ # sponsorblock
+ # dearrow
+ # darkreader
+ # i-dont-care-about-cookies
+ # keepassxc-browser
+ # ])
+ # };
+ # settings = {
+ # "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ #
+ # "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 = {
+ # "javascript.enabled" = false;
+ # "dom.visibility_control.enabled" = false;
+ #
+ # "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;
+ # };
+ # };
+ # };
+ };
};
- config = lib.mkMerge [
- (lib.mkIf cfg.librewolf.enable {
- programs.librewolf = {
- enable = true;
- policies = {
- DisableTelemetry = true;
- DisableFirefoxStudies = true;
- DontCheckDefaultBrowser = true;
- SearchEngines = {
- Remove = [
- "Google"
- "Bing"
- "Perplexity"
- "Wikipedia (en)"
- "DuckDuckGo"
- "DuckDuckGo Lite"
- "Searx Belgium"
- "MetaGer"
- "Startpage"
- "Mojeek"
- ];
- PreventInstalls = true;
- };
- };
-
- profiles = {
- main = {
- id = 0;
- name = "main";
- isDefault = true;
- search = {
- force = true;
- default = "OmniSearch";
- order = [
- "OmniSearch"
- "SearXNG"
- ];
- 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://127.0.0.1:8087/search?q={searchTerms}"; } ];
- definedAliases = [ "@o" ];
- };
- "SearXNG" = {
- urls = [ { template = "https://sxng.violets-purgatory.dev/search?q={searchTerms}"; } ];
- icon = "https://sxng.violets-purgatory.dev/favicon.ico";
- 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
- buster-captcha-solver
- sponsorblock
- dearrow
- darkreader
- i-dont-care-about-cookies
- keepassxc-browser
- ];
- };
- settings = {
- "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
-
- "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;
- };
- };
- };
- };
- })
- (lib.mkIf cfg.brave.enable {
- home.packages = [ pkgs.brave ];
- })
- ];
}