vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / hardware / tuxedo-rs.nix
blobcfdc1c64d1183d3e1426679f24b37c7165363767
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.hardware.tuxedo-rs;
5 in
7   options = {
8     hardware.tuxedo-rs = {
9       enable = lib.mkEnableOption "Rust utilities for interacting with hardware from TUXEDO Computers";
11       tailor-gui.enable = lib.mkEnableOption "tailor-gui, an alternative to TUXEDO Control Center, written in Rust";
12     };
13   };
15   config = lib.mkIf cfg.enable (lib.mkMerge [
16     {
17       hardware.tuxedo-keyboard.enable = true;
19       systemd = {
20         services.tailord = {
21           enable = true;
22           description = "Tuxedo Tailor hardware control service";
23           after = [ "systemd-logind.service" ];
24           wantedBy = [ "multi-user.target" ];
26           serviceConfig = {
27             Type = "dbus";
28             BusName = "com.tux.Tailor";
29             ExecStart = "${pkgs.tuxedo-rs}/bin/tailord";
30             Environment = "RUST_BACKTRACE=1";
31             Restart = "on-failure";
32           };
33         };
34       };
36       services.dbus.packages = [ pkgs.tuxedo-rs ];
38       environment.systemPackages = [ pkgs.tuxedo-rs ];
39     }
40     (lib.mkIf cfg.tailor-gui.enable {
41       environment.systemPackages = [ pkgs.tailor-gui ];
42     })
43   ]);
45   meta.maintainers = with lib.maintainers; [ mrcjkb ];