From d51c13ef6c0c0e9ae576b67334a802039383dc55 Mon Sep 17 00:00:00 2001 From: Frost-Phoenix <67cyril6767@gmail.com> Date: Wed, 8 Nov 2023 22:36:37 +0100 Subject: [PATCH] test firefox config --- modules/home/firefox/addons.nix | 23 + modules/home/firefox/default.nix | 349 ++++++++++++--- modules/home/firefox/startpage.html | 79 ++++ modules/home/firefox/userChrome.css | 642 +++++++++------------------- 4 files changed, 577 insertions(+), 516 deletions(-) create mode 100644 modules/home/firefox/addons.nix create mode 100644 modules/home/firefox/startpage.html diff --git a/modules/home/firefox/addons.nix b/modules/home/firefox/addons.nix new file mode 100644 index 0000000..601e609 --- /dev/null +++ b/modules/home/firefox/addons.nix @@ -0,0 +1,23 @@ +{lib, ...}: { + os.nixpkgs.overlays = [ + (_final: prev: let + inherit (prev.nur.repos.rycee.firefox-addons) buildFirefoxXpiAddon; + in { + firefox-addons = { + better-history-ng = buildFirefoxXpiAddon { + pname = "better-history-ng"; + version = "1.0.2"; + addonId = "{058af685-fc17-47a4-991a-bab91a89533d}"; + url = "https://github.com/Christoph-Wagner/firefox-better-history-ng/releases/download/v1.0.2/2c2e37a17c4a4d558bd0-1.0.2.xpi"; + sha256 = "sha256-ryl34Z8pRJhrBgvksqnx678pLKV0YOau61tnJGvk4K8="; + meta = with lib; { + homepage = "https://github.com/Christoph-Wagner/firefox-better-history-ng"; + description = "A Better History page inspired by Vivaldi tent"; + license = licenses.unlicense; + platforms = platforms.all; + }; + }; + }; + }) + ]; +} \ No newline at end of file diff --git a/modules/home/firefox/default.nix b/modules/home/firefox/default.nix index 9124059..61c3fa2 100755 --- a/modules/home/firefox/default.nix +++ b/modules/home/firefox/default.nix @@ -1,74 +1,293 @@ -{ config, pkgs, theme, inputs, ... }: { - programs.firefox = - let - userChrome = pkgs.substituteAll { + pkgs, + lib, + config, + theme, + ... +}: let + cfg = config.programs.firefox; + inherit (lib) mkEnableOption mkIf; +in { + imports = [./addons.nix]; + + options.programs.firefox = { + enable = mkEnableOption "firefox"; + }; + + config = mkIf cfg.enable { + os.environment.sessionVariables = { + DEFAULT_BROWSER = "firefox"; + }; + + nur.enable = true; + + hm.programs.firefox = let + startpage = pkgs.substituteAll { + src = ./startpage.html; + inherit (theme) wallpaper; + }; + userChrome = builtins.readFile (pkgs.substituteAll { src = ./userChrome.css; - }; - in - { + backgroundColor = "#${theme.backgroundColor.toHexRGBA}"; + }); + in { enable = true; - package = pkgs.wrapFirefox pkgs.firefox-unwrapped { - extraPolicies = { - CaptivePortal = false; - DisableFirefoxStudies = true; - DisablePocket = true; - DisableTelemetry = true; - DisableFirefoxAccounts = true; - NoDefaultBookmarks = true; - OfferToSaveLogins = false; - OfferToSaveLoginsDefault = false; - PasswordManagerEnabled = false; - FirefoxHome = { - Search = false; - Pocket = false; - Snippets = false; - TopSites = false; - Highlights = false; - }; - UserMessaging = { - ExtensionRecommendations = false; - SkipOnboarding = true; - }; - }; + profiles.default = { + settings = {}; + isDefault = true; + inherit userChrome; + extensions = with pkgs.nur.repos.rycee.firefox-addons; + with pkgs.firefox-addons; [ + vimium-c + sponsorblock + ublock-origin + bitwarden + sidebery + firefox-translations + better-history-ng + wayback-machine + ]; }; - profiles = { - default = { - id = 0; - name = "fahim"; - search = { - force = true; - default = "Google"; - engines = { - "NixOS Search" = { - urls = [{ template = "https://search.nixos.org/packages?channel=23.05&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; }]; - iconUpdateURL = "https://nixos.wiki/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "@ns" ]; + package = with pkgs; + wrapFirefox firefox-beta-unwrapped { + extraPolicies = { + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + DisableFormHistory = true; + DisplayBookmarksToolbar = true; + DontCheckDefaultBrowser = true; + FirefoxHome = { + Pocket = false; + Snippets = false; + }; + PasswordManagerEnabled = false; + # PromptForDownloadLocation = true; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + ExtensionSettings = { + # @ytb --> YouTube + # @gh --> GitHub + # @nix --> Nix Package + "github@search" = { + installation_mode = "force_installed"; + install_url = "https://raw.githubusercontent.com/mlyxshi/FFExtension/main/github-search.xpi"; }; - "Wikipedia (en)".metaData.alias = "@wiki"; - "Amazon.com".metaData.hidden = true; - "Bing".metaData.hidden = true; - "eBay".metaData.hidden = true; + + "youtube@search" = { + installation_mode = "force_installed"; + install_url = "https://raw.githubusercontent.com/mlyxshi/FFExtension/main/youtube-search.xpi"; + }; + + "nix.package@search" = { + installation_mode = "force_installed"; + install_url = "https://raw.githubusercontent.com/mlyxshi/FFExtension/main/nix-search.xpi"; + }; + + "ebay@search.mozilla.org".installation_mode = "blocked"; + "amazondotcom@search.mozilla.org".installation_mode = "blocked"; + "bing@search.mozilla.org".installation_mode = "blocked"; + "ddg@search.mozilla.org".installation_mode = "blocked"; + "wikipedia@search.mozilla.org".installation_mode = "blocked"; + }; + Preferences = { + "browser.toolbars.bookmarks.visibility" = "never"; + "browser.fullscreen.autohide" = false; + "media.ffmpeg.vaapi.enabled" = true; + "media.hardware-video-decoding.force-enabled" = true; + "general.smoothScroll.msdPhysics.enabled" = true; + "layout.frame_rate" = 60; + "layout.css.backdrop-filter.enabled" = true; + # "layout.css.devPixelsPerPx" = "1.2"; + "layout.css.devPixelsPerPx" = "-1.0"; + "devtools.debugger.remote-enabled" = true; + "devtools.chrome.enabled" = true; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "browser.startup.homepage" = "file://${startpage}"; + "browser.newtabpage.enabled" = false; + # "general.useragent.override" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"; + # "browser.uiCustomization.state" = '' + # {"placements":{"widget-overflow-fixed-list":["downloads-button","nixos_bitwarden-browser-action","nixos_ublock-browser-action","nixos_sponsor-block-browser-action","nixos_vimium-ff-browser-action","nixos_stylus-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","ublock0_raymondhill_net-browser-action","stop-reload-button","add-ons-button","print-button"],"nav-bar":["back-button","forward-button","urlbar-container","_b2c51689-0095-472b-b900-2b3911fd5089_-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","ublock0_raymondhill_net-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_b2c51689-0095-472b-b900-2b3911fd5089_-browser-action","_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action","_e4a8a97b-f2ed-450b-b12d-ee082ba24781_-browser-action","nixos_vimium-ff-browser-action","nixos_ublock-browser-action","nixos_stylus-browser-action","nixos_bitwarden-browser-action","nixos_sponsor-block-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list"],"currentVersion":17,"newElementCount":11} + # ''; + + # Arkenfox stuff + # https://github.com/arkenfox/user.js/wiki/ + "browser.aboutConfig.showWarning" = false; + "browser.shell.checkDefaultBrowser" = false; + "browser.startup.page" = 1; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.default.sites" = ""; + "geo.provider.use_corelocation" = false; + "geo.provider.use_gpsd" = false; + "geo.provider.use_geoclue" = false; + "geo.enabled" = false; + "browser.region.network.url" = ""; + "browser.region.update.enabled" = false; + "intl.accept_languages" = "en-US = en"; + "javascript.use_us_english_locale" = true; + "extensions.getAddons.showPane" = false; + "extensions.htmlaboutaddons.recommendations.enabled" = false; + "browser.discovery.enabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.server" = "data: ="; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.updatePing.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + "browser.ping-centre.telemetry" = false; + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "app.shield.optoutstudies.enabled" = false; + "app.normandy.enabled" = false; + "app.normandy.api_url" = ""; + "breakpad.reportURL" = ""; + "browser.tabs.crashReporting.sendReport" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; + "captivedetect.canonicalURL" = ""; + "network.captive-portal-service.enabled" = false; + "network.connectivity-service.enabled" = false; + "browser.safebrowsing.downloads.remote.enabled" = false; + "network.prefetch-next" = false; + "network.dns.disablePrefetch" = true; + "network.predictor.enabled" = false; + "network.predictor.enable-prefetch" = false; + "network.http.speculative-parallel-limit" = 0; + "browser.places.speculativeConnect.enabled" = false; + "network.dns.disableIPv6" = true; + "network.proxy.socks_remote_dns" = true; + "network.file.disable_unc_paths" = true; + "network.gio.supported-protocols" = ""; + "keyword.enabled" = true; + "browser.fixup.alternate.enabled" = false; + "browser.search.suggest.enabled" = false; + "browser.urlbar.suggest.searches" = false; + "browser.urlbar.speculativeConnect.enabled" = false; + "browser.urlbar.dnsResolveSingleWordsAfterSearch" = 0; + "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; + "browser.urlbar.suggest.quicksuggest.sponsored" = false; + "browser.formfill.enable" = false; + "signon.autofillForms" = false; + "signon.formlessCapture.enabled" = false; + "network.auth.subresource-http-auth-allow" = 1; + "browser.cache.disk.enable" = false; + "browser.privatebrowsing.forceMediaMemoryCache" = true; + "media.memory_cache_max_size" = 65536; + "browser.sessionstore.privacy_level" = 2; + "toolkit.winRegisterApplicationRestart" = false; + "browser.shell.shortcutFavicons" = false; + "security.ssl.require_safe_negotiation" = true; + "security.tls.enable_0rtt_data" = false; + "security.OCSP.enabled" = 1; + "security.OCSP.require" = true; + "security.family_safety.mode" = 0; + "security.cert_pinning.enforcement_level" = 2; + "security.remote_settings.crlite_filters.enabled" = true; + "security.pki.crlite_mode" = 2; + "security.mixed_content.block_display_content" = true; + "dom.security.https_only_mode" = true; + "dom.security.https_only_mode_send_http_background_request" = false; + "security.ssl.treat_unsafe_negotiation_as_broken" = true; + "browser.ssl_override_behavior" = 1; + "browser.xul.error_pages.expert_bad_cert" = true; + "network.http.referer.XOriginPolicy" = 0; + "network.http.referer.XOriginTrimmingPolicy" = 2; + "privacy.userContext.enabled" = true; + "privacy.userContext.ui.enabled" = true; + "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; + "media.peerconnection.ice.default_address_only" = true; + "media.eme.enabled" = true; + "dom.disable_beforeunload" = true; + "dom.disable_window_move_resize" = true; + "dom.disable_open_during_load" = true; + "dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; + "accessibility.force_disabled" = 1; + "beacon.enabled" = false; + "browser.helperApps.deleteTempFileOnExit" = true; + "browser.pagethumbnails.capturing_disabled" = true; + "browser.uitour.enabled" = false; + "browser.uitour.url" = ""; + # "devtools.chrome.enabled" = false; + # "devtools.debugger.remote-enabled" = false; + "middlemouse.contentLoadURL" = false; + "permissions.manager.defaultsUrl" = ""; + "webchannel.allowObject.urlWhitelist" = ""; + "network.IDN_show_punycode" = true; + "pdfjs.disabled" = false; + "pdfjs.enableScripting" = false; + "network.protocol-handler.external.ms-windows-store" = false; + "permissions.delegation.enabled" = false; + "browser.download.useDownloadDir" = true; + "browser.download.alwaysOpenPanel" = false; + "browser.download.manager.addToRecentDocs" = false; + "browser.download.always_ask_before_handling_new_types" = true; + "extensions.enabledScopes" = 5; + "extensions.autoDisableScopes" = 15; + "extensions.postDownloadThirdPartyPrompt" = false; + "browser.contentblocking.category" = "strict"; + "privacy.partition.serviceWorkers" = true; + "privacy.partition.always_partition_third_party_non_cookie_storage" = true; + "privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = false; + "privacy.sanitize.sanitizeOnShutdown" = true; + "privacy.clearOnShutdown.cache" = false; + "privacy.clearOnShutdown.downloads" = true; + "privacy.clearOnShutdown.formdata" = true; + "privacy.clearOnShutdown.history" = true; + "privacy.clearOnShutdown.sessions" = false; + "privacy.clearOnShutdown.cookies" = false; + "privacy.clearOnShutdown.offlineApps" = true; + "privacy.cpd.cache" = true; + "privacy.cpd.formdata" = true; + "privacy.cpd.history" = true; + "privacy.cpd.sessions" = true; + "privacy.cpd.offlineApps" = false; + "privacy.cpd.cookies" = false; + "privacy.sanitize.timeSpan" = 0; + "privacy.resistFingerprinting" = true; + "privacy.window.maxInnerWidth" = 1600; + "privacy.window.maxInnerHeight" = 900; + "privacy.resistFingerprinting.block_mozAddonManager" = true; + "privacy.resistFingerprinting.letterboxing" = true; + "browser.startup.blankWindow" = false; + "browser.display.use_system_colors" = false; + "widget.non-native-theme.enabled" = true; + "browser.link.open_newwindow" = 3; + "browser.link.open_newwindow.restriction" = 0; + "webgl.disabled" = true; + "extensions.blocklist.enabled" = true; + "network.http.referer.spoofSource" = false; + "security.dialog_enable_delay" = 1000; + "privacy.firstparty.isolate" = false; + "extensions.webcompat.enable_shims" = true; + "security.tls.version.enable-deprecated" = false; + "extensions.webcompat-reporter.enabled" = false; + "browser.startup.homepage_override.mstone" = "ignore"; + "browser.messaging-system.whatsNewPanel.enabled" = false; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; + "browser.urlbar.suggest.quicksuggest" = false; + "app.update.background.scheduling.enabled" = false; + "security.csp.enable" = true; + "security.ask_for_password" = 2; + "security.password_lifetime" = 5; + "dom.storage.next_gen" = true; + "network.cookie.lifetimePolicy" = 0; + "security.pki.sha1_enforcement_level" = 1; }; }; - settings = { - "general.smoothScroll" = true; - "browser.toolbars.bookmarks.visibility" = "never"; - "privacy.webrtc.legacyGlobalIndicator" = false; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.compactmode.show" = true; - }; - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - # duckduckgo-privacy-essentials - languagetool - news-feed-eradicator - tabliss - videospeed - ]; - userChrome = builtins.readFile userChrome; }; - }; }; -} + }; +} \ No newline at end of file diff --git a/modules/home/firefox/startpage.html b/modules/home/firefox/startpage.html new file mode 100644 index 0000000..067e529 --- /dev/null +++ b/modules/home/firefox/startpage.html @@ -0,0 +1,79 @@ + + + + + + + + + +
+
+
+ +
+ + \ No newline at end of file diff --git a/modules/home/firefox/userChrome.css b/modules/home/firefox/userChrome.css index 181dcb3..06ad19f 100755 --- a/modules/home/firefox/userChrome.css +++ b/modules/home/firefox/userChrome.css @@ -1,478 +1,218 @@ -#identity-box.extensionPage #identity-icon-label { +/* Sidebery */ +#main-window[titlepreface*="​​​​​"] .tabbrowser-tab { + visibility: collapse; +} + +#main-window[titlepreface*="​​​​​"] .titlebar-button { + height: 40px; +} + +#main-window[titlepreface*="​​​​​"] #nav-bar { + /* margin-top: -40px; */ +} +#main-window[titlepreface*="​​​​​"][tabsintitlebar="true"] #nav-bar { + /* margin-right: 137px; */ +} +#main-window[titlepreface*="​​​​​"] #titlebar-spacer { + background-color: var(--chrome-secondary-background-color); +} + +#main-window[titlepreface*="​​​​​"] #titlebar-buttonbox-container { + background-color: var(--chrome-secondary-background-color); +} + +#main-window[titlepreface*="​​​​​"] .titlebar-color { + background-color: var(--toolbar-bgcolor); +} + +#sidebar-box #sidebar-header { + visibility: collapse; +} + +/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 +See the above repository for updates as well as full license text. */ + +/* Show sidebar only when the cursor is over it */ +/* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ + +#sidebar-box { + --uc-sidebar-width: 47px; + --uc-sidebar-hover-width: 232px; + --uc-autohide-sidebar-delay: 050ms; /* Wait 0.6s before hiding sidebar */ + position: relative; + min-width: var(--uc-sidebar-width) !important; + width: var(--uc-sidebar-width) !important; + max-width: var(--uc-sidebar-width) !important; + z-index:1; + margin-top: -1px; +} + +#sidebar-box[positionend] { + direction: rtl; +} +#sidebar-box[positionend] > *{ + direction: ltr; +} + +#sidebar-box[positionend]:-moz-locale-dir(rtl){ + direction: ltr; +} +#sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ + direction: rtl; +} + +#sidebar-box > #sidebar { + transition: min-width 100ms cubic-bezier(0,0,0,1.01) !important; + min-width: var(--uc-sidebar-width) !important; + will-change: min-width; +} + +#sidebar-box:hover > #sidebar { + min-width: var(--uc-sidebar-hover-width) !important; + transition: min-width 100ms cubic-bezier(0,0,0,1.01) var(--uc-autohide-sidebar-delay), box-shadow 500ms linear !important; + box-shadow: 0 0 4px rgba(10,10,10, .5); + clip-path: inset(0px -15px 0px -15px); +} + +/* Add sidebar divider and give it background */ + +#sidebar, +#sidebar-header { + background-color: var(--toolbar-bgcolor) !important; + border-inline: 1px solid var(--chrome-content-separator-color); + border-inline-width: 0px 1px; +} + +#sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), +#sidebar-box[positionend] > * { + border-inline-width: 1px 0px; +} + +/* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ + +#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel { + inset-inline: auto 0px !important; +} +#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label { + margin-inline: 0px !important; + border-left-style: solid !important; +} +#sidebar-splitter{ + width: 0px !important; + background-color: #f00 !important; + border: none !important; +} + +/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_bookmarks_toolbar.css made available under Mozilla Public License v. 2.0 +See the above repository for updates as well as full license text. */ + +#PersonalToolbar{ + --uc-bm-height: 20px; /* Might need to adjust if the toolbar has other buttons */ + --uc-bm-padding: 7px; /* Vertical padding to be applied to bookmarks */ + --uc-autohide-toolbar-delay: 600ms; /* The toolbar is hidden after 0.6s */ + + /* 0deg = "show" ; 90deg = "hide" ; Set the following to control when bookmarks are shown */ + --uc-autohide-toolbar-focus-rotation: 0deg; /* urlbar is focused */ + --uc-autohide-toolbar-hover-rotation: 0deg; /* cursor is over the toolbar area */ +} + +:root[uidensity="compact"] #PersonalToolbar{ --uc-bm-padding: 1px; } +:root[uidensity="touch"] #PersonalToolbar{ --uc-bm-padding: 7px } + +#PersonalToolbar:not([customizing]){ + position: relative; + margin-bottom: calc(0px - var(--uc-bm-height) - 2 * var(--uc-bm-padding)); + transform: rotateX(90deg); + transform-origin: top; + transition: transform 135ms linear var(--uc-autohide-toolbar-delay) !important; + z-index: 1; + /* The following properties should allow the themes with trasparent toolbars to work */ + background-color: transparent !important; + background-repeat: no-repeat,no-repeat,var(--lwt-background-tiling); + --uc-bg-y: calc(-2 * (var(--tab-block-margin) + var(--toolbarbutton-inner-padding) + var(--toolbarbutton-outer-padding)) - var(--tab-min-height) - 16px - var(--bookmark-block-padding)); + background-position: top left,top left,var(--lwt-background-alignment,top left); + background-position-y:top,top,var(--uc-bg-y),var(--uc-bg-y),var(--uc-bg-y); + background-image: var(--toolbar-bgimage), linear-gradient(var(--toolbar-bgcolor),var(--toolbar-bgcolor)),var(--lwt-header-image,var(--lwt-additional-images)) !important; +} + +#PlacesToolbarItems > .bookmark-item, +#OtherBookmarks, +#PersonalToolbar > #import-button{ + padding-block: var(--uc-bm-padding) !important; +} + +#nav-bar:focus-within + #PersonalToolbar{ + transition-delay: 100ms !important; + transform: rotateX(var(--uc-autohide-toolbar-focus-rotation,0)); +} + +#navigator-toolbox:hover > #PersonalToolbar{ + transition-delay: 100ms !important; + transform: rotateX(var(--uc-autohide-toolbar-hover-rotation,0)); +} + +#navigator-toolbox:hover > #nav-bar:focus-within + #PersonalToolbar { + transform: rotateX(0); +} + +#navigator-toolbox-background { + appearance: none !important; + background: @backgroundColor@ !important; +} + +#titlebar { display: none !important; } -* { - border-radius: 2px !important; -} -#webrtcIndicator { - display: none !important; -} -#identity-box.extensionPage - #identity-icon[tooltiptext="Loaded by extension: Tabliss"] - ~ #identity-icon-label { - display: none !important; -} - -#identity-icon-box { +#nav-bar { + margin-right: 0 !important; background: none !important; } -#identity-box.extensionPage - #identity-icon[tooltiptext="Loaded by extension: Tabliss"], -#urlbar[pageproxystate="invalid"] #identity-box #identity-icon, -#tracking-protection-icon-container[hidden] - ~ #identity-box[pageproxystate="valid"].notSecure:not(.chromeUI, .localResource) - #identity-icon { - fill-opacity: var(--urlbar-icon-fill-opacity) !important; - list-style-image: url(chrome://userchrome/content/engines/google.svg) !important; +.titlebar-close { + visibility: hidden !important; } -#identity-box.extensionPage - #identity-icon[tooltiptext="Loaded by extension: Tabliss"], -#urlbar[pageproxystate="invalid"] #identity-box #identity-icon, -#tracking-protection-icon-container[hidden] - ~ #identity-box[pageproxystate="valid"].notSecure:not(.chromeUI, .localResource) - #identity-icon { - display: none !important; +.titlebar-buttonbox-container { + visibility: hidden !important; } -/*==============================================================================================* - +-----+-----+-----+-----+-----+-----+-----+ - | █▀▀ | ▄▀█ | █▀▀ | █▀▀ | ▄▀█ | █▀▄ | █▀▀ | - | █▄▄ | █▀█ | ▄▄█ | █▄▄ | █▀█ | █▄▀ | ██▄ | - +-----+-----+-----+-----+-----+-----+-----+ - Description: Minimalist, Simple, Keyboard Centered and based on SimpleFox. 🦊 - What you get is a really simple responsive one-line layout using the new Proton UI. - > SimpleFox: https://github.com/migueravila/SimpleFox - - Author: Andreas Grafen - (https://andreas.grafen.info) - - Repository: https://github.com/andreasgrafen/ag.proton - Thank you Nick, Abdallah and Benyamin for all the great suggestions for improvements! ♡ - Nick: https://github.com/nicksundermeyer) - Abdallah: https://github.com/HeiWiper) - Benyamin: https://github.com/benyaminl) - If you're looking for a **mouse-friendly** clone please check out Waterfall. - https://github.com/crambaud/waterfall -*==============================================================================================*/ - -/*---+---+---+---+---+---+ - | C | O | N | F | I | G | - +---+---+---+---+---+---*/ - -/* Feel free to tweak the following - * config settingsto your own liking. */ - -:root { - /*---+---+---+---+---+---+---+ - | C | O | L | O | U | R | S | - +---+---+---+---+---+---+---*/ - - /* Comment this block out if you want to keep the default theme colour. */ - /* This will also work with custom colours from color.firefox.com. */ - - /* Theme Colour Suggestions - * Dark Light */ - --window-colour: #1F1F1F; /* #FAFAFC; */ - - --secondary-colour: #595959; /* #EAEAEC; */ - --inverted-colour: #cdd6f4; /* #1E2021; */ - --blue: #89dceb; - - /* Containter Tab Colours */ - --uc-identity-color-blue: #89b4fa; - --uc-identity-color-teal: #94e2d5; - --uc-identity-color-green: #a6e3a1; - --uc-identity-color-yellow: #f9e2af; - --uc-identity-color-orange: #fab387; - --uc-identity-color-red: #f38ba8; - --uc-identity-color-pink: #f5c2e7; - --uc-identity-color-purple: #b4befe; - - /* URL colour in URL bar suggestions */ - --urlbar-popup-url-color: var(--uc-identity-color-purple) !important; - - /*---+---+---+---+---+---+---+ - | V | I | S | U | A | L | S | - +---+---+---+---+---+---+---*/ - - /* global border radius */ - --uc-border-radius: 4px; - - /* dynamic url bar width settings */ - --uc-urlbar-width: clamp(200px, 40vw, 500px); - - /* dynamic tab width settings */ - --uc-active-tab-width: clamp(100px, 20vw, 300px); - --uc-inactive-tab-width: clamp(50px, 15vw, 200px); - - /* if active always shows the tab close button */ - --show-tab-close-button: none; /* DEFAULT: -moz-inline-box; */ - - /* if active only shows the tab close button on hover*/ - --show-tab-close-button-hover: none; /* DEFAULT: -moz-inline-box; */ - - /* adds left and right margin to the container-tabs indicator */ - --container-tabs-indicator-margin: 10px; +#main-window { + background: none !important; } -/*---+---+---+---+---+---+---+ - | B | U | T | T | O | N | S | - +---+---+---+---+---+---+---*/ - -#back-button, -#forward-button { - display: none !important; +#navigator-toolbox { + border: none !important; } -/* bookmark icon */ -#star-button { - display: none !important; -} -/* zoom indicator */ -#urlbar-zoom-button { - display: none !important; -} - -/* Make button small as Possible, hidden out of sight */ -#PanelUI-button { - margin-top: -5px; - margin-bottom: 44px; -} - -#PanelUI-menu-button { - padding: 0px !important; - max-height: 1px; - - list-style-image: none !important; -} - -#PanelUI-menu-button .toolbarbutton-icon { - width: 1px !important; - -} -#PanelUI-menu-button .toolbarbutton-badge-stack { - padding: 0px !important; -} - -#reader-mode-button { - display: none !important; -} - -/* tracking protection shield icon */ -#tracking-protection-icon-container { - display: none !important; -} - -/* #identity-box { display: none !important } /* hides encryption AND permission items */ -#identity-permission-box { - display: none !important; -} /* only hodes permission items */ - -/* e.g. playing indicator (secondary - not icon) */ -.tab-secondary-label { - display: none !important; -} - -#pageActionButton { - display: none !important; -} +#urlbar-go-button, +#identity-box, +#star-button-box, +#pageActionButton, +#tracking-protection-icon-container, #page-action-buttons { display: none !important; } -#urlbar-go-button { - display: none !important; +#urlbar-input { + padding-left: 5px !important; } -/*=============================================================================================*/ - -/*---+---+---+---+---+---+ - | L | A | Y | O | U | T | - +---+---+---+---+---+---*/ - -/* No need to change anything below this comment. - * Just tweak it if you want to tweak the overall layout. c: */ - -:root { - --uc-theme-colour: var(--window-colour, var(--toolbar-bgcolor)); - --uc-hover-colour: var(--secondary-colour, rgba(0, 0, 0, 0.2)); - --uc-inverted-colour: var(--inverted-colour, var(--toolbar-color)); - --cg-blue-colour: var(--uc-identity-color-blue); - --button-bgcolor: var(--uc-theme-colour) !important; - --button-hover-bgcolor: var(--uc-hover-colour) !important; - --button-active-bgcolor: var(--uc-hover-colour) !important; - - --toolbarbutton-border-radius: var(--uc-border-radius) !important; - - --tab-border-radius: var(--uc-border-radius) !important; - --lwt-text-color: var(--uc-inverted-colour) !important; - --lwt-tab-text: var(--uc-inverted-colour) !important; - --arrowpanel-border-radius: var(--uc-border-radius) !important; - - --tab-block-margin: 2px !important; -} - -window, -#main-window, -#toolbar-menubar, -#TabsToolbar, -#PersonalToolbar, -#navigator-toolbox, -#sidebar-box, -#nav-bar { - -moz-appearance: none !important; - - border: none !important; - box-shadow: none !important; - background: var(--uc-theme-colour) !important; -} - -/* grey out ccons inside the toolbar to make it - * more aligned with the Black & White colour look */ -#PersonalToolbar toolbarbutton:not(:hover), -#bookmarks-toolbar-button:not(:hover) { - filter: grayscale(1) !important; -} - -/* remove window control buttons */ -.titlebar-buttonbox-container { - display: none !important; -} - -/* remove "padding" left and right from tabs */ -.titlebar-spacer { - display: none !important; -} - -/* remove gap after pinned tabs */ -#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab[first-visible-unpinned-tab] { - margin-inline-start: 0 !important; -} - -/* remove tab shadow */ -.tabbrowser-tab > .tab-stack > .tab-background { - box-shadow: none !important; -} - -/* tab background */ -.tabbrowser-tab > .tab-stack > .tab-background { - background: var(--uc-theme-colour) !important; -} - -/* active tab background */ -.tabbrowser-tab[selected] > .tab-stack > .tab-background { - background: var(--uc-hover-colour) !important; -} - -/* multi tab selection */ -#tabbrowser-tabs:not([noshadowfortests]) - .tabbrowser-tab:is([visuallyselected="true"], [multiselected]) - > .tab-stack - > .tab-background:-moz-lwtheme { - background: var(--uc-hover-colour) !important; -} - -/* tab close button options */ -.tabbrowser-tab:not([pinned]) .tab-close-button { - display: var(--show-tab-close-button) !important; -} -.tabbrowser-tab:not([pinned]):hover .tab-close-button { - display: var(--show-tab-close-button-hover) !important; -} - -/* adaptive tab width */ -.tabbrowser-tab[selected][fadein]:not([pinned]) { - max-width: var(--uc-active-tab-width) !important; -} -.tabbrowser-tab[fadein]:not([selected]):not([pinned]) { - max-width: var(--uc-inactive-tab-width) !important; -} - -/* container tabs indicator */ -.tabbrowser-tab[usercontextid] - > .tab-stack - > .tab-background - > .tab-context-line { - margin: -1px var(--container-tabs-indicator-margin) 0 - var(--container-tabs-indicator-margin) !important; - - border-radius: var(--tab-border-radius) !important; -} - -/* show favicon when media is playing but tab is hovered */ -.tab-icon-image:not([pinned]) { - opacity: 1 !important; -} - -/* Makes the speaker icon to always appear if the tab is playing (not only on hover) */ -.tab-icon-overlay:not([crashed]), -.tab-icon-overlay[pinned][crashed][selected] { - top: 5px !important; - z-index: 1 !important; - - padding: 1.5px !important; - inset-inline-end: -8px !important; - width: 16px !important; - height: 16px !important; - - border-radius: 10px !important; -} - -/* style and position speaker icon */ -.tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { - stroke: transparent !important; +#urlbar:not([breakout][breakout-extend]) > #urlbar-background { background: transparent !important; - opacity: 1 !important; - fill-opacity: 0.8 !important; - - color: currentColor !important; - - stroke: var(--uc-theme-colour) !important; - background-color: var(--uc-theme-colour) !important; -} - -/* change the colours of the speaker icon on active tab to match tab colours */ -.tabbrowser-tab[selected] - .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { - stroke: var(--uc-hover-colour) !important; - background-color: var(--uc-hover-colour) !important; -} - -.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { - margin-inline-end: 9.5px !important; -} - -.tabbrowser-tab:not([image]) - .tab-icon-overlay:not([pinned], [sharing], [crashed]) { - top: 0 !important; - - padding: 0 !important; - margin-inline-end: 5.5px !important; - inset-inline-end: 0 !important; -} - -.tab-icon-overlay:not([crashed])[soundplaying]:hover, -.tab-icon-overlay:not([crashed])[muted]:hover, -.tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { - color: currentColor !important; - stroke: var(--uc-inverted-colour) !important; - background-color: var(--uc-inverted-colour) !important; - fill-opacity: 0.95 !important; -} - -.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[soundplaying]:hover, -.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[muted]:hover, -.tabbrowser-tab[selected] - .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { - color: currentColor !important; - stroke: var(--uc-inverted-colour) !important; - background-color: var(--uc-inverted-colour) !important; - fill-opacity: 0.95 !important; -} - -/* speaker icon colour fix */ -#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying], -#TabsToolbar .tab-icon-overlay:not([crashed])[muted], -#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked] { - color: var(--uc-inverted-colour) !important; -} - -/* speaker icon colour fix on hover */ -#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying]:hover, -#TabsToolbar .tab-icon-overlay:not([crashed])[muted]:hover, -#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { - color: var(--uc-theme-colour) !important; -} - -#nav-bar { - border: none !important; - box-shadow: none !important; - background: transparent !important; -} - -/* remove border below whole nav */ -#navigator-toolbox { - border-bottom: none !important; -} - -#urlbar, -#urlbar * { + border: #00000061 !important; + border: transparent !important; outline: none !important; - box-shadow: none !important; } -#urlbar-background { - border: var(--uc-hover-colour) !important; -} -#urlbar[focused="true"] > #urlbar-background, -#urlbar:not([open]) > #urlbar-background { - margin-top: 0; - background: transparent !important; -} - -#urlbar[open] > #urlbar-background { - background: var(--uc-theme-colour) !important; -} - -.urlbarView-row:hover > .urlbarView-row-inner, -.urlbarView-row[selected] > .urlbarView-row-inner { - background: var(--urlbar-popup-url-color) !important; - color: var(--window-colour) !important; -} - -/* transition to oneline */ -@media (min-width: 1000px) { - /* move tabs bar over */ - #TabsToolbar { - margin-left: var(--uc-urlbar-width) !important; - /* margin-top: 0px !important; */ - } - - /* move entire nav bar */ - #nav-bar { - margin: calc((var(--urlbar-min-height) * -1) - 8px) - calc(100vw - var(--uc-urlbar-width)) 0 0 !important; - margin-top: -40px !important; - } -} /* end media query */ - -/* Container Tabs */ -.identity-color-blue { - --identity-tab-color: var(--uc-identity-color-blue) !important; - --identity-icon-color: var(--uc-identity-color-blue) !important; -} -.identity-color-teal { - --identity-tab-color: var(--uc-identity-color-teal) !important; - --identity-icon-color: var(--uc-identity-color-teal) !important; -} -.identity-color-green { - --identity-tab-color: var(--uc-identity-color-green) !important; - --identity-icon-color: var(--uc-identity-color-green) !important; -} -.identity-color-yellow { - --identity-tab-color: var(--uc-identity-color-yellow) !important; - --identity-icon-color: var(--uc-identity-color-yellow) !important; -} -.identity-color-orange { - --identity-tab-color: var(--uc-identity-color-orange) !important; - --identity-icon-color: var(--uc-identity-color-orange) !important; -} -.identity-color-red { - --identity-tab-color: var(--uc-identity-color-red) !important; - --identity-icon-color: var(--uc-identity-color-red) !important; -} -.identity-color-pink { - --identity-tab-color: var(--uc-identity-color-pink) !important; - --identity-icon-color: var(--uc-identity-color-pink) !important; -} -.identity-color-purple { - --identity-tab-color: var(--uc-identity-color-purple) !important; - --identity-icon-color: var(--uc-identity-color-purple) !important; +/* Uncomment to enable compatibility for multi-row_bookmarks.css */ +/* This would break buttons placed in the toolbar but that is likely not happening if you are using multi-row setup */ +/* +#PersonalToolbar:not([customizing]){ + position: fixed; + display: block; + margin-bottom: 0px !important; } +*/ \ No newline at end of file