mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-07 12:19:07 +00:00
profiles/gaming: init NixOS module
This commit is contained in:
parent
1fa4a1ea5c
commit
80400c215a
57
modules/nixos/profiles/gaming.nix
Normal file
57
modules/nixos/profiles/gaming.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# NixOS gaming.
|
||||||
|
{ lib, options, config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.profiles.gaming;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.profiles.gaming = {
|
||||||
|
enable = lib.mkEnableOption "foodogsquared's gaming setup";
|
||||||
|
emulators.enable = lib.mkEnableOption "installation of individual game emulators";
|
||||||
|
retro-computing.enable = lib.mkEnableOption "installation of retro computer systems";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Just don't ask where you can sail getting the games. :)
|
||||||
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# All-around emulator. Also what I'm mainly using for quickly
|
||||||
|
# initializing sessions.
|
||||||
|
retroarchFull
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enabling all hardware settings for the desktop (unless the user
|
||||||
|
# explicitly disabled it).
|
||||||
|
profiles.desktop.hardware.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Enable the Wine setup for Linux gaming with Windows games.
|
||||||
|
profiles.desktop.wine.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Virtualize everything.
|
||||||
|
profiles.dev.virtualization.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Yes... Play your Brawl Stars and Clash Royale in NixOS. :)
|
||||||
|
virtualisation.waydroid.enable = lib.mkDefault true;
|
||||||
|
}
|
||||||
|
|
||||||
|
(lib.mkIf cfg.emulators.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ares # Another multi-system emulator but for accuracy.
|
||||||
|
duckstation # Taking a gander with the original console.
|
||||||
|
ppsspp # (PSP)-squared for foodogsquared.
|
||||||
|
pcsx2 # A nice emulator with a nice (NOT) name.
|
||||||
|
scummvm # Pretty scummy of us to put it here despite not being an emulator.
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
# Old computer systems for old people.
|
||||||
|
(lib.mkIf cfg.retro-computing.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
dosbox-staging
|
||||||
|
fuse-emulator
|
||||||
|
vice
|
||||||
|
x16-emulator
|
||||||
|
];
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user