aboutsummaryrefslogtreecommitdiff
path: root/nix/options.nix
blob: cbd21a5a5e076703d5030ab0c3bc56e4d9d7ef54 (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
{ options, pkgs, lib, ... }:

with lib;
let
  # https://github.com/NixOS/nixpkgs/pull/75584
  json = with lib.types; let
    valueType = nullOr (oneOf [
      bool
      int
      float
      str
      (attrsOf valueType)
      (listOf valueType)
    ]) // {
      description = "Boolean, Integer, Float, String, or lists or attribute sets of these types";
    };
    in valueType;
in {
  options = {
    meta.description = mkOption {
      type = types.lines;
      default = "";
      internal = true;
    };

    preferences = mkOption {
      type = json;
      default = {};

      description = ''
        These nested values are translated directly into Firefox preferences, as can be
        found in user.js, prefs.js, or about:config.
      '';

      example = {
      };
    };

    policies = mkOption {
      type = json;
      default = {};

      description = ''
        These nested values must follow the pattern of https://github.com/mozilla/policy-templates/,
        but compliance is not validated immediately.
      '';

      example = {
        FirefoxHome = {
          Pocket = false;
          Locked = true;
        };
        NewTabPage = false;
      };
    };
    
    omnija.browser.patchCommand = mkOption {
      type = types.lines;
      default = "";

      description = ''
        This is a shell script to be executed for patching omni.ja
      '';
    };
  };
}