diff --git a/home/browsers/firefox/userChrome.css b/home/browsers/firefox/chrome/theme/colors.css similarity index 78% rename from home/browsers/firefox/userChrome.css rename to home/browsers/firefox/chrome/theme/colors.css index 277cfa6..065ef5c 100644 --- a/home/browsers/firefox/userChrome.css +++ b/home/browsers/firefox/chrome/theme/colors.css @@ -4,7 +4,7 @@ .tabbrowser-tab[selected="true"] .tab-background { border: 1px solid #313244 !important; } - --toolbar-bgcolor: rgb(30, 30, 46) !important; + --toolbar-bgcolor: rgb(24, 24, 37) !important; --toolbox-non-lwt-bgcolor: rgb(17, 17, 27) !important; --toolbox-non-lwt-textcolor: rgb(205, 214, 244) !important; --input-bgcolor: rgb(24, 24, 37) !important; @@ -18,36 +18,36 @@ .tab-background[multiselected] { --focus-outline-color: rgb(49, 50, 68); } - --arrowpanel-background: rgb(30, 30, 46) !important; + --arrowpanel-background: rgb(49, 50, 68) !important; --arrowpanel-color: rgb(205, 214, 244) !important; --toolbarbutton-active-background: rgb(108, 112, 134) !important; &:where([tabsintitlebar]) { --toolbox-non-lwt-bgcolor-inactive: rgb(17, 17, 27) !important; } - --toolbarbutton-icon-fill-attention: rgb(249, 226, 175) !important; + --toolbarbutton-icon-fill-attention: rgb(205, 214, 244) !important; --toolbarbutton-icon-fill: rgb(205, 214, 244) !important; --arrowpanel-border-color: rgb(49, 50, 68) !important; --urlbarView-highlight-color: rgb(205, 214, 244) !important; --urlbarView-highlight-background: rgb(108, 112, 134) !important; #tabbrowser-tabs { - --tab-loading-fill: rgb(249, 226, 175) !important; + --tab-loading-fill: rgb(205, 214, 244) !important; } --tab-selected-bgcolor: rgb(30, 30, 46) !important; --tab-selected-textcolor: rgb(205, 214, 244) !important; - --chrome-content-separator-color: rgb(30, 30, 46) !important; + --chrome-content-separator-color: rgb(49, 50, 68) !important; --toolbar-field-focus-border-color: rgb(49, 50, 68) !important; --input-border-color: rgb(49, 50, 68) !important; --toolbar-field-border-color: var(--input-border-color) !important; --toolbar-field-focus-background-color: rgb(30, 30, 46) !important; #urlbar-input:focus::selection, .searchbar-textbox:focus::selection { - color: rgb(30, 30, 46); + color: rgb(49, 50, 68); } #urlbar-input:focus::selection, .searchbar-textbox:focus::selection { - background-color: rgb(249, 226, 175); + background-color: rgb(205, 214, 244); } - --toolbarseparator-color: rgb(249, 226, 175) !important; + --toolbarseparator-color: rgb(205, 214, 244) !important; } } @@ -57,7 +57,7 @@ .tabbrowser-tab[selected="true"] .tab-background { border: 1px solid #ccd0da !important; } - --toolbar-bgcolor: rgb(239, 241, 245) !important; + --toolbar-bgcolor: rgb(230, 233, 239) !important; --toolbox-non-lwt-bgcolor: rgb(220, 224, 232) !important; --toolbox-non-lwt-textcolor: rgb(76, 79, 105) !important; --input-bgcolor: rgb(230, 233, 239) !important; @@ -65,11 +65,11 @@ --input-color: rgb(76, 79, 105) !important; --toolbar-field-color: var(--input-color) !important; .tab-background[selected]:not([multiselected]) { - outline: 1px solid rgb(223, 142, 29); + outline: 1px solid rgb(76, 79, 105); outline-offset: -1px; } .tab-background[multiselected] { - --focus-outline-color: rgb(223, 142, 29); + --focus-outline-color: rgb(76, 79, 105); } --arrowpanel-background: rgb(239, 241, 245) !important; --arrowpanel-color: rgb(76, 79, 105) !important; @@ -77,29 +77,29 @@ &:where([tabsintitlebar]) { --toolbox-non-lwt-bgcolor-inactive: rgb(220, 224, 232) !important; } - --toolbarbutton-icon-fill-attention: rgb(223, 142, 29) !important; + --toolbarbutton-icon-fill-attention: rgb(76, 79, 105) !important; --toolbarbutton-icon-fill: rgb(76, 79, 105) !important; - --arrowpanel-border-color: rgb(223, 142, 29) !important; + --arrowpanel-border-color: rgb(76, 79, 105) !important; --urlbarView-highlight-color: rgb(76, 79, 105) !important; --urlbarView-highlight-background: rgb(156, 160, 176) !important; #tabbrowser-tabs { - --tab-loading-fill: rgb(223, 142, 29) !important; + --tab-loading-fill: rgb(76, 79, 105) !important; } --tab-selected-bgcolor: rgb(239, 241, 245) !important; --tab-selected-textcolor: rgb(76, 79, 105) !important; --chrome-content-separator-color: rgb(239, 241, 245) !important; - --toolbar-field-focus-border-color: rgb(223, 142, 29) !important; + --toolbar-field-focus-border-color: rgb(76, 79, 105) !important; --input-border-color: rgb(239, 241, 245) !important; --toolbar-field-border-color: var(--input-border-color) !important; --toolbar-field-focus-background-color: rgb(239, 241, 245) !important; #urlbar-input:focus::selection, .searchbar-textbox:focus::selection { - color: rgb(239, 241, 245); + color: rgb(204, 208, 218); } #urlbar-input:focus::selection, .searchbar-textbox:focus::selection { - background-color: rgb(223, 142, 29); + background-color: rgb(76, 79, 105); } - --toolbarseparator-color: rgb(223, 142, 29) !important; + --toolbarseparator-color: rgb(76, 79, 105) !important; } } diff --git a/home/browsers/firefox/chrome/theme/hide.css b/home/browsers/firefox/chrome/theme/hide.css new file mode 100644 index 0000000..938830c --- /dev/null +++ b/home/browsers/firefox/chrome/theme/hide.css @@ -0,0 +1,7 @@ +#tracking-protection-icon-container { + display: none; +} + +.bookmark-item[container] { + list-style-image: url("chrome://global/skin/dirListing/folder.png") !important; +} diff --git a/home/browsers/firefox/chrome/userChrome.css b/home/browsers/firefox/chrome/userChrome.css new file mode 100644 index 0000000..46cf3bf --- /dev/null +++ b/home/browsers/firefox/chrome/userChrome.css @@ -0,0 +1,2 @@ +@import "./theme/colors.css"; +@import "./theme/hide.css"; diff --git a/home/browsers/firefox/default.nix b/home/browsers/firefox/default.nix index 9da1d6b..34752d9 100644 --- a/home/browsers/firefox/default.nix +++ b/home/browsers/firefox/default.nix @@ -1,11 +1,17 @@ # https://discourse.nixos.org/t/combining-best-of-system-firefox-and-home-manager-firefox-settings/37721 -{ pkgs, ... }: +# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265 +{ pkgs, config, ... }: { home.sessionVariables = rec { MOZ_GMP_PATH = "${pkgs.widevine-firefox}/gmp-widevinecdm/system-installed"; }; + home.file.".mozilla/firefox/default/chrome" = { + source = ./chrome; + force = true; + }; + programs.firefox = { enable = true; package = pkgs.firefox.override { @@ -13,12 +19,68 @@ pkgs.firefoxpwa ]; }; + policies = { + BlockAboutConfig = true; + 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"; + }; + }; + 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; - userChrome = ./userChrome.css; extensions = { force = true; packages = with pkgs.nur.repos.rycee.firefox-addons; [