Add firefox

This commit is contained in:
outfoxxed 2023-06-26 21:16:43 -07:00
parent 2f7a523071
commit d45c45eba4
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
11 changed files with 935 additions and 5 deletions

View file

@ -137,6 +137,21 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nur": {
"locked": {
"lastModified": 1687838990,
"narHash": "sha256-pIXsJaH12VL5Zcu5UHEZg7wGFNVwFhSlhK8rhacwG/o=",
"owner": "nix-community",
"repo": "NUR",
"rev": "97f9d34d27b1e74b9ae891828938ba04136ff44c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
@ -144,6 +159,7 @@
"hyprland-hy3": "hyprland-hy3", "hyprland-hy3": "hyprland-hy3",
"hyprpaper": "hyprpaper", "hyprpaper": "hyprpaper",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nur": "nur",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"stable": "stable" "stable": "stable"
} }

View file

@ -23,6 +23,8 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nur.url = "github:nix-community/NUR";
# devenv # devenv
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";

View file

@ -24,6 +24,8 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nur.url = "github:nix-community/NUR";
# devenv # devenv
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";

View file

@ -1,6 +1,10 @@
{ { inputs, ... }: {
nixpkgs.overlays = [(final: prev: { nixpkgs.overlays = [
inputs.nur.overlay
(final: prev: {
kwrite = final.callPackage ./kwrite.nix {}; kwrite = final.callPackage ./kwrite.nix {};
qt5ct = final.callPackage ./qt5ct {}; qt5ct = final.callPackage ./qt5ct {};
})]; })
];
} }

View file

@ -5,6 +5,7 @@
imports = [ imports = [
./modules/wofi ./modules/wofi
./modules/dolphin ./modules/dolphin
./modules/firefox
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [

View file

@ -0,0 +1,106 @@
{ lib, pkgs, ... }@inputs:
let
inherit (import ./prefgroups.nix inputs) modules prefgroups;
extra-addons = let
buildFirefoxXpiAddon = lib.makeOverridable ({
stdenv ? pkgs.stdenv,
fetchurl ? pkgs.fetchurl,
pname,
version,
addonId,
url,
sha256,
...
}: stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl { inherit url sha256; };
preferLocalBuild = true;
allowSubstitutes = true;
buildCommand = ''
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
mkdir -p "$dst"
install -v -m644 "$src" "$dst/${addonId}.xpi"
'';
});
in {
github-reposize = buildFirefoxXpiAddon {
pname = "github-reposize";
version = "1.7.0";
addonId = "github-repo-size@mattelrah.com";
url = "https://addons.mozilla.org/firefox/downloads/file/3854469/github_repo_size-1.7.0.xpi";
sha256 = "2zGY12esYusaw2IzXM+1kP0B/0Urxu0yj7xXlDlutto=";
};
vencord = buildFirefoxXpiAddon {
pname = "vencord";
version = "1.2.7";
addonId = "vencord-firefox@vendicated.dev";
url = "https://addons.mozilla.org/firefox/downloads/file/4123132/vencord_web-1.2.7.xpi";
sha256 = "A/XKdT0EuDHsQ7mcK9hsXAoAJYUt4Uvp/rtCf/9dAS0=";
};
};
in {
programs.firefox = {
enable = true;
package = pkgs.firefox.overrideAttrs (pkg: let
imEntry = pkg.desktopItem.override (entry: {
name = "discord-firefox";
desktopName = "IMs (Firefox)";
exec = "${entry.exec} -no-remote -P Im";
mimeTypes = [];
});
in {
buildCommand = ''
${pkg.buildCommand}
cp ${imEntry}/share/applications/* $out/share/applications
'';
});
profiles = {
base = {
id = 1;
name = "BaseFF";
userChrome = builtins.readFile ./sideberry_chrome.css;
};
default = {
id = 0;
name = "Default";
userChrome = ''
${builtins.readFile ./sideberry_chrome.css}
${builtins.readFile ./sideberry_hide_ext_button.css}
'';
settings = with modules; {}
// base
// minor-1
// annoying;
extensions = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
bitwarden
darkreader
github-reposize
sidebery
simplelogin
sponsorblock
ublock-origin
umatrix
];
};
im = {
id = 2;
name = "Im";
userChrome = builtins.readFile ./inline_tabs_chrome.css;
settings = modules.base
// prefgroups.misc.restore-pages;
extensions = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
ublock-origin
vencord
];
};
};
};
}

View file

@ -0,0 +1,60 @@
/* Title bar */
.titlebar-buttonbox {
display: none !important;
}
.titlebar-spacer {
display: none !important;
}
/* Tab bar */
#navigator-toolbox {
border: 0px !important;
}
#TabsToolbar {
margin-left: 40vw !important;
}
/* Nav bar*/
#nav-bar {
background: transparent !important;
margin-top: -42px !important;
margin-bottom: 1px !important;
margin-right: 60vw !important;
}
/* URL bar */
#back-button {
display: none !important;
}
#forward-button {
display: none !important;
}
#tracking-protection-icon-container {
display: none !important;
}
#urlbar-container {
min-width: 100px !important;
}
#urlbar {
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
#page-action-buttons {
display: none !important;
}
#PanelUI-button {
display: none !important;
}
#unified-extensions-button {
display: none;
}

