config.nix/home/apps/internet/zen-browser.nix
2026-05-04 08:12:55 +02:00

103 lines
3.6 KiB
Nix

{
config,
lib,
pkgs,
inputs,
osConfig,
...
}:
let
extension = shortId: guid: {
name = guid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
prefs = {
# Check these out at about:config
"extensions.autoDisableScopes" = 0;
"extensions.pocket.enabled" = false;
"general.autoScroll" = true;
"general.smoothScroll" = true;
"middlemouse.contentLoadURL" = false;
"devtools.debugger.remote-enabled" = true;
"devtools.chrome.enabled" = true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.ml.enable" = false;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.menu" = false;
"browser.ml.chat.page" = false;
"browser.ml.chat.page.footerBadge" = false;
"browser.ml.chat.page.menuBadge" = false;
"browser.ml.linkPreview.enabled" = false;
"browser.ml.pageAssist.enabled" = false;
"browser.tabs.groups.smart.enabled" = false;
"browser.tabs.groups.smart.userEnabled" = false;
"extensions.ml.enabled" = false;
"browser.search.visualSearch.featureGate" = false;
# ...
};
extensions = [
# To add additional extensions, find it on addons.mozilla.org, find
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
# Then go to https://addons.mozilla.org/api/v5/addons/addon/!SHORT_ID!/ to get the guid
(extension "adnauseam" "adnauseam@rednoise.org")
(extension "floccus" "floccus@handmadeideas.org")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "simplelogin" "addon@simplelogin")
(extension "vimium-ff" "d7742d87-e61d-4b78-b8a1-b469842139fa")
(extension "localcdn-fork-of-decentraleyes" "{b86e4813-687a-43e6-ab65-0bde4ab75758}")
(extension "catppuccin-web-file-icons" "{bbb880ce-43c9-47ae-b746-c3e0096c5b76}")
(extension "peertube-companion" "peertube-companion@booteille")
(extension "peertubeify" "{01175c8e-4506-4263-bad9-d3ddfd4f5a5f}")
(extension "peertube-picks" "{937c0767-0608-41e2-917a-8bf06601275a}")
# ...
];
in
{
config =
if osConfig.apps.internet.browsers.zen-browser.enable then
{
home.packages = [
(pkgs.wrapFirefox
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped
{
extraPrefs = lib.concatLines (
lib.mapAttrsToList (
name: value: "lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});"
) prefs
);
extraPolicies = {
DisableTelemetry = true;
ExtensionSettings = builtins.listToAttrs extensions;
SearchEngines = {
Default = "kagi";
Add = [
# {
# Name = "${osConfig.user.userName}'s Series of Tubes";
# URLTemplate = "https://${osConfig.server.misc.searxng.subdomain}.${osConfig.networking.domain}/?q={searchTerms}";
# IconURL = "https://docs.searxng.org/_static/searxng-wordmark.svg";
# Alias = "@sgx";
# }
{
Name = "kagi";
URLTemplate = "https://kagi.com/search?q={searchTerms}";
IconURL = "https://kagi.com/asset/597c5c3/kagi_assets/logos/search.png";
Alias = "@k";
}
];
};
};
}
)
];
}
else
{ };
}