at 23.11-pre 1.0 kB view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let cfg = config.services.xserver.desktopManager.retroarch; 6 7in { 8 options.services.xserver.desktopManager.retroarch = { 9 enable = mkEnableOption (lib.mdDoc "RetroArch"); 10 11 package = mkOption { 12 type = types.package; 13 default = pkgs.retroarch; 14 defaultText = literalExpression "pkgs.retroarch"; 15 example = literalExpression "pkgs.retroarch-full"; 16 description = lib.mdDoc "RetroArch package to use."; 17 }; 18 19 extraArgs = mkOption { 20 type = types.listOf types.str; 21 default = [ ]; 22 example = [ "--verbose" "--host" ]; 23 description = lib.mdDoc "Extra arguments to pass to RetroArch."; 24 }; 25 }; 26 27 config = mkIf cfg.enable { 28 services.xserver.desktopManager.session = [{ 29 name = "RetroArch"; 30 start = '' 31 ${cfg.package}/bin/retroarch -f ${escapeShellArgs cfg.extraArgs} & 32 waitPID=$! 33 ''; 34 }]; 35 36 environment.systemPackages = [ cfg.package ]; 37 }; 38 39 meta.maintainers = with maintainers; [ j0hax ]; 40}