From b0186dc85bb52a553849b1881c332c49a3445854 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Thu, 13 Feb 2025 20:45:49 -0500 Subject: [PATCH] Add a role for 2ship2harkinian (Majora's Mask PC port). --- nix/steam_deck/configuration/home.nix | 1 + .../configuration/hosts/deck/default.nix | 1 + .../roles/2ship2harkinian/default.nix | 43 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 nix/steam_deck/configuration/roles/2ship2harkinian/default.nix diff --git a/nix/steam_deck/configuration/home.nix b/nix/steam_deck/configuration/home.nix index 433dffc..3b905dd 100644 --- a/nix/steam_deck/configuration/home.nix +++ b/nix/steam_deck/configuration/home.nix @@ -7,6 +7,7 @@ }: { imports = [ + ./roles/2ship2harkinian ./roles/graphics ./roles/shipwright ./roles/steam_rom_manager diff --git a/nix/steam_deck/configuration/hosts/deck/default.nix b/nix/steam_deck/configuration/hosts/deck/default.nix index 1b6e85a..a9cf960 100644 --- a/nix/steam_deck/configuration/hosts/deck/default.nix +++ b/nix/steam_deck/configuration/hosts/deck/default.nix @@ -10,6 +10,7 @@ config = { me.graphical = true; + me.ship2harkinian.enable = true; me.shipwright.enable = true; me.steam_rom_manager.enable = false; # Steam rom manager UI does not render. I think it wants to be in an AppImage. }; diff --git a/nix/steam_deck/configuration/roles/2ship2harkinian/default.nix b/nix/steam_deck/configuration/roles/2ship2harkinian/default.nix new file mode 100644 index 0000000..e26541d --- /dev/null +++ b/nix/steam_deck/configuration/roles/2ship2harkinian/default.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + ship2harkinian.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install 2ship2harkinian."; + }; + }; + + config = lib.mkIf config.me.ship2harkinian.enable ( + lib.mkMerge [ + { + allowedUnfree = [ "2ship2harkinian" ]; + } + (lib.mkIf config.me.graphical { + home.packages = with pkgs; [ + (config.lib.nixGL.wrap _2ship2harkinian) + ]; + + # TODO perhaps install ~/.local/share/2ship/2ship2harkinian.json + + home.persistence."/home/deck/.persist" = { + directories = [ + { + directory = ".local/share/2ship"; + method = "symlink"; + } + ]; + }; + }) + ] + ); +}