summaryrefslogtreecommitdiff
path: root/users/seth/programs/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'users/seth/programs/firefox')
-rw-r--r--users/seth/programs/firefox/arkenfox.nix73
-rw-r--r--users/seth/programs/firefox/default.nix51
2 files changed, 124 insertions, 0 deletions
diff --git a/users/seth/programs/firefox/arkenfox.nix b/users/seth/programs/firefox/arkenfox.nix
new file mode 100644
index 0000000..98bc107
--- /dev/null
+++ b/users/seth/programs/firefox/arkenfox.nix
@@ -0,0 +1,73 @@
+{
+ config,
+ lib,
+ inputs,
+ ...
+}: let
+ cfg = config.seth.programs.firefox.arkenfox;
+in {
+ imports = [inputs.arkenfox.hmModules.arkenfox];
+
+ options.seth.programs.firefox.arkenfox = {
+ enable =
+ lib.mkEnableOption "Arkenfox settings for Firefox"
+ // {
+ default = config.seth.programs.firefox.enable;
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ programs.firefox = {
+ arkenfox = {
+ enable = true;
+ version = "122.0";
+ };
+
+ profiles.arkenfox.arkenfox = let
+ enableSections = sections: lib.genAttrs sections (_: {enable = true;});
+ in
+ lib.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;
+ };
+ } (enableSections [
+ "0100"
+ "0200"
+ "0300"
+ "0400"
+ "0600"
+ "0700"
+ "0800"
+ "0900"
+ "1000"
+ "1200"
+ "1600"
+ "1700"
+ "2000"
+ "2400"
+ "2600"
+ "2700"
+ "2800"
+ "4500"
+ ]);
+ };
+ };
+}
diff --git a/users/seth/programs/firefox/default.nix b/users/seth/programs/firefox/default.nix
new file mode 100644
index 0000000..ac67a31
--- /dev/null
+++ b/users/seth/programs/firefox/default.nix
@@ -0,0 +1,51 @@
+{
+ config,
+ lib,
+ inputs',
+ ...
+}: let
+ cfg = config.seth.programs.firefox;
+in {
+ options.seth.programs.firefox = {
+ enable =
+ lib.mkEnableOption "Firefox configuration"
+ // {
+ default = config.seth.desktop.enable;
+ };
+ };
+
+ imports = [
+ ./arkenfox.nix
+ ];
+
+ config = lib.mkIf cfg.enable {
+ home.sessionVariables = {
+ MOZ_ENABLE_WAYLAND = "1";
+ };
+
+ programs.firefox = {
+ enable = true;
+ profiles.arkenfox = {
+ extensions = with inputs'.firefox-addons.packages; [
+ bitwarden
+ floccus
+ ublock-origin
+ ];
+
+ isDefault = true;
+
+ settings = {
+ # disable firefox accounts & pocket
+ "extensions.pocket.enabled" = false;
+ "identity.fxaccounts.enabled" = false;
+
+ # hw accel
+ "media.ffmpeg.vaapi.enabled" = true;
+
+ # widevine drm
+ "media.gmp-widevinecdm.enabled" = true;
+ };
+ };
+ };
+ };
+}