From 9ef9476f80bf6f455937cd24dca433f94dba9447 Mon Sep 17 00:00:00 2001 From: Sean Kovacs Date: Wed, 14 Jan 2026 14:50:25 -0500 Subject: [PATCH] configure firefoxpwa --- home/default.nix | 2 - home/graphical/firefox/default.nix | 394 ++++++++++++++++------------- 2 files changed, 217 insertions(+), 179 deletions(-) diff --git a/home/default.nix b/home/default.nix index a53fc0a..4802517 100755 --- a/home/default.nix +++ b/home/default.nix @@ -170,9 +170,7 @@ input-leap libreoffice-qt-fresh # nur.repos.forkprince.helium-nightly - bitwarden-desktop qbittorrent - whatsapp-electron nautilus # gui applications ( multimedia ) diff --git a/home/graphical/firefox/default.nix b/home/graphical/firefox/default.nix index 45a1c12..2225bf3 100644 --- a/home/graphical/firefox/default.nix +++ b/home/graphical/firefox/default.nix @@ -52,191 +52,231 @@ force = true; }; - programs.firefox = { - enable = true; - package = pkgs.firefox.override { - nativeMessagingHosts = with pkgs; [ - firefoxpwa - ]; - }; - policies = { - BlockAboutConfig = false; - DefaultDownloadDirectory = "\${home}/Downloads"; - # Check about:support for extension/add-on ID strings. - # Valid strings for installation_mode are "allowed", "blocked", - # "force_installed" and "normal_installed". - ExtensionSettings = { - "*" = { - "installation_mode" = "blocked"; - }; - "uBlock0@raymondhill.net" = { - installation_mode = "allowed"; - }; - "gdpr@cavi.au.dk" = { - installation_mode = "allowed"; - }; - "{5cce4ab5-3d47-41b9-af5e-8203eea05245}" = { - installation_mode = "allowed"; - }; - "plasma-browser-integration@kde.org" = { - installation_mode = "allowed"; - }; - "jid1-MnnxcxisBPnSXQ@jetpack" = { - installation_mode = "allowed"; - }; - "firefoxpwa@filips.si" = { - installation_mode = "allowed"; - }; - "sponsorBlocker@ajay.app" = { - installation_mode = "allowed"; - }; - "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" = { - installation_mode = "allowed"; - }; - "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}" = { - installation_mode = "allowed"; - }; - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - installation_mode = "allowed"; + home.file.".local/share/firefoxpwa/profiles/01KEYXH9TC4B54J5CTPNE75JP0/prefs.js" = { + text = '' + user_pref("firefoxpwa.alwaysUseNativeWindowControls", true); + user_pref("firefoxpwa.displayUrlBar", 1); + user_pref("firefoxpwa.enableHidingIconBar", true); + user_pref("firefoxpwa.dynamicWindowTitle", true); + user_pref("ui.key.menuAccessKeyFocuses", false); + user_pref("browser.aboutConfig.showWarning", false); + user_pref("browser.ml.enable", false); + ''; + force = true; + }; + + programs = { + firefoxpwa = { + enable = true; + settings.config = { + always_patch = false; + runtime_enable_wayland = true; + runtime_use_xinput2 = true; + runtime_use_portals = true; + use_linked_runtime = false; + }; + profiles = { + "01KEYXH9TC4B54J5CTPNE75JP0".sites."01KEYXHK7XQQJ0M3J7SX4VD9PG" = { + name = "WhatsApp"; + url = "https://web.whatsapp.com/"; + manifestUrl = "https://web.whatsapp.com/data/manifest.json"; + desktopEntry = { + icon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/whatsapp.svg"; + categories = [ + "Network" + "Chat" + "Telephony" + ]; + }; }; }; - DisableTelemetry = true; - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DisablePocket = true; - DisableFirefoxAccounts = false; - DisableAccounts = false; - DisableFirefoxScreenshots = true; - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DontCheckDefaultBrowser = true; - DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" - DisplayMenuBar = "always"; # alternatives: "always", "never" or "default-on" - SearchBar = "unified"; # alternative: "separate" }; - profiles = { - default = { - id = 0; - name = "default"; - isDefault = true; - extensions = { - force = true; - packages = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - plasma-integration - stylus - violentmonkey - consent-o-matic - privacy-badger - sponsorblock - pwas-for-firefox - control-panel-for-twitter - bitwarden - ]; - settings = { - "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = { - force = true; - settings = { - dbInChromeStorage = true; + firefox = { + enable = true; + package = pkgs.firefox.override { + nativeMessagingHosts = with pkgs; [ + firefoxpwa + ]; + }; + policies = { + BlockAboutConfig = false; + DefaultDownloadDirectory = "\${home}/Downloads"; + # Check about:support for extension/add-on ID strings. + # Valid strings for installation_mode are "allowed", "blocked", + # "force_installed" and "normal_installed". + ExtensionSettings = { + "*" = { + "installation_mode" = "blocked"; + }; + "uBlock0@raymondhill.net" = { + installation_mode = "allowed"; + }; + "gdpr@cavi.au.dk" = { + installation_mode = "allowed"; + }; + "{5cce4ab5-3d47-41b9-af5e-8203eea05245}" = { + installation_mode = "allowed"; + }; + "plasma-browser-integration@kde.org" = { + installation_mode = "allowed"; + }; + "jid1-MnnxcxisBPnSXQ@jetpack" = { + installation_mode = "allowed"; + }; + "firefoxpwa@filips.si" = { + installation_mode = "allowed"; + }; + "sponsorBlocker@ajay.app" = { + installation_mode = "allowed"; + }; + "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" = { + installation_mode = "allowed"; + }; + "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}" = { + installation_mode = "allowed"; + }; + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { + installation_mode = "allowed"; + }; + }; + DisableTelemetry = true; + DisableFirefoxStudies = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + DisablePocket = true; + DisableFirefoxAccounts = false; + DisableAccounts = false; + DisableFirefoxScreenshots = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DontCheckDefaultBrowser = true; + DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" + DisplayMenuBar = "always"; # alternatives: "always", "never" or "default-on" + SearchBar = "unified"; # alternative: "separate" + }; + profiles = { + default = { + id = 0; + name = "default"; + isDefault = true; + extensions = { + force = true; + packages = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + plasma-integration + stylus + violentmonkey + consent-o-matic + privacy-badger + sponsorblock + pwas-for-firefox + control-panel-for-twitter + bitwarden + ]; + settings = { + "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = { + force = true; + settings = { + dbInChromeStorage = true; + }; }; }; }; - }; - settings = { - "extensions.autoDisableScopes" = 0; # enables all extensions automatically - "xpinstall.signatures.required" = false; - "extensions.update.autoUpdateDefault" = false; - "extensions.update.enabled" = false; - "browser.search.defaultenginename" = "google"; - "browser.search.order.1" = "google"; - "browser.toolbars.bookmarks.visibility" = "newtab"; + settings = { + "extensions.autoDisableScopes" = 0; # enables all extensions automatically + "xpinstall.signatures.required" = false; + "extensions.update.autoUpdateDefault" = false; + "extensions.update.enabled" = false; + "browser.search.defaultenginename" = "google"; + "browser.search.order.1" = "google"; + "browser.toolbars.bookmarks.visibility" = "newtab"; - "signon.rememberSignons" = false; - "widget.use-xdg-desktop-portal.file-picker" = 1; - "browser.aboutConfig.showWarning" = false; - "browser.compactmode.show" = true; - "browser.cache.disk.enable" = true; # Set to false if you have a HDD - "browser.warnOnQuitShortcut" = false; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "widget.disable-workspace-management" = true; - "browser.contentblocking.category" = { - Value = "strict"; - Status = "locked"; + "signon.rememberSignons" = false; + "widget.use-xdg-desktop-portal.file-picker" = 1; + "browser.aboutConfig.showWarning" = false; + "browser.compactmode.show" = true; + "browser.cache.disk.enable" = true; # Set to false if you have a HDD + "browser.warnOnQuitShortcut" = false; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "widget.disable-workspace-management" = true; + "browser.contentblocking.category" = { + Value = "strict"; + Status = "locked"; + }; + "widget.gtk.global-menu.enabled" = true; + "widget.gtk.global-menu.wayland.enabled" = true; + "browser.tabs.inTitlebar" = 0; + "extensions.pocket.enabled" = false; + "extensions.screenshots.disabled" = true; + "browser.topsites.contile.enabled" = false; + "browser.formfill.enable" = false; + "browser.search.suggest.enabled" = false; + "browser.search.suggest.enabled.private" = false; + "browser.urlbar.suggest.searches" = false; + "browser.urlbar.showSearchSuggestionsFirst" = false; + "browser.newtabpage.activity-stream.feeds.section.topstories" = false; + "browser.newtabpage.activity-stream.feeds.snippets" = false; + "browser.newtabpage.activity-stream.feeds.topsites" = false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; + "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; + "browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.system.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.showWeather" = false; + + # Disable Firefox's machine learning (AI) features + "browser.ml.enable" = false; + + # For browser toolbox/live editing user CSS + "devtools.chrome.enabled" = true; + "devtools.debugger.remote-enabled" = true; + + # Vertical tabs + "sidebar.verticalTabs" = true; + "sidebar.verticalTabs.dragToPinPromo.dismissed" = true; + # these are ordered right to left for some fucking reason + "browser.uiCustomization.navBarWhenVerticalTabs" = [ + "unified-extensions-button" + "fxa-toolbar-menu-button" + "downloads-button" + "urlbar-container" + "stop-reload-button" + "forward-button" + "back-button" + ]; + }; + bookmarks = { + force = true; + settings = [ + { + name = "Nix sites"; + toolbar = true; + bookmarks = [ + { + name = "NixOS"; + url = "https://nixos.org/"; + } + { + name = "Home Manager Appendix A"; + url = "https://nix-community.github.io/home-manager/options.xhtml"; + } + ]; + } + ]; + }; + search = { + force = true; + default = "google"; + order = [ + "google" + ]; }; - "widget.gtk.global-menu.enabled" = true; - "widget.gtk.global-menu.wayland.enabled" = true; - "browser.tabs.inTitlebar" = 0; - "extensions.pocket.enabled" = false; - "extensions.screenshots.disabled" = true; - "browser.topsites.contile.enabled" = false; - "browser.formfill.enable" = false; - "browser.search.suggest.enabled" = false; - "browser.search.suggest.enabled.private" = false; - "browser.urlbar.suggest.searches" = false; - "browser.urlbar.showSearchSuggestionsFirst" = false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; - "browser.newtabpage.activity-stream.feeds.snippets" = false; - "browser.newtabpage.activity-stream.feeds.topsites" = false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; - "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; - "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; - "browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.system.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.showWeather" = false; - - # Disable Firefox's machine learning (AI) features - "browser.ml.enable" = false; - - # For browser toolbox/live editing user CSS - "devtools.chrome.enabled" = true; - "devtools.debugger.remote-enabled" = true; - - # Vertical tabs - "sidebar.verticalTabs" = true; - "sidebar.verticalTabs.dragToPinPromo.dismissed" = true; - # these are ordered right to left for some fucking reason - "browser.uiCustomization.navBarWhenVerticalTabs" = [ - "unified-extensions-button" - "fxa-toolbar-menu-button" - "downloads-button" - "urlbar-container" - "stop-reload-button" - "forward-button" - "back-button" - ]; - }; - bookmarks = { - force = true; - settings = [ - { - name = "Nix sites"; - toolbar = true; - bookmarks = [ - { - name = "NixOS"; - url = "https://nixos.org/"; - } - { - name = "Home Manager Appendix A"; - url = "https://nix-community.github.io/home-manager/options.xhtml"; - } - ]; - } - ]; - }; - search = { - force = true; - default = "google"; - order = [ - "google" - ]; }; }; };