holy moly we're almost there
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
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;
|
||||
};
|
||||
|
||||
# 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;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
/* @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); */
|
||||
|
||||
@-moz-document url(chrome://browser/content/browser.xul),
|
||||
url(chrome://browser/content/browser.xhtml)
|
||||
{
|
||||
/*** TREE STYLE TABS ***/
|
||||
/* Hide main tabs toolbar */
|
||||
#TabsToolbar {
|
||||
visibility: collapse !important;
|
||||
}
|
||||
/* Sidebar min and max width removal */
|
||||
:root {
|
||||
/* expanded width of the sidebar.
|
||||
used for userChrome-static, and hover */
|
||||
--sidebar-width: 250px;
|
||||
/* initial width of the sidebar.
|
||||
advised not to change since tst css relies on this value*/
|
||||
--sidebar-collapsed-width: 60px;
|
||||
}
|
||||
|
||||
#sidebar-box {
|
||||
z-index: 1000 !important;
|
||||
position: relative !important;
|
||||
min-width: var(--sidebar-collapsed-width) !important;
|
||||
max-width: var(--sidebar-collapsed-width) !important;
|
||||
}
|
||||
|
||||
#sidebar-header,
|
||||
#sidebar-splitter {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* inner width = expanded width & move inner to only show initial-width long section */
|
||||
#sidebar-box #sidebar {
|
||||
position: absolute !important;
|
||||
min-width: var(--sidebar-width) !important;
|
||||
max-width: var(--sidebar-width) !important;
|
||||
width: var(--sidebar-width) !important;
|
||||
transform: translateX(calc(var(--sidebar-collapsed-width) - var(--sidebar-width)));
|
||||
transition: all var(--transition-time) var(--ease-out);
|
||||
}
|
||||
|
||||
/* move inner to show entire sidebar */
|
||||
#sidebar-box #sidebar:hover {
|
||||
transform: translateX(0) !important;
|
||||
box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color);
|
||||
}
|
||||
|
||||
#sidebar-box[sidebarcommand="viewBookmarksSidebar"] #sidebar {
|
||||
transform: translateX(0) !important;
|
||||
box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color);
|
||||
}
|
||||
/* hide sidebar header for tree style tabs sidebar */
|
||||
#sidebar-box #sidebar-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
border-right: solid var(--dividers) var(--sidebar-shadow-color) !important;
|
||||
}
|
||||
|
||||
toolbar {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#tabbrowser-arrowscrollbox {
|
||||
margin: 7px 14px 7px 14px;
|
||||
}
|
||||
|
||||
.tabbrowser-tab::after {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.tab-background .tab-line,
|
||||
.tab-background .tab-bottom-line {
|
||||
display: none;
|
||||
}
|
||||
|
||||
tab[selected="true"] > .tab-stack > .tab-background {
|
||||
background: var(--tl-tab-background-gradient, var(--arrowpanel-dimmed-further)) !important;
|
||||
}
|
||||
|
||||
tab:not([selected="true"]) > .tab-stack:hover > .tab-background {
|
||||
background: var(--arrowpanel-background) !important;
|
||||
}
|
||||
|
||||
.tab-stack {
|
||||
border-radius: 7px;
|
||||
margin-right: 5px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.tab-stack .tab-icon-image,
|
||||
.tab-stack .tab-label-container {
|
||||
transform: translateX(0px);
|
||||
transition: all var(--tl-animation-duration) var(--ease-out) !important;
|
||||
}
|
||||
|
||||
.tab-stack .tab-icon-image {
|
||||
transition-duration: calc(var(--tl-animation-duration) * 2) !important;
|
||||
}
|
||||
|
||||
tab:not([pinned="true"]) .tab-stack:hover .tab-icon-image {
|
||||
transform: translateX(-25px) !important;
|
||||
}
|
||||
|
||||
.tab-stack:hover .tab-label-container {
|
||||
transform: translateX(-23px) !important;
|
||||
}
|
||||
|
||||
/* containers */
|
||||
tab:not([selected="true"]).identity-color-blue > .tab-stack,
|
||||
tab:not([selected="true"]).identity-color-orange > .tab-stack,
|
||||
tab:not([selected="true"]).identity-color-green > .tab-stack,
|
||||
tab:not([selected="true"]).identity-color-pink > .tab-stack{
|
||||
border-radius: 0 0 7px 7px !important;
|
||||
}
|
||||
|
||||
tab[selected="true"].identity-color-blue > .tab-stack .tab-label-container,
|
||||
tab[selected="true"].identity-color-orange > .tab-stack .tab-label-container,
|
||||
tab[selected="true"].identity-color-green > .tab-stack .tab-label-container,
|
||||
tab[selected="true"].identity-color-pink > .tab-stack .tab-label-container{
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
/* blue */
|
||||
tab[selected="true"].identity-color-blue > .tab-stack > .tab-background{
|
||||
background: linear-gradient(to right, #3182CE , #0BC5EA) !important;
|
||||
}
|
||||
|
||||
tab:not([selected="true"]).identity-color-blue > .tab-stack > .tab-background{
|
||||
border-top: solid 4px #63B3ED !important;
|
||||
}
|
||||
|
||||
/* orange */
|
||||
tab[selected="true"].identity-color-orange > .tab-stack > .tab-background{
|
||||
background: linear-gradient(to right, #DD6B20 , #F56565) !important;
|
||||
}
|
||||
|
||||
tab:not([selected="true"]).identity-color-orange > .tab-stack > .tab-background{
|
||||
border-top: solid 4px #F6AD55 !important;
|
||||
}
|
||||
|
||||
/* green */
|
||||
tab[selected="true"].identity-color-green > .tab-stack > .tab-background{
|
||||
background: linear-gradient(to right, #38A169 , #38B2AC) !important;
|
||||
}
|
||||
|
||||
tab:not([selected="true"]).identity-color-green > .tab-stack > .tab-background{
|
||||
border-top: solid 4px #68D391 !important;
|
||||
}
|
||||
|
||||
/* pink */
|
||||
tab[selected="true"].identity-color-pink > .tab-stack > .tab-background{
|
||||
background: linear-gradient(to right, #D53F8C , #9F7AEA) !important;
|
||||
}
|
||||
|
||||
tab:not([selected="true"]).identity-color-pink > .tab-stack > .tab-background{
|
||||
border-top: solid 4px #F687B3 !important;
|
||||
}
|
||||
|
||||
|
||||
.tab-stack .tab-close-button {
|
||||
border-radius: 50%;
|
||||
margin-left: -20px !important;
|
||||
background: var(--lwt-text-color);
|
||||
fill: var(--lwt-accent-color) !important;
|
||||
transform: translateX(30px) !important;
|
||||
transition: all var(--tl-animation-duration) var(--ease-out) !important;
|
||||
}
|
||||
|
||||
.tab-stack:hover .tab-close-button {
|
||||
transform: translateX(0px) !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox >
|
||||
.tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button:not([selected="true"]){
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
/* hide tabs */
|
||||
.tabbrowser-tab {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#tabs-newtab-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.titlebar-spacer {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
/*** TAB BAR ***/
|
||||
/* Ensure tab doesn't show through auto-completion popup */
|
||||
.tabbrowser-tab { z-index: 0 !important; }
|
||||
/* Ensure tab "spacers" don't show through the completion window */
|
||||
#tabbrowser-arrowscrollbox > spacer { z-index: -1 !important; }
|
||||
#mainPopupSet { z-index: 9999 !important; }
|
||||
|
||||
/* Hide tabbar if only one tab */
|
||||
@import url(./css/tabs-hide-if-only-one.css);
|
||||
|
||||
|
||||
/* Remove the colored overline on the focused tab */
|
||||
.tabbrowser-tab .tab-line { background: none !important; }
|
||||
|
||||
/* Replace favicon on tabs with close button on mouse hover */
|
||||
.tabbrowser-tab:not(:hover) .tab-close-button,
|
||||
.tabbrowser-tab:not([pinned]):hover .tab-icon-image { display: none !important; }
|
||||
.tabbrowser-tab:not([pinned]):hover .tab-close-button { display:block !important; }
|
||||
|
||||
.tabbrowser-tab:hover .tab-throbber,
|
||||
.tabbrowser-tab:hover .tab-icon-image,
|
||||
.tabbrowser-tab:hover .tab-sharing-icon-overlay,
|
||||
.tabbrowser-tab:hover .tab-icon-overlay,
|
||||
.tabbrowser-tab:hover .tab-label-container,
|
||||
.tabbrowser-tab:hover .tab-icon-sound {
|
||||
-moz-box-ordinal-group: 2 !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab .tab-close-button {
|
||||
margin-left: -2px !important;
|
||||
margin-right: 4px !important;
|
||||
}
|
||||
|
||||
.tab-close-button:hover {
|
||||
fill-opacity: 0 !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab::after,
|
||||
.tabbrowser-tab::before {
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
.scrollbutton-up[orient="horizontal"]~spacer { border-width: 0px; opacity: 0 }
|
||||
|
||||
|
||||
/*** NAV BAR ***/
|
||||
/* Hide urlbar */
|
||||
#nav-bar {
|
||||
position: relative !important;
|
||||
z-index: 2 !important;
|
||||
height: 2px !important;
|
||||
min-height: 2px !important;
|
||||
margin-bottom: -2px !important;
|
||||
opacity: 0 !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* But unfocus it when we invoke it with ctrl+L */
|
||||
#nav-bar:focus-within {
|
||||
height: auto !important;
|
||||
margin-bottom: 0px !important;
|
||||
opacity: 1 !important;
|
||||
overflow: show !important;
|
||||
}
|
||||
|
||||
#urlbar-container {
|
||||
min-height: 0 !important;
|
||||
}
|
||||
|
||||
#urlbar {
|
||||
top: 0 !important;
|
||||
}
|
||||
|
||||
#urlbar-input-container {
|
||||
height: 28px !important;
|
||||
}
|
||||
|
||||
/*** Load local overrides ***/
|
||||
@import url(./userChrome.local.css);
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user