nix-config/homeManagerModules/gui-applications/firefox/default.nix

154 lines
3.9 KiB
Nix

{
config,
pkgs,
lib,
theme,
inputs,
...
}: {
imports = [];
options = {
homeManagerModules.firefox.enable = lib.mkEnableOption "enables Firefox";
};
config = lib.mkIf config.homeManagerModules.firefox.enable {
home.sessionVariables = {
MOZ_USE_XINPUT2 = 1;
GTK_USE_PORTAL = 1;
MOZ_ENABLE_WAYLAND = 1;
};
programs.librewolf = {
enable = true;
policies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = true;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
HardwareAcceleration = true;
TranslateEnabled = true;
FirefoxHome = {
Search = true;
TopSites = true;
SponsoredPocket = false;
Pocket = false;
Snippets = false;
SponsoredTopSites = false;
Highlights = false;
};
FirefoxSuggest = {
WebSuggestions = false;
SponsoredSuggestions = false;
ImproveSuggest = false;
};
EnableTrackingProtection = {
Value = true;
Cryptomining = true;
Fingerprinting = true;
};
UserMessaging = {
ExtensionRecommendations = false;
UrlbarInterventions = false;
SkipOnboarding = true;
};
};
nativeMessagingHosts = [pkgs.plasma-browser-integration];
profiles.thejevans = {
id = 0;
name = "thejevans";
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
bitwarden
darkreader
kagi-search
sponsorblock
tree-style-tab
plasma-integration
wallabagger
ublacklist
indie-wiki-buddy
dark-mode-website-switcher
];
search = {
force = true;
default = "Kagi";
engines = {
"Kagi" = {
definedAliases = ["@kagi"];
urls = [
{
template = "https://kagi.com/search?q={searchTerms}";
}
];
};
"Nix Packages" = {
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 = ["@np"];
};
"NixOS Wiki" = {
urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@nw"];
};
"Wikipedia (en)".metaData.alias = "@wiki";
"Google".metaData.hidden = true;
"Amazon.com".metaData.hidden = true;
"Bing".metaData.hidden = true;
"eBay".metaData.hidden = true;
};
};
settings = {
"general.smoothScroll" = true;
};
extraConfig = ''
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("full-screen-api.ignore-widgets", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.rdd-vpx.enabled", true);
'';
userChrome = builtins.readFile ./userChrome.css;
userContent = builtins.readFile ./userContent.css;
};
};
};
}