ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / nixos / modules / services / hardware / supergfxd.nix
blobdd571b4fa546b1c2f29dfbddacad76fb235fa0ce
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
8 let
9   cfg = config.services.supergfxd;
10   json = pkgs.formats.json { };
13   options = {
14     services.supergfxd = {
15       enable = lib.mkEnableOption "the supergfxd service";
17       settings = lib.mkOption {
18         type = lib.types.nullOr json.type;
19         default = null;
20         description = ''
21           The content of /etc/supergfxd.conf.
22           See https://gitlab.com/asus-linux/supergfxctl/#config-options-etcsupergfxdconf.
23         '';
24       };
25     };
26   };
28   config = lib.mkIf cfg.enable {
29     environment.systemPackages = [ pkgs.supergfxctl ];
31     environment.etc."supergfxd.conf" = lib.mkIf (cfg.settings != null) {
32       source = json.generate "supergfxd.conf" cfg.settings;
33       mode = "0644";
34     };
36     services.dbus.enable = true;
38     systemd.packages = [ pkgs.supergfxctl ];
39     systemd.services.supergfxd.wantedBy = [ "multi-user.target" ];
40     systemd.services.supergfxd.path = [
41       pkgs.kmod
42       pkgs.pciutils
43     ];
45     services.dbus.packages = [ pkgs.supergfxctl ];
46     services.udev.packages = [ pkgs.supergfxctl ];
47   };
49   meta.maintainers = pkgs.supergfxctl.meta.maintainers;