fix up firefox to be more declarative
This commit is contained in:
		
							parent
							
								
									ada5e5ad6a
								
							
						
					
					
						commit
						96c329918d
					
				
							
								
								
									
										39
									
								
								flake.lock
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								flake.lock
									
									
									
									
									
								
							|  | @ -31,11 +31,11 @@ | |||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1657514455, | ||||
|         "narHash": "sha256-rYrofeCRgZyiZMuuwbwbM7ZLNTj04S0l4G/1ZeH0gqI=", | ||||
|         "lastModified": 1663665682, | ||||
|         "narHash": "sha256-YB+vmQB3N9RyeshHAO4GjIFebA7NPY2jlkdvGGZtM64=", | ||||
|         "ref": "main", | ||||
|         "rev": "50f7ee786d9704ecfd67a9fe2eb8f338fc983dc1", | ||||
|         "revCount": 64, | ||||
|         "rev": "36bda6965ab2e1a206f8c2b7a74f3b022c873662", | ||||
|         "revCount": 65, | ||||
|         "type": "git", | ||||
|         "url": "ssh://gitea@git.sealight.xyz/aynish/basant" | ||||
|       }, | ||||
|  | @ -663,33 +663,19 @@ | |||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs_5": { | ||||
|       "locked": { | ||||
|         "lastModified": 1663489134, | ||||
|         "narHash": "sha256-YqM45LLzvgBNbvIK0QQa8cY8omKS0+bRUg4JWzEj14w=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "830e228898ac7a66eeafb169dd3df0dc427674d4", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nur": { | ||||
|       "locked": { | ||||
|         "lastModified": 1663393873, | ||||
|         "narHash": "sha256-DtumXhmyA9gpu0+qa5fwvU93qKqtx0AtUFvfazPzz1Y=", | ||||
|         "lastModified": 1663680695, | ||||
|         "narHash": "sha256-sVdmg21MzIS0e+mCyIEInivIodJNYKVicZ3WJr907XI=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "NUR", | ||||
|         "rev": "ecf7442437f53f0f689df6897c10a7f9a4f6b9ae", | ||||
|         "rev": "a22f443201174496ce6edb237a2e9596591cd542", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "nur", | ||||
|         "type": "indirect" | ||||
|         "owner": "nix-community", | ||||
|         "repo": "NUR", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nvfetcher": { | ||||
|  | @ -885,7 +871,10 @@ | |||
|     }, | ||||
|     "vimwiki-cli": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": "nixpkgs_5" | ||||
|         "nixpkgs": [ | ||||
|           "poonam", | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1662448409, | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ | |||
|       nvfetcher.inputs.nixpkgs.follows = "nixos"; | ||||
|       naersk.url = "github:nmattia/naersk"; | ||||
|       naersk.inputs.nixpkgs.follows = "nixos"; | ||||
|       nur.url = "github:nix-community/NUR"; | ||||
|       # Tools | ||||
|       agenix.url = "github:ryantm/agenix"; | ||||
|       agenix.inputs.nixpkgs.follows = "nixos"; | ||||
|  | @ -147,7 +148,7 @@ | |||
|             }; | ||||
|             suites = with profiles; rec { | ||||
|               base = [ core users.root users.anish ]; | ||||
|               sealight = [ base server metrics gitea sealight-website backup rss-bridge mount-mossnet matrix ]; #  | ||||
|               sealight = [ base server metrics gitea sealight-website backup rss-bridge mount-mossnet ]; # matrix  | ||||
|               mossnet = [ base server taskd shaarli dns monitoring nfs rss-bridge gonic headphones radicale seafile syncthing dhyan calibre wallabag ]; # hpi sync.music  | ||||
|               cube = [ base site server ]; | ||||
|               graphical = [ base bluetooth music sync.kitaab sync.website sync.cal wifi desktop mimetypes ]; | ||||
|  |  | |||
|  | @ -1,120 +1,150 @@ | |||
| { pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   # Imperative steps:  | ||||
|   # - Enable & configure plugins | ||||
|   # - Run :colourscheme --url https://raw.githubusercontent.com/lonepie/dracula-tridactyl/main/dracula.css dracula for tridactyl theme | ||||
|   # - Import css for tree style tabs from treestyletabs.css  | ||||
| 
 | ||||
|   programs.browserpass.enable = true; | ||||
|   programs.browserpass.browsers = [ "firefox" ]; | ||||
|   #env.XDG_DEXSTOP_DIR = "$HOME/"; | ||||
|   programs.firefox.profiles.anish.userChrome = (builtins.readFile ./userChrome.css); | ||||
|   programs.firefox.profiles.anish.settings = { | ||||
|     "devtools.theme" = "dark"; | ||||
|     # Enable userContent.css and userChrome.css for our theme modules | ||||
|     "toolkit.legacyUserProfileCustomizations.stylesheets" = true; | ||||
|     # Stop creating ~/Downloads! | ||||
|     "browser.download.dir" = "/home/anish/downloads"; # TODO Don't hardcode this! | ||||
|     # Don't use the built-in password manager; a nixos user is more likely | ||||
|     # using an external one (you are using one, right?). | ||||
|     #"signon.rememberSignons" = false; | ||||
|     # Do not check if Firefox is the default browser | ||||
|     "browser.shell.checkDefaultBrowser" = false; | ||||
|     # Disable the "new tab page" feature and show a blank tab instead | ||||
|     # https://wiki.mozilla.org/Privacy/Reviews/New_Tab | ||||
|     # https://support.mozilla.org/en-US/kb/new-tab-page-show-hide-and-customize-top-sites#w_how-do-i-turn-the-new-tab-page-off | ||||
|     "browser.newtabpage.enabled" = false; | ||||
|     "browser.newtab.url" = "about:blank"; | ||||
|     # Disable Activity Stream | ||||
|     # https://wiki.mozilla.org/Firefox/Activity_Stream | ||||
|     "browser.newtabpage.activity-stream.enabled" = false; | ||||
|     # Disable new tab tile ads & preload | ||||
|     # http://www.thewindowsclub.com/disable-remove-ad-tiles-from-firefox | ||||
|     # http://forums.mozillazine.org/viewtopic.php?p=13876331#p13876331 | ||||
|     # https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping | ||||
|     # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-source | ||||
|     # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-ping | ||||
|     "browser.newtabpage.enhanced" = false; | ||||
|     "browser.newtab.preload" = false; | ||||
|     "browser.newtabpage.directory.ping" = ""; | ||||
|     "browser.newtabpage.directory.source" = "data:text/plain,{}"; | ||||
|     # Disable some not so useful functionality. | ||||
|     "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; | ||||
|     "extensions.htmlaboutaddons.recommendations.enabled" = false; | ||||
|     "extensions.htmlaboutaddons.discover.enabled" = false; | ||||
|     "extensions.pocket.enabled" = false; | ||||
|     "app.normandy.enabled" = false; | ||||
|     "app.normandy.api_url" = ""; | ||||
|     "extensions.shield-recipe-client.enabled" = false; | ||||
|     "app.shield.optoutstudies.enabled" = false; | ||||
|     # Disable battery API | ||||
|     # https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager | ||||
|     # https://bugzilla.mozilla.org/show_bug.cgi?id=1313580 | ||||
|     "dom.battery.enabled" = false; | ||||
|     # Disable "beacon" asynchronous HTTP transfers (used for analytics) | ||||
|     # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon | ||||
|     "beacon.enabled" = false; | ||||
|     # Disable pinging URIs specified in HTML <a> ping= attributes | ||||
|     # http://kb.mozillazine.org/Browser.send_pings | ||||
|     "browser.send_pings" = false; | ||||
|     # Disable gamepad API to prevent USB device enumeration | ||||
|     # https://www.w3.org/TR/gamepad/ | ||||
|     # https://trac.torproject.org/projects/tor/ticket/13023 | ||||
|     "dom.gamepad.enabled" = false; | ||||
|     # Don't try to guess domain names when entering an invalid domain name in URL bar | ||||
|     # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html | ||||
|     "browser.fixup.alternate.enabled" = false; | ||||
|     # Disable telemetry | ||||
|     # https://wiki.mozilla.org/Platform/Features/Telemetry | ||||
|     # https://wiki.mozilla.org/Privacy/Reviews/Telemetry | ||||
|     # https://wiki.mozilla.org/Telemetry | ||||
|     # https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry | ||||
|     # https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715 | ||||
|     # https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry | ||||
|     # https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html | ||||
|     # https://wiki.mozilla.org/Telemetry/Experiments | ||||
|     # https://support.mozilla.org/en-US/questions/1197144 | ||||
|     # https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html#id1 | ||||
|     "toolkit.telemetry.enabled" = false; | ||||
|     "toolkit.telemetry.unified" = false; | ||||
|     "toolkit.telemetry.archive.enabled" = false; | ||||
|     "experiments.supported" = false; | ||||
|     "experiments.enabled" = false; | ||||
|     "experiments.manifest.uri" = ""; | ||||
|     # Disable health reports (basically more telemetry) | ||||
|     # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf | ||||
|     # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html | ||||
|     "datareporting.healthreport.uploadEnabled" = false; | ||||
|     "datareporting.healthreport.service.enabled" = false; | ||||
|     "datareporting.policy.dataSubmissionEnabled" = false; | ||||
|     # Pipewire optimizations | ||||
|     # https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Performance-tuning#firefox | ||||
|     "reader.parse-on-load.enabled" = false; | ||||
|     "media.webspeech.synth.enabled" = false; | ||||
|   }; | ||||
|   programs.firefox = { | ||||
|     enable = true; | ||||
|     extensions = with pkgs.nur.repos.rycee.firefox-addons; [ | ||||
|       ublock-origin | ||||
|       wallabagger | ||||
|       tree-style-tab | ||||
|       tridactyl | ||||
|       promnesia | ||||
|       (buildFirefoxXpiAddon { | ||||
|         pname = "shaarli"; | ||||
|         version = "2.0.0"; | ||||
|         addonId = "{f59a7028-b71f-490d-844e-f781a11ffbc7}"; | ||||
|         url = "https://addons.mozilla.org/firefox/downloads/file/815126/shaarli-2.0.0.xpi"; | ||||
|         sha256 = "W/OpvOfMclibP6LeG573/DlMs0p8fF0efyd+i8Sudgg="; | ||||
|         meta = { }; | ||||
|       }) | ||||
|       (buildFirefoxXpiAddon { | ||||
|         pname = "grasp"; | ||||
|         version = "0.6.6"; | ||||
|         addonId = "{37e42980-a7c9-473c-96d5-13f18e0efc74}"; | ||||
|         url = "https://addons.mozilla.org/firefox/downloads/file/3502186/grasp-0.6.6.xpi"; | ||||
|         sha256 = "L4JhT29MeA34nHIlB8FtCU7hrpbWljZZBusx12uxblE="; | ||||
|         meta = { }; | ||||
|       }) | ||||
|     ]; | ||||
|     profiles.anish = { | ||||
|       id = 0; | ||||
|       isDefault = true; | ||||
|       name = "anish"; | ||||
|       userChrome = (builtins.readFile ./userChrome.css); | ||||
|       settings = { | ||||
|         "devtools.theme" = "dark"; | ||||
|         # Enable userContent.css and userChrome.css for our theme modules | ||||
|         "toolkit.legacyUserProfileCustomizations.stylesheets" = true; | ||||
|         # Stop creating ~/Downloads! | ||||
|         "browser.download.dir" = "/home/anish/downloads"; # TODO Don't hardcode this! | ||||
|         # Don't use the built-in password manager; a nixos user is more likely | ||||
|         # using an external one (you are using one, right?). | ||||
|         #"signon.rememberSignons" = false; | ||||
|         # Do not check if Firefox is the default browser | ||||
|         "browser.shell.checkDefaultBrowser" = false; | ||||
|         # Disable the "new tab page" feature and show a blank tab instead | ||||
|         # https://wiki.mozilla.org/Privacy/Reviews/New_Tab | ||||
|         # https://support.mozilla.org/en-US/kb/new-tab-page-show-hide-and-customize-top-sites#w_how-do-i-turn-the-new-tab-page-off | ||||
|         "browser.newtabpage.enabled" = false; | ||||
|         "browser.newtab.url" = "about:blank"; | ||||
|         # Disable Activity Stream | ||||
|         # https://wiki.mozilla.org/Firefox/Activity_Stream | ||||
|         "browser.newtabpage.activity-stream.enabled" = false; | ||||
|         # Disable new tab tile ads & preload | ||||
|         # http://www.thewindowsclub.com/disable-remove-ad-tiles-from-firefox | ||||
|         # http://forums.mozillazine.org/viewtopic.php?p=13876331#p13876331 | ||||
|         # https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping | ||||
|         # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-source | ||||
|         # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-ping | ||||
|         "browser.newtabpage.enhanced" = false; | ||||
|         "browser.newtab.preload" = false; | ||||
|         "browser.newtabpage.directory.ping" = ""; | ||||
|         "browser.newtabpage.directory.source" = "data:text/plain,{}"; | ||||
|         # Disable some not so useful functionality. | ||||
|         "media.videocontrols.picture-in-picture.video-toggle.enabled" = false; | ||||
|         "extensions.htmlaboutaddons.recommendations.enabled" = false; | ||||
|         "extensions.htmlaboutaddons.discover.enabled" = false; | ||||
|         "extensions.pocket.enabled" = false; | ||||
|         "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; | ||||
|         "extensions.pocket.api" = ""; | ||||
|         "extensions.pocket.oAuthConsumerKey" = ""; | ||||
|         "extensions.pocket.showHome" = false; | ||||
|         "extensions.pocket.site" = ""; | ||||
|         "app.normandy.enabled" = false; | ||||
|         "app.normandy.api_url" = ""; | ||||
|         "extensions.shield-recipe-client.enabled" = false; | ||||
|         "app.shield.optoutstudies.enabled" = false; | ||||
|         # Disable battery API | ||||
|         # https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager | ||||
|         # https://bugzilla.mozilla.org/show_bug.cgi?id=1313580 | ||||
|         "dom.battery.enabled" = false; | ||||
|         # Disable "beacon" asynchronous HTTP transfers (used for analytics) | ||||
|         # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon | ||||
|         "beacon.enabled" = false; | ||||
|         # Disable pinging URIs specified in HTML <a> ping= attributes | ||||
|         # http://kb.mozillazine.org/Browser.send_pings | ||||
|         "browser.send_pings" = false; | ||||
|         # Disable gamepad API to prevent USB device enumeration | ||||
|         # https://www.w3.org/TR/gamepad/ | ||||
|         # https://trac.torproject.org/projects/tor/ticket/13023 | ||||
|         "dom.gamepad.enabled" = false; | ||||
|         # Don't try to guess domain names when entering an invalid domain name in URL bar | ||||
|         # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html | ||||
|         "browser.fixup.alternate.enabled" = false; | ||||
|         # Disable telemetry | ||||
|         # https://wiki.mozilla.org/Platform/Features/Telemetry | ||||
|         # https://wiki.mozilla.org/Privacy/Reviews/Telemetry | ||||
|         # https://wiki.mozilla.org/Telemetry | ||||
|         # https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry | ||||
|         # https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715 | ||||
|         # https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry | ||||
|         # https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html | ||||
|         # https://wiki.mozilla.org/Telemetry/Experiments | ||||
|         # https://support.mozilla.org/en-US/questions/1197144 | ||||
|         # https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html#id1 | ||||
|         "toolkit.telemetry.enabled" = false; | ||||
|         "toolkit.telemetry.unified" = false; | ||||
|         "toolkit.telemetry.archive.enabled" = false; | ||||
|         "experiments.supported" = false; | ||||
|         "experiments.enabled" = false; | ||||
|         "experiments.manifest.uri" = ""; | ||||
|         "privacy.donottrackheader.enabled" = true; | ||||
|         "privacy.trackingprotection.enabled" = true; | ||||
|         "privacy.trackingprotection.socialtracking.enabled" = true; | ||||
|         "privacy.partition.network_state.ocsp_cache" = true; | ||||
|         # Disable health reports (basically more telemetry) | ||||
|         # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf | ||||
|         # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html | ||||
|         "browser.newtabpage.activity-stream.feeds.telemetry" = false; | ||||
|         "browser.newtabpage.activity-stream.telemetry" = false; | ||||
|         "browser.ping-centre.telemetry" = false; | ||||
|         "toolkit.telemetry.bhrPing.enabled" = false; | ||||
|         "toolkit.telemetry.firstShutdownPing.enabled" = false; | ||||
|         "toolkit.telemetry.hybridContent.enabled" = false; | ||||
|         "toolkit.telemetry.newProfilePing.enabled" = false; | ||||
|         "toolkit.telemetry.reportingpolicy.firstRun" = false; | ||||
|         "toolkit.telemetry.shutdownPingSender.enabled" = false; | ||||
|         "toolkit.telemetry.updatePing.enabled" = false; | ||||
| 
 | ||||
|   # Override? | ||||
|   home.packages = with pkgs; [ | ||||
|     firefox-bin | ||||
|     # TODO something changed in 22.05, needs to be a list? | ||||
|     # (makeDesktopItem { | ||||
|     #   name = "firefox-private"; | ||||
|     #   desktopName = "Firefox (Private)"; | ||||
|     #   genericName = "Open a private Firefox window"; | ||||
|     #   icon = "firefox"; | ||||
|     #   exec = "${firefox-bin}/bin/firefox --private-window"; | ||||
|     #   categories = "Network"; | ||||
|     # }) | ||||
|   ]; | ||||
| 
 | ||||
|   home.file = let cfgPath = ".mozilla/firefox"; in | ||||
|     { | ||||
|       "${cfgPath}/profiles.ini".text = '' | ||||
|         [Profile0] | ||||
|         Name=default | ||||
|         IsRelative=1 | ||||
|         Path=anish.default | ||||
|         Default=1 | ||||
|         [General] | ||||
|         StartWithLastProfile=1 | ||||
|         Version=2 | ||||
|       ''; | ||||
|       "${cfgPath}/anish.default/chrome/userChrome.css".source = ./userChrome.css; | ||||
|         # As well as Firefox 'experiments' | ||||
|         "experiments.activeExperiment" = false; | ||||
|         "network.allow-experiments" = false; | ||||
|         "datareporting.healthreport.uploadEnabled" = false; | ||||
|         "datareporting.healthreport.service.enabled" = false; | ||||
|         "datareporting.policy.dataSubmissionEnabled" = false; | ||||
|         # Pipewire optimizations | ||||
|         # https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Performance-tuning#firefox | ||||
|         "reader.parse-on-load.enabled" = false; | ||||
|         "media.webspeech.synth.enabled" = false; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
							
								
								
									
										278
									
								
								users/profiles/firefox/treestyletab.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								users/profiles/firefox/treestyletab.css
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,278 @@ | |||
| :root{  | ||||
|   --dark-0: #1A1E28; | ||||
|   --dark-base: #1F2430; | ||||
|   --dark-1: #2A3141; | ||||
|   --dark-2: #323A4E; | ||||
|   --dark-3: #424D67; | ||||
|   --dark-4: #4A5673; | ||||
|   --light-0: #E8E7E3; | ||||
|   --light-base: #CCCAC2; | ||||
|   --light-1: #C3C0B7; | ||||
|   --light-2: #B9B7AC; | ||||
|   --light-3: #B0ADA0; | ||||
|   --light-4: #A7A395; | ||||
|   --accent: #FFCC66; | ||||
|   --yellow: #695380; | ||||
|   --green: #D5FF80; | ||||
|   --red: #f28779; | ||||
|   --extension-icon-mask: grayscale(85%) invert(30%) sepia(13%) saturate(1019%) hue-rotate(184deg) brightness(95%) contrast(96%); | ||||
| } | ||||
| 
 | ||||
| :root.incognito{  | ||||
|   --dark-0: #1C0E34; | ||||
|   --dark-base: #20103c; | ||||
|   --dark-1: #2F1D4E; | ||||
|   --dark-2: #38225D; | ||||
|   --dark-3: #4A2D7B; | ||||
|   --dark-4: #53338A; | ||||
|   --light-0: #CC6B9C; | ||||
|   --light-base: #B9407C; | ||||
|   --light-1: #AB3B73; | ||||
|   --light-2: #9C3569; | ||||
|   --light-3: #8D305E; | ||||
|   --light-4: #7D2B54; | ||||
|   --accent: #e9207e; | ||||
|   --yellow: #C9B336; | ||||
|   --green: #36C987; | ||||
|   --red: #C9365D; | ||||
|   --extension-icon-mask: grayscale(85%) invert(17%) sepia(33%) saturate(3632%) hue-rotate(245deg) brightness(92%) contrast(90%); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| :root{ | ||||
|     --tab-border-radius: 7px; /* border radius of tabs */ | ||||
|     --animation-duration: 200ms; /* duration of different animations [0s: turn all animations off] */ | ||||
|     --spacing: 14px; /* spacing between tabs. [<15px: compact tabs] */ | ||||
|     --distance-from-edge: 10px; /* distance between tabs, and left-right edges of sidebar*/ | ||||
|     --hover-text-spacing: 0.1; /* should be left alone. with hover sidebar, if text is visible in collapsed status, increase this */ | ||||
| 
 | ||||
|     --ease-in: cubic-bezier(0.32, 0, 0.67, 0); | ||||
|     --ease-out: cubic-bezier(0.22, 1, 0.36, 1); | ||||
|     --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); | ||||
| 
 | ||||
|     --collapsed-width: 60px; | ||||
| } | ||||
| 
 | ||||
| /************UNCUSTOMIZED CSS************/ | ||||
| #tabbar-container #tabbar{ | ||||
|    margin-bottom: 15px !important; | ||||
| } | ||||
| 
 | ||||
| :root, #background{ | ||||
|     background:  var(--dark-base) !important; | ||||
| } | ||||
| 
 | ||||
| #all-tabs{ | ||||
|    margin: 10px var(--distance-from-edge); | ||||
| } | ||||
| 
 | ||||
| tab-item:not(.collapsed) { | ||||
|     margin-top: var(--spacing); | ||||
|     border-radius: var(--tab-border-radius); | ||||
|     border: none !important; | ||||
|     padding-top: 9px; | ||||
|     padding-bottom: 10px; | ||||
| } | ||||
| 
 | ||||
| tab-item.collapsed{ | ||||
|     height: 0; | ||||
|     margin: 0 !important; | ||||
|     padding: 0 !important; | ||||
| } | ||||
| 
 | ||||
| tab-item:not([data-level="0"]):not(.pinned){ | ||||
|     border-left: dashed 2px var(--light-4) !important; | ||||
|     border-top-left-radius: 0; | ||||
|     border-bottom-left-radius: 0; | ||||
|     margin-top: calc(var(--spacing)/2); | ||||
| } | ||||
| 
 | ||||
| tab-item tab-favicon{ | ||||
|     left: 0; | ||||
|     filter: var(--extension-icon-mask); | ||||
|     transition: left calc(var(--animation-duration)*2) var(--ease-out); | ||||
| } | ||||
| 
 | ||||
| .highlighter { | ||||
|     display: none !important; | ||||
| } | ||||
| 
 | ||||
| tab-item .label { | ||||
|     color: var(--light-2) !important; | ||||
|     padding-bottom: 2px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| tab-item .twisty:before{ | ||||
|    background: var(--light-3) !important; | ||||
| } | ||||
| 
 | ||||
| tab-item.active .label { | ||||
|     color: var(--light-0) !important; | ||||
| } | ||||
| 
 | ||||
| tab-item.active { | ||||
|     background: var(--dark-3) !important; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| tab-item:not(.active).highlighted{ | ||||
|     background: var(--dark-1) !important; | ||||
| } | ||||
| 
 | ||||
| tab-item:not(active):hover { | ||||
|     background: var(--dark-1); | ||||
| } | ||||
| 
 | ||||
| tab-item:hover tab-closebox { | ||||
|     right: 10px; | ||||
|     opacity: 1; | ||||
| } | ||||
| 
 | ||||
| tab-item:not(pinned) tab-closebox { | ||||
|     position: absolute; | ||||
|     margin-top: 2px; | ||||
|     height: 20px; | ||||
|     width: 20px; | ||||
|     right: -30px; | ||||
|     border-radius: 50%; | ||||
|     padding-top: 2px; | ||||
|     padding-left: 2px; | ||||
|     background: var(--light-4); | ||||
|     transition   : all var(--animation-duration) var(--ease-out); | ||||
| } | ||||
| 
 | ||||
| .sound-button:after { | ||||
|     background: var(--light-3) !important; | ||||
|     margin-top: 2px; | ||||
| } | ||||
| 
 | ||||
| .counter{ | ||||
|     color: var(--light-4) !important; | ||||
|     background: var(--dark-2) !important; | ||||
|     border-radius: 7px; | ||||
|     margin: 2px 2px 0px 0px; | ||||
|     padding: 0 4px; | ||||
|     padding-bottom: 2px; | ||||
|     order: -2 !important; | ||||
| } | ||||
| 
 | ||||
| .counter:before, .counter:after{ content: ""} | ||||
| 
 | ||||
| /********LEFT CONTENT TAB(static)*************/ | ||||
| 
 | ||||
| :root.left tab-item{ | ||||
|     padding-left: 0; | ||||
| } | ||||
| 
 | ||||
| :root.left tab-item tab-favicon {     | ||||
|     transform: scale(120%); | ||||
|     margin-right: 5px; | ||||
|     left: 80%; | ||||
| } | ||||
| 
 | ||||
| :root.left tab-item .label { | ||||
|     transform: translateX(10px); | ||||
|     right: 28%; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| :root.left tab-item[data-child-ids] .twisty{ | ||||
|     margin-right: 5px; | ||||
| } | ||||
| 
 | ||||
| /********RIGHT CONTENT TAB(hover)*************/ | ||||
| 
 | ||||
| :root.right tab-item .label { | ||||
|     margin-left: 10px; | ||||
|     margin-right: calc(var(--collapsed-width)*0.3) !important; | ||||
| } | ||||
| 
 | ||||
| :root.right tab-item:not(pinned):hover tab-closebox{ | ||||
|     right: calc(var(--collapsed-width)*0.3); | ||||
| } | ||||
| 
 | ||||
| :root.right tab-item:not([data-level="0"]):not(.pinned){ | ||||
|     border: none !important; | ||||
|     border-right: dashed 2px var(--light-4) !important; | ||||
|     border-radius: var(--tab-border-radius); | ||||
|     border-top-right-radius: 0; | ||||
|     border-bottom-right-radius: 0; | ||||
| } | ||||
| 
 | ||||
| :root.right tab-item.active:not([data-level="0"]):not(.pinned){ | ||||
|    margin-right: 5px !important; | ||||
| } | ||||
| 
 | ||||
| :root.right .sound-button{ | ||||
|     order: -1 !important; | ||||
| } | ||||
| 
 | ||||
| :root.right tab-item.active.pinned { | ||||
|     position: relative; | ||||
|     left: 190px !important; | ||||
| } | ||||
| 
 | ||||
| :root.right tab-item.active.pinned tab-favicon { | ||||
|     transform: scale(130%) !important; | ||||
|     margin-left: 7px; | ||||
| } | ||||
| 
 | ||||
| /***********************************/ | ||||
| 
 | ||||
| .tab | ||||
|     .favicon | ||||
|     .favicon-default::before { | ||||
|     filter: var(--extension-icon-mask); // change for light theme | ||||
| } | ||||
| 
 | ||||
| .tab[data-current-favicon-uri="undefined"] | ||||
|     .favicon | ||||
|     .favicon-default::before{ | ||||
|     background: url("chrome://branding/content/identity-icons-brand.svg") no-repeat center !important; | ||||
|     mask: none !important; | ||||
| } | ||||
| 
 | ||||
| /***********NEW TAB BUTTON**********/ | ||||
| 
 | ||||
| .newtab-button-box { | ||||
|     border: none !important; | ||||
|     margin: 0 50px; | ||||
| } | ||||
| 
 | ||||
| .newtab-button { | ||||
|     border: none !important; | ||||
|     border-radius: 8px; | ||||
|     padding: 8px 0 !important; | ||||
|     margin: 0 5px; | ||||
| } | ||||
| 
 | ||||
| .newtab-button::before{ | ||||
|    background: var(--light-3) !important; | ||||
| } | ||||
| 
 | ||||
| .newtab-action-selector-anchor { | ||||
|     border: none !important; | ||||
|     margin-right: 10px; | ||||
|     margin-top: 3px; | ||||
| } | ||||
| 
 | ||||
| .newtab-button:hover { | ||||
|     background: var(--dark-1); | ||||
| } | ||||
| 
 | ||||
| /**********PINNED TAB***************/ | ||||
| 
 | ||||
| tab-item.pinned { | ||||
|     margin: 5px !important; | ||||
|     padding: 5px !important; | ||||
|     transition   : all 0.1s var(--ease-out); | ||||
| } | ||||
| 
 | ||||
| /***********************************/ | ||||
| 
 | ||||
| #all-tabs { | ||||
|     border: none !important; | ||||
| } | ||||
| 
 | ||||
|      | ||||
		Loading…
	
		Reference in a new issue