96 lines
2.4 KiB
Nix
96 lines
2.4 KiB
Nix
![]() |
{
|
||
|
config,
|
||
|
lib,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
|
||
|
{
|
||
|
imports = [ ];
|
||
|
|
||
|
options.me = {
|
||
|
pcsx2.enable = lib.mkOption {
|
||
|
type = lib.types.bool;
|
||
|
default = false;
|
||
|
example = true;
|
||
|
description = "Whether we want to install pcsx2.";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = lib.mkIf config.me.pcsx2.enable (
|
||
|
lib.mkMerge [
|
||
|
(lib.mkIf config.me.graphical {
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
pcsx2
|
||
|
];
|
||
|
|
||
|
environment.persistence."/state" = lib.mkIf (!config.me.buildingIso) {
|
||
|
hideMounts = true;
|
||
|
users.talexander = {
|
||
|
directories = [
|
||
|
{
|
||
|
# Shaders, games list, and achievement data.
|
||
|
directory = ".config/PCSX2/cache";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
{
|
||
|
# Save states.
|
||
|
directory = ".config/PCSX2/sstates";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
{
|
||
|
# Screenshots.
|
||
|
directory = ".config/PCSX2/snaps";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
{
|
||
|
# Game covers.
|
||
|
directory = ".config/PCSX2/covers";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
{
|
||
|
# Video recordings.
|
||
|
directory = ".config/PCSX2/videos";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) {
|
||
|
hideMounts = true;
|
||
|
users.talexander = {
|
||
|
directories = [
|
||
|
{
|
||
|
# Game saves
|
||
|
directory = ".config/PCSX2/memcards";
|
||
|
user = "talexander";
|
||
|
group = "talexander";
|
||
|
mode = "0755";
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
home-manager.users.talexander =
|
||
|
{ pkgs, ... }:
|
||
|
{
|
||
|
home.file.".config/PCSX2/inis/PCSX2.ini" = {
|
||
|
source = ./files/PCSX2.ini;
|
||
|
};
|
||
|
};
|
||
|
})
|
||
|
]
|
||
|
);
|
||
|
}
|