NixOS-Config/modules/home/programs/gui/librewolf/default.nix

297 lines
9.8 KiB
Nix
Raw Normal View History

2024-10-15 02:40:43 -04:00
{ pkgs, config, ... }:
2024-10-09 03:36:08 -04:00
let
# FireFox theme, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
themeFont = ''
--tab-font: '${config.look.fonts.main}';
--urlbar-font: '${config.look.fonts.main}';
'';
2024-08-24 22:16:51 -04:00
themeJim = ''
:root {
2024-10-15 02:40:43 -04:00
--tab-active-bg-color: #${config.look.colors.prime};
--tab-hover-bg-color: #${config.look.colors.accent};
--tab-inactive-bg-color: #${config.look.colors.dark};
2024-08-24 22:16:51 -04:00
--tab-active-fg-fallback-color: #FFFFFF;
2024-10-15 02:40:43 -04:00
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
--urlbar-focused-bg-color: #${config.look.colors.dark};
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
--toolbar-bgcolor: #${config.look.colors.dark} !important;
2024-08-24 22:16:51 -04:00
'';
themeAlt = ''
:root {
2024-10-15 02:40:43 -04:00
--tab-active-bg-color: #${config.look.colors.dark};
--tab-hover-bg-color: #${config.look.colors.accent};
--tab-inactive-bg-color: #${config.look.colors.prime};
--tab-active-fg-fallback-color: #${config.look.colors.text};
2024-08-24 22:16:51 -04:00
--tab-inactive-fg-fallback-color: #FFFFFF;
2024-10-15 02:40:43 -04:00
--urlbar-focused-bg-color: #${config.look.colors.prime};
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
--toolbar-bgcolor: #${config.look.colors.prime} !important;
2024-08-24 22:16:51 -04:00
'';
in {
# Enable Librewolf and extensions
programs.firefox = let
commonExtensions = with config.nur.repos.rycee.firefox-addons; [
ublock-origin
bitwarden
darkreader
sponsorblock
return-youtube-dislikes
2024-09-13 23:50:43 -04:00
simple-tab-groups
2024-10-27 16:46:50 -04:00
vimium
2024-08-24 22:16:51 -04:00
];
commonSearch = {
force = true;
2024-11-18 17:14:02 -05:00
default = "Ecosia";
order = [
"Ecosia"
"NixPKGs"
"MyNixOS"
"YouTube"
];
2024-08-24 22:16:51 -04:00
engines = {
2024-11-18 17:14:02 -05:00
"Ecosia" = {
2024-08-24 22:16:51 -04:00
urls = [
{
2024-11-18 17:14:02 -05:00
template = "https://www.ecosia.org/search";
2024-08-24 22:16:51 -04:00
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
2024-11-18 17:14:02 -05:00
definedAliases = [ "@e" ];
2024-08-24 22:16:51 -04:00
};
"NixPKGs" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@pkgs" ];
2024-08-24 22:16:51 -04:00
};
2024-11-18 17:14:02 -05:00
"MyNixOS" = {
urls = [
{
template = "https://mynixos.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@my" ];
};
"YouTube" = {
urls = [
{
template = "https://www.youtube.com/results";
params = [
{
name = "search_query";
value = "{searchTerms}";
}
];
}
];
definedAliases = [ "@y" ];
};
2024-08-24 22:16:51 -04:00
};
};
commonBookmarks = [
{
name = "Jimbo";
url = "https://jimbosfiles.com";
}
{
name = "Corn";
url = "https://freecorn1854.win";
}
{
name = "Luna";
url = "https://www.lunamoonlight.xyz";
}
{
name = "Kernel";
url = "https://www.kernel.org";
}
{
name = "Github";
url = "https://github.com";
}
];
2024-08-24 22:16:51 -04:00
commonSettings = {
"general.autoScroll" = true;
2024-11-14 14:41:18 -05:00
2024-11-19 13:20:34 -05:00
"places.history.enabled" = false;
2024-11-14 14:41:18 -05:00
"font.name.serif.x-western" = config.look.fonts.main;
"font.name.sans-serif.x-western" = config.look.fonts.main;
"font.name.monospace.x-western" = config.look.fonts.nerd;
2024-08-24 22:16:51 -04:00
"browser.uidensity" = 1;
2024-11-19 13:20:34 -05:00
"browser.compactmode.show" = true;
"browser.send_pings" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.toolbars.bookmarks.visibility" = "never";
2024-11-14 14:41:18 -05:00
"browser.contentblocking.category" = "strict";
"browser.helperApps.deleteTempFileOnExit" = true;
2024-11-18 17:14:02 -05:00
"browser.search.separatePrivateDefault" = false;
2024-11-19 13:20:34 -05:00
"browser.download.useDownloadDir" = true;
"browser.aboutConfig.showWarning" = false;
2024-11-19 13:20:34 -05:00
"browser.startup.page" = 3;
"browser.theme.content-theme" = 0;
"browser.theme.toolbar-theme" = 0;
"browser.newtabpage.enabled" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
"browser.tabs.inTitlebar" = 0;
"browser.tabs.closeWindowWithLastTab" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.discovery.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.blockedURIs.enabled" = false;
"browser.safebrowsing.provider.google4.gethashURL" = false;
"browser.safebrowsing.provider.google4.updateURL" = false;
"browser.safebrowsing.provider.google.gethashURL" = false;
"browser.safebrowsing.provider.google.updateURL" = false;
2024-11-14 14:41:18 -05:00
2024-08-24 22:16:51 -04:00
"extensions.pocket.enabled" = false;
2024-11-14 14:41:18 -05:00
"extensions.autoDisableScopes" = 0;
2024-11-24 20:02:09 -05:00
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.getAddons.showPane" = false;
"extensions.webservice.discoverURL" = "";
"extensions.getAddons.discovery.api_url" = "";
"extensions.htmlaboutaddons.discover.enabled" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
2024-11-14 14:41:18 -05:00
2024-08-24 22:16:51 -04:00
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
2024-11-14 14:41:18 -05:00
"toolkit.tabbox.switchByScrolling" = true;
2024-11-18 17:14:02 -05:00
"privacy.resistFingerprinting" = true;
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = true;
"privacy.firstparty.isolate" = true;
2024-11-18 17:14:02 -05:00
"privacy.fingerprintingProtection" = true;
2024-11-14 14:41:18 -05:00
"privacy.donottrackheader.enabled" = true;
"privacy.globalprivacycontrol.enabled" = true;
"privacy.globalprivacycontrol.functionality.enabled" = true;
2024-11-18 17:14:02 -05:00
"privacy.clearOnShutdown.history" = true;
2024-08-24 22:16:51 -04:00
"privacy.clearOnShutdown.cookies" = false;
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
2024-11-14 14:41:18 -05:00
"privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true;
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
2024-11-18 17:14:02 -05:00
"network.trr.mode" = 3;
2024-12-09 23:07:20 -05:00
"network.trr.uri" = "https://wikimedia-dns.org/dns-query";
"network.cookie.cookieBehavior" = 1;
2024-11-14 14:41:18 -05:00
"network.cookie.sameSite.noneRequiresSecure" = true;
"network.http.referer.XOriginPolicy" = 2;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"network.http.referer.trimmingPolicy" = 2;
2024-11-18 17:14:02 -05:00
"media.ffmpeg.vaapi.enabled" = true;
"media.rdd-ffmpeg.enabled" = true;
"media.hardware-video-decoding.force-enabled" = true;
"gfx.webrender.all" = true;
"gfx.x11-egl.force-enabled" = true;
"signon.rememberSignons" = false;
"signon.management.page.breach-alerts.enabled" = false;
"dom.private-attribution.submission.enabled" = false;
"dom.battery.enabled" = false;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode.upgrade_local" = true;
"dom.security.https_only_mode_ever_enabled" = true;
"dom.security.https_only_mode_ever_enabled_pbm" = true;
2024-11-19 13:20:34 -05:00
"clipboard.autocopy" = false;
"middlemouse.paste" = false;
"identity.fxaccounts.enabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
2024-08-24 22:16:51 -04:00
"svg.context-properties.content.enabled" = true;
"services.sync.engine.addresses.available" = false;
2024-08-24 22:16:51 -04:00
"device.sensors.motion.enabled" = false;
"security.OCSP.require" = true;
2024-08-24 22:16:51 -04:00
"gnomeTheme.hideSingleTab" = true;
2024-09-08 09:31:28 -04:00
"webgl.disabled" = false;
2024-08-24 22:16:51 -04:00
};
in {
enable = true;
package = pkgs.librewolf;
profiles = {
Main = {
2024-08-24 22:16:51 -04:00
id = 0;
isDefault = true;
2024-08-24 22:16:51 -04:00
extensions = commonExtensions;
search = commonSearch;
bookmarks = commonBookmarks;
2024-08-24 22:16:51 -04:00
settings = commonSettings;
userChrome = ''
${themeJim}
${themeFont}
${builtins.readFile ./quteFox.css}
2024-08-24 22:16:51 -04:00
'';
};
Alt = {
id = 1;
extensions = commonExtensions;
search = commonSearch;
bookmarks = commonBookmarks;
2024-08-24 22:16:51 -04:00
settings = commonSettings;
userChrome = ''
${themeAlt}
${themeFont}
${builtins.readFile ./quteFox.css}
2024-08-24 22:16:51 -04:00
'';
};
Misc = {
id = 2;
extensions = commonExtensions;
search = commonSearch;
bookmarks = commonBookmarks;
2024-08-24 22:16:51 -04:00
settings = commonSettings;
};
};
};
# Fixes
home.file = {
# Symlinks to Librewolf
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "/home/${config.home.username}/.mozilla/firefox";
2024-08-24 22:16:51 -04:00
# Gnome theme
2024-11-14 14:41:18 -05:00
".mozilla/firefox/Misc/chrome".source = fetchTarball {
url = "https://github.com/rafaelmardojai/firefox-gnome-theme/archive/refs/tags/v132.zip";
sha256 = "095sv1ann2v7q5bfy65i118ylhp2vkpbgyf6fz84nd9yrx14rzwm";
};
2024-08-24 22:16:51 -04:00
};
}