summaryrefslogtreecommitdiff
path: root/parts/users/seth/programs/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'parts/users/seth/programs/firefox')
-rw-r--r--parts/users/seth/programs/firefox/arkenfox.nix71
-rw-r--r--parts/users/seth/programs/firefox/default.nix50
2 files changed, 121 insertions, 0 deletions
diff --git a/parts/users/seth/programs/firefox/arkenfox.nix b/parts/users/seth/programs/firefox/arkenfox.nix
new file mode 100644
index 0000000..3da3a25
--- /dev/null
+++ b/parts/users/seth/programs/firefox/arkenfox.nix
@@ -0,0 +1,71 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.getchoo.programs.firefox;
+ inherit (lib) genAttrs mkEnableOption mkIf recursiveUpdate;
+
+ enableSections = sections: genAttrs sections (_: {enable = true;});
+in {
+ options.getchoo.programs.firefox.arkenfoxConfig.enable =
+ mkEnableOption "default arkenfox config" // {default = true;};
+
+ config.programs.firefox = mkIf (cfg.enable && cfg.arkenfoxConfig.enable) {
+ arkenfox = {
+ enable = true;
+ version = "115.1";
+ };
+
+ profiles.arkenfox.arkenfox =
+ recursiveUpdate {
+ enable = true;
+
+ # enable safe browsing
+ "0400"."0403"."browser.safebrowsing.downloads.remote.enabled".value = true;
+
+ # fix hulu
+ "1200"."1201"."security.ssl.require_safe_negotiation".value = false;
+
+ "2600"."2651"."browser.download.useDownloadDir" = {
+ enable = true;
+ value = true;
+ };
+
+ # disable rfp letterboxing
+ "4500"."4504"."privacy.resistFingerprinting.letterboxing".value = false;
+
+ "5000" = {
+ "5003"."signon.rememberSignons".enable = true;
+ # enable search autocomplete
+ "5021"."keyword.enabled".value = true;
+ };
+
+ # enable drm
+ "5500"."5508"."media.eme.enabled" = {
+ enable = true;
+ value = true;
+ };
+ } (enableSections [
+ "0100"
+ "0200"
+ "0300"
+ "0400"
+ "0600"
+ "0700"
+ "0800"
+ "0900"
+ "1000"
+ "1200"
+ "1400"
+ "1600"
+ "1700"
+ "2000"
+ "2400"
+ "2600"
+ "2700"
+ "2800"
+ "4500"
+ ]);
+ };
+}
diff --git a/parts/users/seth/programs/firefox/default.nix b/parts/users/seth/programs/firefox/default.nix
new file mode 100644
index 0000000..82ba80d
--- /dev/null
+++ b/parts/users/seth/programs/firefox/default.nix
@@ -0,0 +1,50 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.getchoo.programs.firefox;
+ inherit (lib) mkEnableOption mkIf;
+in {
+ options.getchoo.programs.firefox.enable = mkEnableOption "firefox" // {default = config.getchoo.desktop.enable;};
+
+ imports = [
+ ./arkenfox.nix
+ ];
+
+ config = mkIf cfg.enable {
+ home.sessionVariables = {
+ MOZ_ENABLE_WAYLAND = "1";
+ };
+
+ programs.firefox = {
+ enable = true;
+ profiles.arkenfox = {
+ extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ bitwarden
+ floccus
+ private-relay
+ ublock-origin
+ ];
+
+ isDefault = true;
+
+ settings = {
+ # disable firefox accounts & pocket
+ "extensions.pocket.enabled" = false;
+ "identity.fxaccounts.enabled" = false;
+
+ "gfx.webrender.all" = true;
+ "fission.autostart" = true;
+
+ # hw accel
+ "media.ffmpeg.vaapi.enabled" = true;
+
+ # widevine drm
+ "media.gmp-widevinecdm.enabled" = true;
+ };
+ };
+ };
+ };
+}