From 6206aaf88532d153f0e01e22772b7f6e1c979afd Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Mon, 19 Aug 2024 14:36:34 +0530 Subject: Enabled user js for firefox + global keybindings manager --- modules/firefox.home/default.nix | 73 ++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 14 deletions(-) (limited to 'modules/firefox.home/default.nix') diff --git a/modules/firefox.home/default.nix b/modules/firefox.home/default.nix index b315a36..e6f5aad 100644 --- a/modules/firefox.home/default.nix +++ b/modules/firefox.home/default.nix @@ -12,15 +12,17 @@ let "https://addons.mozilla.org/firefox/downloads/file/4218479/font_inspect-0.5.8.xpi" "https://addons.mozilla.org/firefox/downloads/file/4314064/react_devtools-5.3.1.xpi" - # content + # others "https://addons.mozilla.org/firefox/downloads/file/4332776/languagetool-8.11.6.xpi" "https://addons.mozilla.org/firefox/downloads/file/4317971/darkreader-4.9.88.xpi" + "https://addons.mozilla.org/firefox/downloads/file/3970625/screen_recorder-0.1.8.xpi" ]; # about:config preferences = { "browser.newtabpage.enabled" = false; "browser.startup.homepage" = homepage-url; + "browser.newtab.url" = homepage-url; "browser.startup.blankWindow" = false; "browser.tabs.drawInTitlebar" = true; @@ -29,17 +31,21 @@ let "browser.theme.toolbar-theme" = 0; "browser.aboutConfig.showWarning" = false; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "devtools.theme" = "dark"; - "devtools.toolbox.alwaysOnTop" = true; - "devtools.toolbox.host" = "window"; + # "devtools.theme" = "dark"; + "ui.systemUsesDarkTheme" = 2; + # "devtools.toolbox.alwaysOnTop" = true; + # "devtools.toolbox.host" = "window"; "layers.acceleration.force-enabled" = true; "gfx.webrender.all" = true; - "svg.context-properties.content.enabled" = true; + # "svg.context-properties.content.enabled" = true; + "widget.gtk.rounded-bottom-corners.enabled" = true; + "browser.urlbar.suggest.calculator" = true; + "browser.urlbar.unitConversion.enabled" = true; "extensions.pocket.enabled" = false; "extensions.pocket.showHome" = false; "browser.urlbar.suggest.pocket" = false; - "privacy.donottrackheader.enabled" = true; + # "privacy.donottrackheader.enabled" = true; "privacy.globalprivacycontrol.enabled" = true; "browser.search.suggest.enabled" = false; "browser.urlbar.suggest.searches" = false; @@ -48,11 +54,23 @@ let "browser.dataFeatureRecommendations.enabled" = false; "extensions.htmlaboutaddons.recommendations.enabled" = false; + "layout.css.has-selector.enabled" = true; "browser.toolbars.bookmarks.visibility" = "never"; - "identity.fxaccounts.toolbar.enabled" = false; + # "identity.fxaccounts.toolbar.enabled" = false; "browser.tabs.insertAfterCurrent" = true; "browser.urlbar.shortcuts.bookmarks" = false; "browser.urlbar.suggest.bookmark" = false; + "browser.newtab.privateAllowed" = true; + + "browser.download.forbid_open_with" = true; + "browser.download.autohideButton" = true; + "browser.download.useDownloadDir" = false; + + # HAcky stuff + # "general.config.sandbox_enabled" = false; + # "general.config.obscure_value" = false; + "xpinstall.signatures.required" = false; + "extensions.install_origins.enabled" = false; }; # https://mozilla.github.io/policy-templates @@ -60,30 +78,40 @@ let ManagedBookmarks = [ { toplevel_name = "Managed bookmarks"; } { name = "Daily Dev"; url = "https://app.daily.dev"; } + { name = "Email: Microsoft Outlook"; url = "https://outlook.office365.com/mail/"; } + { name = "Email: GMail"; url = "https://mail.google.com/mail/u/0/"; } # { name = "Shtuff"; children = [] } ]; DisplayBookmarksToolbar = "never"; NoDefaultBookmarks = true; - DisableTelemetry = true; + DisableAppUpdate = true; + DisableSystemAddonUpdate = true; + DisableProfileImport = true; DisableFirefoxStudies = true; + DisableTelemetry = true; + DisableFeedbackCommands = true; + DisablePocket = true; DisableAccounts = true; DontCheckDefaultBrowser = true; OfferToSaveLogins = false; PasswordManagerEnabled = false; - DefaultDownloadDirectory = "\${home}/Downloads/firefox"; + DefaultDownloadDirectory = "${config.home.homeDirectory}/Downloads/firefox"; NewTabPage = false; Homepage = { URL = homepage-url; StartPage = "previous-session"; }; + OverrideFirstRunPage = ""; # PopupBlocking = []; SearchEngines = { Default = "DuckDuckGo"; SearchSuggestEnabled = false; + Remove = [ "Google" "Bing" "Amazon.com" "eBay" "Wikipedia" ]; + PreventInstalls = false; Add = [ { Name = "DuckDuckGo"; URLTemplate = "https://duckduckgo.com/?q={searchTerms}"; - Alias = "google"; + Alias = "ddg"; } { Name = "Google"; @@ -107,12 +135,30 @@ let # }; # }; - Extensions = { Install = extensions; }; + Extensions = { + Install = extensions; + Uninstall = [ + "google@search.mozilla.org" + "bing@search.mozilla.org" + "amazondotcom@search.mozilla.org" + "ebay@search.mozilla.org" + "wikipedia@search.mozilla.org" + ]; + }; + ExtensionSettings = { + "google@search.mozilla.org".installation_mode = "blocked"; + "bing@search.mozilla.org".installation_mode = "blocked"; + "amazondotcom@search.mozilla.org".installation_mode = "blocked"; + "ebay@search.mozilla.org".installation_mode = "blocked"; + "wikipedia@search.mozilla.org".installation_mode = "blocked"; + }; Preferences = lib.mapAttrs (_key: val: { Status = "locked"; Value = val; }) preferences; }; - firefox = pkgs.wrapFirefox unwrapped-firefox-package {}; + firefox = pkgs.wrapFirefox unwrapped-firefox-package { + extraPrefs = builtins.readFile ./autoconfig.js; + }; profilePath = "default"; in { @@ -121,14 +167,13 @@ in { package = firefox; nativeMessagingHosts = [ pkgs.tridactyl-native ]; - policies = policies; }; home.file = { ".config/tridactyl".source = ./tridactyl; - ".mozilla/firefox/${profilePath}/chrome/userChrome.css".text = builtins.readFile ./userChrome.css; + ".mozilla/firefox/${profilePath}/chrome".source = ./chrome; ".mozilla/firefox/profiles.ini".text = lib.generators.toINI {} { Profile1 = { -- cgit v1.3.1