summaryrefslogtreecommitdiff
path: root/users/seth/mixins/firefox/default.nix
blob: 10d702636aaf31243c7149cbd4774b4b9ea5f0a7 (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
{
  lib,
  osConfig,
  inputs,
  ...
}:

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

{
  imports = [
    inputs.getchpkgs.nixosModules.firefox-addons
    # Requires `github:dwarfmaster/arkenfox-nixos`
    # ./arkenfox.nix
  ];

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

        profiles.arkenfox = {
          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;
          };
        };
      };
    }

    # 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;
        };
      };
    })
  ];
}