vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / hardware / supergfxd.nix
blob62296014a8dc38c641f57d7ff58c589f1fd541eb
1 { config, lib, pkgs, ... }:
3 let
4   cfg = config.services.supergfxd;
5   json = pkgs.formats.json { };
6 in
8   options = {
9     services.supergfxd = {
10       enable = lib.mkEnableOption "the supergfxd service";
12       settings = lib.mkOption {
13         type = lib.types.nullOr json.type;
14         default = null;
15         description = ''
16           The content of /etc/supergfxd.conf.
17           See https://gitlab.com/asus-linux/supergfxctl/#config-options-etcsupergfxdconf.
18         '';
19       };
20     };
21   };
23   config = lib.mkIf cfg.enable {
24     environment.systemPackages = [ pkgs.supergfxctl ];
26     environment.etc."supergfxd.conf" = lib.mkIf (cfg.settings != null) {
27       source = json.generate "supergfxd.conf" cfg.settings;
28       mode = "0644";
29     };
31     services.dbus.enable = true;
33     systemd.packages = [ pkgs.supergfxctl ];
34     systemd.services.supergfxd.wantedBy = [ "multi-user.target" ];
35     systemd.services.supergfxd.path = [ pkgs.kmod pkgs.pciutils ];
37     services.dbus.packages = [ pkgs.supergfxctl ];
38     services.udev.packages = [ pkgs.supergfxctl ];
39   };
41   meta.maintainers = pkgs.supergfxctl.meta.maintainers;