Files
nix-config/home-manager/programs/zen.nix
T
2025-11-17 23:04:01 -05:00

127 lines
3.1 KiB
Nix

{ config, pkgs, ... }:
let
betterfox = pkgs.fetchFromGitHub {
owner = "yokoffing";
repo = "Betterfox";
rev = "116.1";
hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g=";
};
catppuccinUserChrome = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "zen-browser";
rev = "0893393f721facb884365a318111c4a7fce96b45";
hash = "sha256-+Nf7TUairZBnhYCFVBqiQW9QodV/xWSOnH6X9o6S7rM=";
};
replaceWithStylixColours =
textFile:
with config.stylix.base16Scheme.palette;
builtins.replaceStrings
[
"1e1e2e"
"181825"
"313244"
"45475a"
"585b70"
"cdd6f4"
"f5e0dc"
"b4befe"
"f38ba8"
"fab387"
"f9e2af"
"a6e3a1"
"94e2d5"
"89b4fa"
"cba6f7"
"f2cdcd"
]
[
base00
base01
base02
base03
base04
base05
base06
base07
base08
base09
base0A
base0B
base0C
base0D
base0E
base0F
]
(builtins.readFile textFile);
userChromeText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userChrome.css";
userContentText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userContent.css";
installExtension = name: {
inherit name;
value = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
installation_mode = "force_installed";
};
};
in
{
home.file.".zen/default/chrome/userChrome.css".text = userChromeText;
home.file.".zen/default/chrome/userContent.css".text = userContentText;
programs.zen-browser = {
enable = true;
policies = {
DisableTelemtry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off";
SearchBar = "unified";
ExtensionSettings = builtins.listToAttrs (
builtins.map (name: installExtension name) [
# uBlock Origin:
"uBlock0@raymondhill.net"
# SponsorBlocker
"sponsorBlocker@ajay.app"
# Return dislikes to YouTube
"{762f9885-5a13-4abd-9c77-433dcd38b8fd}"
# Catppuccin Mocha Mauve
"{76aabc99-c1a8-4c1e-832b-d4f2941d5a7a}"
# Dark Reader
"addon@darkreader.org"
# BitWarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}"
]
);
};
profiles.default = {
id = 0;
isDefault = true;
extraConfig = builtins.concatStringsSep "\n" [
(builtins.readFile "${betterfox}/Securefox.js")
(builtins.readFile "${betterfox}/Fastfox.js")
(builtins.readFile "${betterfox}/Peskyfox.js")
];
};
};
}