summaryrefslogtreecommitdiff
path: root/users/seth/mixins/firefox.nix
blob: 9fc83787ebfb0cc3ef68a3c1f0b205fcb9e42c61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
{
  lib,
  osConfig,
  inputs,
  ...
}:

let
  usingNvidia = lib.elem "nvidia" osConfig.services.xserver.videoDrivers or [ ];
in

{
  imports = [
    inputs.getchpkgs.homeModules.arkenfox
    inputs.getchpkgs.homeModules.firefox-addons
  ];

  config = lib.mkMerge [
    {
      programs.firefox = {
        addons = [
          # uBlock Origin
          { id = "[email protected]"; }
          # Bitwarden
          { id = "{446900e4-71c2-419f-a6a7-df9c091e268b}"; }
          # Floccus
          { id = "[email protected]"; }
        ];

        profiles.arkenfox = {
          arkenfox.enable = true;

          isDefault = true;

          settings = {
            # Leave me alone
            "browser.shell.checkDefaultBrowser" = false;

            # Disable Firefox Accounts & Pocket
            "extensions.pocket.enabled" = false;
            "identity.fxaccounts.enabled" = false;

            # Force enable hardware acceleration
            "media.ffmpeg.vaapi.enabled" = true;

            # Enable Widevine DRM
            "media.gmp-widevinecdm.enabled" = true;

            # ===
            ## Arkenfox overrides
            # ===

            # 1201: Fix Hulu
            "security.ssl.require_safe_negotiation" = false;

            # 2651: Download to my downloads
            "browser.download.useDownloadDir" = true;

            # 5003: I use Bitwarden
            "signon.rememberSignons" = true;

            # 5004: Only persist site permissions for session
            "permissions.memory_only" = true;

            # 5017: Don't auto-fill forms
            "extensions.formautofill.addresses.enabled" = false;
            "extensions.formautofill.creditCards.enabled" = false;

            # 5021: Enable search from URL bar by default
            "keyword.enabled" = true;
          };
        };
      };
    }

    # Required workarounds for nvidia-vaapi-driver
    # https://github.com/elFarto/nvidia-vaapi-driver?tab=readme-ov-file#firefox
    (lib.mkIf usingNvidia {
      home.sessionVariables = {
        MOZ_DISABLE_RDD_SANDBOX = "1";
      };

      programs.firefox = {
        profiles.arkenfox.settings = {
          "media.av1.enabled" = false;
          "media.rdd-ffmpeg.enabled" = true;
          "widget.dmabuf.force-enabled" = true;
        };
      };
    })
  ];
}