From 199bb38dfb9c20ea35cfc1321dcbfafd2d1eaa7f Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 26 May 2025 14:47:59 -0400 Subject: [PATCH] Fix rpcs3 config. --- nix/configuration/hosts/quark/default.nix | 177 +++++++++++----------- nix/configuration/roles/rpcs3/default.nix | 21 +-- 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/nix/configuration/hosts/quark/default.nix b/nix/configuration/hosts/quark/default.nix index 30a5233..672428a 100644 --- a/nix/configuration/hosts/quark/default.nix +++ b/nix/configuration/hosts/quark/default.nix @@ -13,96 +13,101 @@ ./wifi.nix ]; - # Generate with `head -c4 /dev/urandom | od -A none -t x4` - networking.hostId = "47ee7d7c"; + config = { + # Generate with `head -c4 /dev/urandom | od -A none -t x4` + networking.hostId = "47ee7d7c"; - networking.hostName = "quark"; # Define your hostname. + networking.hostName = "quark"; # Define your hostname. - time.timeZone = "America/New_York"; - i18n.defaultLocale = "en_US.UTF-8"; + time.timeZone = "America/New_York"; + i18n.defaultLocale = "en_US.UTF-8"; - me.secureBoot.enable = true; + me.secureBoot.enable = true; - me.optimizations = { - enable = true; - arch = "znver5"; - system_features = [ - "gccarch-znver4" - "gccarch-znver5" - "gccarch-skylake" - # "gccarch-alderlake" missing WAITPKG - "gccarch-x86-64-v3" - "gccarch-x86-64-v4" - "benchmark" - "big-parallel" - "kvm" - "nixos-test" + me.optimizations = { + enable = true; + arch = "znver5"; + system_features = [ + "gccarch-znver4" + "gccarch-znver5" + "gccarch-skylake" + # "gccarch-alderlake" missing WAITPKG + "gccarch-x86-64-v3" + "gccarch-x86-64-v4" + "benchmark" + "big-parallel" + "kvm" + "nixos-test" + ]; + }; + + # Early KMS + boot.initrd.kernelModules = [ "amdgpu" ]; + + # Mount tmpfs at /tmp + boot.tmp.useTmpfs = true; + + # Enable TRIM + # services.fstrim.enable = lib.mkDefault true; + + # RPCS3 has difficulty with znver5 + me.rpcs3.config.Core."Use LLVM CPU" = "znver4"; + + me.alacritty.enable = true; + me.ansible.enable = true; + me.ares.enable = true; + me.bluetooth.enable = true; + me.chromecast.enable = true; + me.chromium.enable = true; + me.docker.enable = true; + me.ecc.enable = true; + me.emacs_flavor = "full"; + me.firefox.enable = true; + me.flux.enable = true; + me.gcloud.enable = true; + me.git.config = ../../roles/git/files/gitconfig_home; + me.gnuplot.enable = true; + 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; + me.launch_keyboard.enable = true; + me.lvfs.enable = true; + me.media.enable = true; + me.nix_index.enable = true; + me.nix_worker.enable = true; + me.pcsx2.enable = true; + me.python.enable = true; + me.qemu.enable = true; + me.rpcs3.enable = true; + me.rust.enable = true; + me.shikane.enable = true; + me.sops.enable = true; + me.sound.enable = true; + me.steam.enable = true; + me.steam_run_free.enable = true; + me.sway.enable = true; + me.tekton.enable = true; + me.terraform.enable = true; + me.thunderbolt.enable = true; + me.vnc_client.enable = true; + me.vscode.enable = true; + me.wasm.enable = true; + me.waybar.enable = true; + me.wireguard.activated = [ + "drmario" + "wgh" + "colo" ]; + me.wireguard.deactivated = [ "wgf" ]; + me.zrepl.enable = true; + me.zsh.enable = true; + + me.sm64ex.enable = true; + me.shipwright.enable = true; + me.ship2harkinian.enable = true; }; - - # Early KMS - boot.initrd.kernelModules = [ "amdgpu" ]; - - # Mount tmpfs at /tmp - boot.tmp.useTmpfs = true; - - # Enable TRIM - # services.fstrim.enable = lib.mkDefault true; - - me.alacritty.enable = true; - me.ansible.enable = true; - me.ares.enable = true; - me.bluetooth.enable = true; - me.chromecast.enable = true; - me.chromium.enable = true; - me.docker.enable = true; - me.ecc.enable = true; - me.emacs_flavor = "full"; - me.firefox.enable = true; - me.flux.enable = true; - me.gcloud.enable = true; - me.git.config = ../../roles/git/files/gitconfig_home; - me.gnuplot.enable = true; - 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; - me.launch_keyboard.enable = true; - me.lvfs.enable = true; - me.media.enable = true; - me.nix_index.enable = true; - me.nix_worker.enable = true; - me.pcsx2.enable = true; - me.python.enable = true; - me.qemu.enable = true; - me.rpcs3.enable = true; - me.rust.enable = true; - me.shikane.enable = true; - me.sops.enable = true; - me.sound.enable = true; - me.steam.enable = true; - me.steam_run_free.enable = true; - me.sway.enable = true; - me.tekton.enable = true; - me.terraform.enable = true; - me.thunderbolt.enable = true; - me.vnc_client.enable = true; - me.vscode.enable = true; - me.wasm.enable = true; - me.waybar.enable = true; - me.wireguard.activated = [ - "drmario" - "wgh" - "colo" - ]; - me.wireguard.deactivated = [ "wgf" ]; - me.zrepl.enable = true; - me.zsh.enable = true; - - me.sm64ex.enable = true; - me.shipwright.enable = true; - me.ship2harkinian.enable = true; } diff --git a/nix/configuration/roles/rpcs3/default.nix b/nix/configuration/roles/rpcs3/default.nix index fbb6d9a..ef5aed2 100644 --- a/nix/configuration/roles/rpcs3/default.nix +++ b/nix/configuration/roles/rpcs3/default.nix @@ -6,12 +6,8 @@ }: let - rpcs3_config_yaml = ( - pkgs.writeTextFile { - name = "config.yml"; - text = lib.generators.toYAML { } config.me.rpcs3.config; - } - ); + rpcs3_config_yaml = settingsFormat.generate "config.yml" config.me.rpcs3.config; + settingsFormat = pkgs.formats.yaml { }; in { imports = [ ]; @@ -24,9 +20,13 @@ in description = "Whether we want to install rpcs3."; }; - rpcs3.config = lib.mkOption { - type = lib.types.nullOr lib.types.attrs; + rpcs3.config = lib.mkOption rec { + apply = lib.recursiveUpdate default; + inherit (settingsFormat) type; default = { + Core = { + "Use LLVM CPU" = lib.mkIf (config.me.optimizations.enable) config.me.optimizations.arch; + }; VFS = { "Enable /host_root/" = false; }; @@ -70,9 +70,6 @@ in } ]; - me.rpcs3.config.Core."Use LLVM CPU" = - lib.mkIf (config.me.optimizations.enable) config.me.optimizations.arch; - home-manager.users.talexander = { pkgs, ... }: { @@ -84,8 +81,6 @@ in }; }; - # TODO?: .config/rpcs3/GuiConfigs/CurrentSettings.ini - environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) { hideMounts = true; users.talexander = {