Add the rpcs3 config.yml file.

This commit is contained in:
Tom Alexander 2025-05-26 14:12:49 -04:00
parent daf35778c5
commit 5af4a95940
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
8 changed files with 122 additions and 2 deletions

View File

@ -32,6 +32,7 @@
./roles/graphics
./roles/hydra
./roles/iso
./roles/iso_mount
./roles/kanshi
./roles/kodi
./roles/kubernetes

View File

@ -75,6 +75,7 @@
me.gpg.enable = true;
me.graphical = true;
me.graphics_card_type = "amd";
me.iso_mount.enable = true;
me.kanshi.enable = false;
me.kubernetes.enable = true;
me.latex.enable = true;

View File

@ -66,6 +66,7 @@
me.gpg.enable = true;
me.graphical = true;
me.graphics_card_type = "amd";
me.iso_mount.enable = true;
me.kanshi.enable = false;
me.kubernetes.enable = true;
me.latex.enable = true;

View File

@ -0,0 +1,45 @@
{
config,
lib,
pkgs,
...
}:
let
iso_mount =
(pkgs.writeScriptBin "iso_mount" (builtins.readFile ./files/iso_mount.bash)).overrideAttrs
(old: {
buildCommand = "${old.buildCommand}\n patchShebangs $out";
});
iso_unmount =
(pkgs.writeScriptBin "iso_unmount" (builtins.readFile ./files/iso_unmount.bash)).overrideAttrs
(old: {
buildCommand = "${old.buildCommand}\n patchShebangs $out";
});
in
{
imports = [ ];
options.me = {
iso_mount.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install iso_mount.";
};
};
config = lib.mkIf config.me.iso_mount.enable (
lib.mkMerge [
{
environment.systemPackages = [
iso_mount
iso_unmount
];
}
]
);
}

View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
#
# Mount a full-disk image as a loopback device so you can mount individual partitions from inside of it.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
exec udisksctl loop-setup -r -f "${@}"

View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
#
# Mount a full-disk image as a loopback device so you can mount individual partitions from inside of it.
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
exec udisksctl loop-delete "${@}"

View File

@ -5,6 +5,14 @@
...
}:
let
rpcs3_config_yaml = (
pkgs.writeTextFile {
name = "config.yml";
text = lib.generators.toYAML { } config.me.rpcs3.config;
}
);
in
{
imports = [ ];
@ -15,6 +23,29 @@
example = true;
description = "Whether we want to install rpcs3.";
};
rpcs3.config = lib.mkOption {
type = lib.types.nullOr lib.types.attrs;
default = {
VFS = {
"Enable /host_root/" = false;
};
Video = {
"Write Color Buffers" = false;
VSync = true;
"Performance Overlay" = {
Enabled = true;
};
};
Miscellaneous = {
"Pause emulation on RPCS3 focus loss" = true;
"Start games in fullscreen mode" = true;
"Pause Emulation During Home Menu" = true;
};
};
example = null;
description = "RPCS3's config.yml in nix form.";
};
};
config = lib.mkIf config.me.rpcs3.enable (
@ -39,8 +70,21 @@
}
];
# .config/rpcs3/config.yml
# .config/rpcs3/GuiConfigs/CurrentSettings.ini
me.rpcs3.config.Core."Use LLVM CPU" =
lib.mkIf (config.me.optimizations.enable) config.me.optimizations.arch;
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/rpcs3/config.yml" = lib.mkIf (config.me.rpcs3.config != null) {
source = rpcs3_config_yaml;
};
home.file.".config/rpcs3/GuiConfigs/CurrentSettings.ini" = {
source = ./files/CurrentSettings.ini;
};
};
# TODO?: .config/rpcs3/GuiConfigs/CurrentSettings.ini
environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) {
hideMounts = true;
@ -84,6 +128,13 @@
group = "talexander";
mode = "0755";
}
{
# Controller config.
directory = ".config/rpcs3/input_configs";
user = "talexander";
group = "talexander";
mode = "0755";
}
];
};
};

View File

@ -0,0 +1,5 @@
[Meta]
currentStylesheet=Darker Style by TheMitoSan
[main_window]
infoBoxEnabledWelcome=false