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