nixos-config/modules/graphical/firefox/default.nix
2023-04-13 11:00:33 +02:00

108 lines
3.6 KiB
Nix

{ config, lib, pkgs, ... }:
let
ff2mpv-host = pkgs.stdenv.mkDerivation rec {
pname = "ff2mpv";
version = "4.0.0";
src = pkgs.fetchFromGitHub {
owner = "woodruffw";
repo = "ff2mpv";
rev = "v${version}";
sha256 = "sxUp/JlmnYW2sPDpIO2/q40cVJBVDveJvbQMT70yjP4=";
};
buildInputs = [ pkgs.python3 ];
buildPhase = ''
sed -i "s#/home/william/scripts/ff2mpv#$out/bin/ff2mpv.py#" ff2mpv.json
sed -i 's#"mpv"#"${pkgs.mpv}/bin/umpv"#' ff2mpv.py
'';
installPhase = ''
mkdir -p $out/bin
cp ff2mpv.py $out/bin
mkdir -p $out/lib/mozilla/native-messaging-hosts
cp ff2mpv.json $out/lib/mozilla/native-messaging-hosts
'';
};
ffPackage = pkgs.firefox.override {
extraNativeMessagingHosts = [ ff2mpv-host ];
pkcs11Modules = [ pkgs.eid-mw ];
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = true;
FirefoxHome = { Pocket = false; Snippets = false; };
OfferToSaveLogins = false;
UserMessaging = { SkipOnboarding = true; ExtensionRecommendations = false; };
};
};
zotero-connector = pkgs.nur.repos.rycee.firefox-addons.buildFirefoxXpiAddon rec {
pname = "zotero-connector";
version = "5.0.107";
addonId = "zotero@chnm.gmu.edu";
url = "https://download.zotero.org/connector/firefox/release/Zotero_Connector-${version}.xpi";
sha256 = "RuAhWGvUhkog8SxzKhRwQQwzTQLzBKlHjSsFj9e25e4=";
meta = with lib; {
homepage = "https://www.zotero.org";
description = "Save references to Zotero from your web browser";
license = licenses.agpl3;
platforms = platforms.all;
};
};
in
{
options.chvp.graphical.firefox = {
enable = lib.mkEnableOption "firefox";
package = lib.mkOption {
description = "Final used firefox package";
default = ffPackage;
readOnly = true;
};
};
config = lib.mkIf config.chvp.graphical.firefox.enable {
chvp.base.zfs.homeLinks = [
{ path = ".mozilla"; type = "data"; }
{ path = ".cache/mozilla"; type = "cache"; }
];
home-manager.users.charlotte = { ... }: {
programs = {
browserpass = {
enable = true;
browsers = [ "firefox" ];
};
firefox = {
enable = true;
package = ffPackage;
profiles.default = {
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
belgium-eid
browserpass
decentraleyes
ff2mpv
ublock-origin
umatrix
zotero-connector
];
settings = {
"browser.aboutConfig.showWarning" = false;
"browser.contentblocking.category" = "custom";
"browser.download.dir" = "/home/charlotte/downloads";
"browser.newtabpage.enabled" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.startup.homepage" = "about:blank";
"browser.startup.page" = 3;
"dom.security.https_only_mode" = true;
"network.cookie.cookieBehavior" = 1;
"privacy.annotate_channels.strict_list.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"security.identityblock.show_extended_validation" = true;
};
};
};
};
};
};
}