diff options
author | Johannes Arnold <johannes.arnold@stud.uni-hannover.de> | 2022-02-05 00:50:11 +0100 |
---|---|---|
committer | Johannes Arnold <johannes.arnold@stud.uni-hannover.de> | 2022-02-08 20:52:02 +0100 |
commit | d282f448ff74243ed1a1661c09ae27f010096cef (patch) | |
tree | f817903fc1c2e8501975d54eb98956468a0f663d /nixos/modules/services/x11 | |
parent | f80278219f00b38762847049f6d482898051c2ca (diff) | |
download | nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.gz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.bz2 nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.lz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.xz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.zst nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.zip |
nixos/retroarch: add RetroArch as a desktop session
Diffstat (limited to 'nixos/modules/services/x11')
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/default.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/retroarch.nix | 40 |
2 files changed, 41 insertions, 1 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index 6ee5b0fc54f..8247a7e381c 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -19,7 +19,7 @@ in # E.g., if Plasma 5 is enabled, it supersedes xterm. imports = [ ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix - ./lxqt.nix ./enlightenment.nix ./gnome.nix ./kodi.nix + ./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix ./cinnamon.nix ]; diff --git a/nixos/modules/services/x11/desktop-managers/retroarch.nix b/nixos/modules/services/x11/desktop-managers/retroarch.nix new file mode 100644 index 00000000000..d471673d452 --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/retroarch.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.services.xserver.desktopManager.retroarch; + +in { + options.services.xserver.desktopManager.retroarch = { + enable = mkEnableOption "RetroArch"; + + package = mkOption { + type = types.package; + default = pkgs.retroarch; + defaultText = literalExpression "pkgs.retroarch"; + example = literalExpression "pkgs.retroarch-full"; + description = "RetroArch package to use."; + }; + + extraArgs = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "--verbose" "--host" ]; + description = "Extra arguments to pass to RetroArch."; + }; + }; + + config = mkIf cfg.enable { + services.xserver.desktopManager.session = [{ + name = "RetroArch"; + start = '' + ${cfg.package}/bin/retroarch -f ${escapeShellArgs cfg.extraArgs} & + waitPID=$! + ''; + }]; + + environment.systemPackages = [ cfg.package ]; + }; + + meta.maintainers = with maintainers; [ j0hax ]; +} |