test firefox config

This commit is contained in:
Frost-Phoenix 2023-11-08 22:36:37 +01:00
parent baddf66ab2
commit d51c13ef6c
4 changed files with 577 additions and 516 deletions

View file

@ -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;
};
};
};
})
];
}

View file

@ -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;
};
};
};
};
}

View file

@ -0,0 +1,79 @@
<!DOCTYPE HTML>
<html>
<head>
<style>
html,body {
margin: 0;
padding: 0;
background-color: black;
}
body {
width: 100vw;
height: 100vh;
}
.overlay2 {
width: 100%;
height: 100%;
position: absolute;
filter: blur(40px);
background-position: center;
background-size: cover;
background-image: url('@wallpaper@');
}
.overlay {
width: 100%;
height: 100%;
position: absolute;
background: rgb(27,45,89);
opacity: 0.1;
}
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: white;
position: absolute;
font-family: Cantarell;
flex-direction: column;
}
.title {
font-size: 32px;
}
.search {
padding: 20px;
width: 300px;
border: none;
outline: none;
background-color: black;
color: grey;
font-size: 16px;
}
</style>
<script>
/*window.onload = () => {
const mainInput = document.getElementById("main-input");
mainInput.focus();
mainInput.value = "";
mainInput.addEventListener("keypress", function(event) {
if (event.key === "Enter") {
event.preventDefault();
window.location.href = `https://google.com/search?q=${mainInput.value}`;
}
});
};*/
</script>
<!-- for now -->
<link rel="icon" href="https://www.google.com/favicon.ico">
</head>
<body>
<div class="overlay2"></div>
<div class="overlay"></div>
<div class="container">
<!-- <div class="title">Good Morning!</div>
<div style="height: 20px"></div>
<input class="search" id="main-input"/> -->
</div>
</body>
</html>

View file

@ -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;
}
*/