View file

@ -0,0 +1,569 @@
{ lib, ... }:
rec {
prefgroups = {
base = {
"browser.aboutConfig.showWarning" = false;
"browser.startup.homepage_override.mstone" = "ignore";
# "browser.startup.homepage" = "about:newtab";
# "browser.newtab.preload" = false;
# Show whole url
"browser.urlbar.trimURLs" = false;
# disable disk cache to preserve ssd
"browser.cache.disk.enable" = false;
"browser.sessionstore.interval" = 6000000;
"widget.gtk.overlay-scrollbars.enabled" = false;
# disable the nag icon in the corner
"browser.tabs.firefox-view" = false;
# disable plugin signing requirements
"xpinstall.signatures.required" = false;
"xpinstall.whitelist.required" = false;
};
security = {
disable-form-autofill = {
"browser.formfill.enable" = false;
"extensions.formautofill.available" = "off";
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.available" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.heuristics.enabled" = false;
};
disable-password-manager = {
# Just in case its somehow enabled
"security.ask_for_password" = 1;
"security.password_lifetime" = 0;
"signon.autofillForms" = false;
"signon.formlessCapture.enabled" = false;
"signon.rememberSignons" = false;
};
# UNTESTED
disable-cross-origin-auth-dialogs = {
"network.auth.subresource-http-auth-allow" = 1;
};
disable-tls-mitm = {
"security.ssl.require_safe_negotiation" = true;
"security.tls.enable_0rtt_data" = false;
};
certificate = {
validity = {
"security.OCSP.enabled" = 1;
"security.OCSP.require" = true;
# CRLite (external service, any concernes unknown?) - certificate revocation
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
# Firefox certificate blocklist
"extensions.blocklist.enabled" = true;
};
# Disabled local MITM on certificates (Fiddler, AV, etc)
enforcement = {
"security.pki.sha1_enforcement_level" = 1;
"security.cert_pinning.enforcement_level" = 2;
};
};
# HTTP resources on HTTPS pages
disable-http-resources = {
"security.mixed_content.block_display_content" = false;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode_send_http_background_request" = false;
};
# Display more and better warning information (+ advanced info) for SSL
ssl-ui = {
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.ssl_override_behavior" = 1;
"browser.xul.error_pages.expert_bad_cert" = true;
};
cross-origin = {
trimming = {
"network.http.referer.XOriginTrimmingPolicy" = 2;
};
same-host = {
"network.http.referer.XOriginPolicy" = 2;
};
same-domain = {
"network.http.referer.XOriginPolicy" = 1;
};
};
# No real reason to ever have this enabled
disable-uitour = {
"browser.uitour.enabled" = false;
"browser.uitour.url" = "";
};
disable-middlemouse-paste = {
"middlemouse.paste" = false;
# With this one enabled, just middleclicking will go to the url in clipboard
"middlemouse.contentLoadURL" = false;
};
# Punycode can be used to make fake domain names
show-punycode = {
"network.IDN_show_punycode" = true;
};
use-pdfjs = {
"pdfjs.disabled" = false;
"pdfjs.enableScripting" = false;
};
# Applies to cross origin permission requests
disable-permission-delegation = {
"permissions.delegation.enabled" = false;
};
# Only allow extionsions installed in profile
lockdown-extension-dirs = {
"extensions.enabledScopes" = 5;
"extensions.autoDisableScopes" = 15;
};
always-ask-extension-install = {
"extensions.postDownloadThirdPartyPrompt" = false;
};
# UNTESTED/UNKNOWN
remove-webchannel-whitelist = {
"webchannel.allowObject.urlWhitelist" = "";
};
# Remove extra permissions on mozilla pages
remove-mozilla-permissions = {
"permissions.manager.defaultsUrl" = "";
};
# Enable ETP Strict mode
# Enable Total Cookie Protection (xss cookie protection)
etp-strict = {
"browser.contentblocking.category" = "strict";
# Disable compat features
# "privacy.antitracking.enableWebcompat" = false;
};
# UNTESTED
partition-serviceworkers = {
"privacy.partition.serviceWorkers" = true;
};
disable-system-ui = {
"browser.display.use_system_colors" = false;
"widget.non-native-theme.enabled" = true;
};
disable-webgl = {
"webgl.disabled" = true;
};
disable-sessionrestore = {
"browser.sessionstore.resume_from_crash" = false;
};
# Yoinked from arkenfox/user.js
enforce-defaults = {
"network.http.referer.spoofSource" = false;
"dom.targetBlankNoOpener.enabled" = true;
"privacy.window.name.update.enabled" = true;
"dom.storage.next_gen" = true;
"privacy.firstparty.isolate" = false;
"extensions.webcompat.enable_shims" = true;
"security.tls.version.enable-deprecated" = false;
"extensions.webcompat-reporter.enabled" = false;
};
disable-js-jit = {
"javascript.options.baselinejit" = false;
"javascript.options.ion" = false;
"javascript.options.wasm" = false;
"javascript.options.asmjs" = false;
};
};
privacy = {
disable-activity-stream = {
"browser.newtabpage.activity-stream.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfg.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfg.features" = false;
# Remove default sites
"browser.newtabpage.activity-stream.default.sites" = "";
};
geolocation = {
# Use mozilla's location provider over google's
"geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
# Disable OS geolocation services
"geo.provider.use_gpsd" = false;
# Disable region
"browser.region.network.url" = "";
"browser.region.update.enabled" = false;
# Languages
"intl.accept_languages" = "en-US, en";
"javascript.use_us_english_locale" = true;
};
# Uses google analytics
disable-addon-reccomendation = {
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
};
disable-mozilla-telemetry = {
"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;
"toolkit.telemetry.pioneer-new-studies-available" = false;
"devtools.onboarding.telemetry.logged" = false;
};
disable-studies = {
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
};
disable-crash-reports = {
"breakpad.reportURL" = "";
"browser.tabs.crashReporting.sendReport" = false;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
};
# Impact unchecked (public wifi captive portals)
disable-captive-portals = {
"captivedetect.canonicalURL" = "";
"network.captive-portal-service.enabled" = false;
"network.connectivity-service.enabled" = false;
};
# Calls back to google
disable-safebrowsing = {
"browser.safebrowsing.downloads.enabled" = false;
# May be blocked by `downloads.enabled` already
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
};
disable-speculative-connections = {
"browser.places.speculativeConnect.enabled" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
};
disable-search-corrections = {
"keyword.enabled" = false;
# Adds www. or .com
"browser.fixup.alternate.enabled" = false;
};
disable-search-suggestions = {
"browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
};
disable-dns-query-leak = {
"browser.urlbar.dnsResolveSingleWordsAfterSearch" = false;
};
webrtc = {
# Untrusted = no camera/mic granted
hide-ip-untrusted = {
"media.peerconnection.ice.proxy_only_if_behind_proxy" = true;
"media.peerconnection.ice.default_address_only" = true;
};
hide-ip-trusted = {
"media.peerconnection.ice.no_host" = true;
};
disable = {
"media.peerconnection.enabled" = false;
"media.navigator.enabled" = false;
};
};
disable-accessability = {
"accessibility.force_disabled" = 1;
};
# Intended for analytics
disable-beacon = {
"beacon.enabled" = false;
};
# Clear cookies on exit
ephemeral-cookies = {
"network.cookie.lifetimePolicy" = 2;
"network.cookie.thirdparty.sessionOnly" = true;
"network.cookie.thirdparty.nonsecureSessionOnly" = true;
};
sanitize-on-shutdown = {
"privacy.sanitize.sanitizeOnShutdown" = true;
"privacy.clearOnShutdown.cache" = true;
"privacy.clearOnShutdown.downloads" = true;
"privacy.clearOnShutdown.formdata" = true;
"privacy.clearOnShutdown.history" = true;
"privacy.clearOnShutdown.sessions" = true;
"privacy.cpd.cache" = true;
"privacy.cpd.formdata" = true;
"privacy.cpd.history" = true;
"privacy.cpd.sessions" = true;
# Disabled because they have to be explicitly allowed per site
"privacy.clearOnShutdown.offlineApps" = false;
"privacy.clearOnShutdown.cookies" = false;
"privacy.cpd.offlineApps" = false;
"privacy.cpd.cookies" = false;
"privacy.sanitize.timeSpan" = 0;
};
resist-fingerprinting = {
"privacy.resistFingerprinting" = true;
};
# Snap window resizing (tor browser does this)
letterboxing = {
"privacy.resistFingerprinting.letterboxing" = true;
};
# Can break login pages
# Correction: Breaks a lot of shit. A LOT of shit.
disable-referrer-headers = {
"network.http.sendRefererHeader" = 0;
};
};
misc = {
disable-mozilla-account = {
"identity.fxaccounts.enabled" = false;
};
disable-pocket = {
"extensions.pocket.enabled" = false;
};
container-tabs = {
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
# Make default + tab action
# "privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
};
# Prefetching may make sites faster, but also causes unwanted background downloads
disable-prefetching = {
"network.prefetch-next" = false;
"network.dns.disablePrefetch" = true;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0;
};
disable-drm = {
"media.eme.enabled" = false;
};
disable-autoplay = {
"media.autoplay.default" = 5;
"media.autoplay.blocking_policy" = 2;
};
# Disallow sites resizing or moving the browser window
disable-window-manipulation = {
"dom.disable_window_move_resize" = true;
};
limited-popups = {
"dom.disable_open_during_load" = false;
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
};
ask-downloads = {
"browser.download.useDownloadDir" = false;
# Disable panel opening, lumped together
"browser.download.alwaysOpenPanel" = false;
};
ask-new-mimetypes = {
"browser.download.always_ask_before_handling_new_types" = true;
};
# Disable js opening new windows
always-newtab = {
"browser.link.open_newwindow" = 3;
"browser.link.open_newwindow.restriction" = 0;
};
# Stop save dialog delay
reduce-dialog-delay = {
# Still 500 to be less annoying, while avoiding click hijacking
"security.dialog_enable_delay" = 500;
};
# Handled by nix already
disable-extension-updates = {
"extensions.update.enabled" = false;
"extensions.update.autoUpdateDefault" = false;
};
always-show-downloads = {
"browser.download.autohideButton" = false;
};
bookmark-new-tab = {
"browser.tabs.loadBookmarksInTabs" = true;
};
enable-userchrome = {
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
};
restore-pages = {
"browser.startup.page" = 3;
};
hide-bookmark-bar = {
"browser.toolbars.bookmarks.visibility" = "never";
};
default-dark-theme = {
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
"layout.css.prefers-color-scheme.content-override" = 0;
};
};
};
modules = with prefgroups; {
base = {}
// base
// misc.disable-mozilla-account
// misc.container-tabs
// privacy.disable-activity-stream
// privacy.disable-addon-reccomendation
// privacy.disable-mozilla-telemetry
// privacy.disable-studies
// privacy.disable-crash-reports
// privacy.disable-safebrowsing
// privacy.disable-dns-query-leak
// security.disable-form-autofill
// security.disable-password-manager
// security.disable-cross-origin-auth-dialogs
// security.disable-tls-mitm
// security.certificate.validity
// security.certificate.enforcement
// security.ssl-ui
// privacy.webrtc.hide-ip-untrusted
// misc.disable-drm
// misc.disable-autoplay
// misc.disable-window-manipulation
// misc.limited-popups
// privacy.disable-accessability
// privacy.disable-beacon
// security.disable-uitour
// security.disable-middlemouse-paste
// security.show-punycode
// security.use-pdfjs
// security.disable-permission-delegation
// misc.ask-downloads
// misc.ask-new-mimetypes
// security.lockdown-extension-dirs
// security.always-ask-extension-install
// security.remove-mozilla-permissions
// security.partition-serviceworkers
// misc.always-newtab
// misc.reduce-dialog-delay
// security.enforce-defaults
// misc.bookmark-new-tab
// misc.disable-pocket
// misc.always-show-downloads
// misc.enable-userchrome
// misc.hide-bookmark-bar
// misc.default-dark-theme
;
# Minor breakage / inconvenience
minor-1 = {}
// misc.disable-prefetching
// privacy.disable-captive-portals
// privacy.disable-search-suggestions
// security.disable-http-resources
// security.cross-origin.trimming
// security.cross-origin.same-host
// security.remove-webchannel-whitelist
// security.etp-strict
// privacy.sanitize-on-shutdown
// privacy.resist-fingerprinting
// security.disable-system-ui
// security.disable-webgl
// security.disable-sessionrestore
// security.disable-js-jit
;
annoying = {}
// privacy.webrtc.hide-ip-trusted
// privacy.ephemeral-cookies
// privacy.webrtc.disable
# // privacy.disable-referrer-headers
;
};
mkUserJs = prefs: lib.concatStrings (lib.mapAttrsToList (name: value: ''
user_pref("${name}", "${builtins.toJSON value}");
'') prefs);
}

View file

@ -0,0 +1,166 @@
/* 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 115ms linear !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 linear 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);
}
/* 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;
}
*/

View file

@ -0,0 +1,3 @@
#main-window[titlepreface*=""] #unified-extensions-button {
display: none;
}

File diff suppressed because one or more lines are too long