diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index 5873b6d..4b06ff2 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -61,6 +61,7 @@ ./roles/sm64ex ./roles/sops ./roles/sound + ./roles/spaghettikart ./roles/ssh ./roles/steam ./roles/steam_run_free diff --git a/nix/configuration/hosts/odo/default.nix b/nix/configuration/hosts/odo/default.nix index 2beb781..f0800ba 100644 --- a/nix/configuration/hosts/odo/default.nix +++ b/nix/configuration/hosts/odo/default.nix @@ -96,6 +96,7 @@ me.shikane.enable = true; me.sops.enable = true; me.sound.enable = true; + me.spaghettikart.enable = true; me.steam.enable = true; me.steam_run_free.enable = true; me.sway.enable = true; diff --git a/nix/configuration/hosts/quark/default.nix b/nix/configuration/hosts/quark/default.nix index 5fa82d1..c1bf327 100644 --- a/nix/configuration/hosts/quark/default.nix +++ b/nix/configuration/hosts/quark/default.nix @@ -92,6 +92,7 @@ me.shikane.enable = true; me.sops.enable = true; me.sound.enable = true; + me.spaghettikart.enable = true; me.steam.enable = true; me.steam_run_free.enable = true; me.sway.enable = true; diff --git a/nix/configuration/roles/spaghettikart/default.nix b/nix/configuration/roles/spaghettikart/default.nix new file mode 100644 index 0000000..138af0e --- /dev/null +++ b/nix/configuration/roles/spaghettikart/default.nix @@ -0,0 +1,49 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + spaghettikart.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install spaghettikart."; + }; + }; + + config = lib.mkIf config.me.spaghettikart.enable ( + lib.mkMerge [ + { + allowedUnfree = [ "spaghettikart" ]; + } + (lib.mkIf config.me.graphical { + environment.systemPackages = with pkgs; [ + spaghettikart + ]; + + me.install.user.talexander.file = { + ".local/share/spaghettikart/spaghettify.cfg.json" = { + source = ./files/spaghettify.cfg.json; + method = "overwrite"; + }; + }; + + environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) { + hideMounts = true; + users.talexander = { + files = [ + ".local/share/spaghettikart/default.sav" + ".local/share/spaghettikart/mk64.o2r" + ]; + }; + }; + }) + ] + ); +} diff --git a/nix/configuration/roles/spaghettikart/files/spaghettify.cfg.json b/nix/configuration/roles/spaghettikart/files/spaghettify.cfg.json new file mode 100644 index 0000000..04470d3 --- /dev/null +++ b/nix/configuration/roles/spaghettikart/files/spaghettify.cfg.json @@ -0,0 +1,14 @@ +{ + "CVars": { + "gDisableLod": 1, + "gMSAAValue": 2, + "gShowSpaghettiVersion": 0, + "gSkipIntro": 1, + "gVsyncEnabled": 1 + }, + "Window": { + "Fullscreen": { + "Enabled": true + } + } +}