Files
dotfiles/home-manager/progs/zen/default.nix

101 lines
2.9 KiB
Nix

{
pkgs,
lib,
inputs,
config,
...
}:
let
firefox-addons = inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system};
buildFirefoxXpiAddon =
inputs.firefox-addons.lib.${pkgs.stdenv.hostPlatform.system}.buildFirefoxXpiAddon;
hacker-smacker = buildFirefoxXpiAddon {
pname = "hacker-smacker";
version = "2.2";
addonId = "jid1-eo0mcXLTqCkaWA@jetpack";
url = "https://addons.mozilla.org/firefox/downloads/file/4715262/hacker_smacker-2.2.xpi";
sha256 = "d28f0597d5c4bae5db712b4875f4104120f7e55e5ea769c44d70996be31cc0d1";
meta = with lib; {
homepage = "https://www.hackersmacker.org";
description = "Highlight (friend) and filter (foe) individual authors on Hacker News";
license = licenses.mit;
platforms = platforms.all;
};
};
ublockSettings = import ./ublock.nix { inherit lib; };
darkReaderSettings = import ./dark-reader.nix { inherit lib; };
in
{
programs.zen-browser = {
enable = true;
profiles.default = {
isDefault = true;
extensions = {
force = true;
packages =
(with firefox-addons; [
bitwarden
buster-captcha-solver
consent-o-matic
darkreader
fastforwardteam
localcdn
refined-github
return-youtube-dislikes
search-by-image # reverse image search
ruffle_rs
snowflake
steam-database
ublock-origin
])
++ [ hacker-smacker ];
settings = {
"uBlock0@raymondhill.net" = ublockSettings;
"addon@darkreader.org" = darkReaderSettings;
};
};
search = {
force = true;
default = "kagi";
privateDefault = "ddg";
order = [
"kagi"
"ddg"
"google"
];
engines = {
kagi = {
name = "Kagi";
urls = [ { template = "https://kagi.com/search?q={searchTerms}"; } ];
iconMapObj."16" = "https://kagi.com/favicon.ico";
definedAliases = [ "@k" ];
};
google.metaData.alias = "@g";
};
};
settings = {
"identity.sync.tokenserver.uri" = "https://firefox-sync.sigkill.computer/1.0/sync/1.5";
# auto-enable extensions on install
"extensions.autoDisableScopes" = 0;
# don't sync prefs/addons — we manage them declaratively via nix
# syncing fights with the declarative config and can cause data loss
# https://github.com/nix-community/home-manager/issues/6083
"services.sync.engine.prefs" = false;
"services.sync.engine.addons" = false;
};
};
};
# Zen ignores XDG and hardcodes ~/.zen — symlink to module-managed path
home.file.".zen".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.configHome}/zen";
home.sessionVariables.BROWSER = "zen";
}