at 25.11-pre 1.3 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.hardware.tuxedo-rs; 9 10in 11{ 12 options = { 13 hardware.tuxedo-rs = { 14 enable = lib.mkEnableOption "Rust utilities for interacting with hardware from TUXEDO Computers"; 15 16 tailor-gui.enable = lib.mkEnableOption "tailor-gui, an alternative to TUXEDO Control Center, written in Rust"; 17 }; 18 }; 19 20 config = lib.mkIf cfg.enable ( 21 lib.mkMerge [ 22 { 23 hardware.tuxedo-drivers.enable = true; 24 25 systemd = { 26 services.tailord = { 27 enable = true; 28 description = "Tuxedo Tailor hardware control service"; 29 after = [ "systemd-logind.service" ]; 30 wantedBy = [ "multi-user.target" ]; 31 32 serviceConfig = { 33 Type = "dbus"; 34 BusName = "com.tux.Tailor"; 35 ExecStart = "${pkgs.tuxedo-rs}/bin/tailord"; 36 Environment = "RUST_BACKTRACE=1"; 37 Restart = "on-failure"; 38 }; 39 }; 40 }; 41 42 services.dbus.packages = [ pkgs.tuxedo-rs ]; 43 44 environment.systemPackages = [ pkgs.tuxedo-rs ]; 45 } 46 (lib.mkIf cfg.tailor-gui.enable { 47 environment.systemPackages = [ pkgs.tailor-gui ]; 48 }) 49 ] 50 ); 51 52 meta.maintainers = with lib.maintainers; [ mrcjkb ]; 53}