101 lines
2.9 KiB
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";
|
|
}
|