From ec8116dd92c96f9902f420649de3fc0477ff4359 Mon Sep 17 00:00:00 2001
From: 514fpv <koishi@514fpv.one>
Date: Sun, 7 Jan 2024 21:51:12 +0800
Subject: [PATCH] feat(minecraft): add app user capability

---
 home/minecraft/home.nix  | 5 ++++-
 home/minecraft/nixos.nix | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/home/minecraft/home.nix b/home/minecraft/home.nix
index 67e336cd..7414ccdf 100644
--- a/home/minecraft/home.nix
+++ b/home/minecraft/home.nix
@@ -1,7 +1,10 @@
 { pkgs
 , lib
 , config
-, ... }: with lib; mkIf config.passthrough.minecraft.enable {
+, ... }: with lib; let
+  cfg = config.passthrough.minecraft;
+  enable = cfg.enable && (cfg.allUsers || (config.home.username == "app"));
+in mkIf enable {
   home.packages = with pkgs; [
     prismlauncher
     jdk8
diff --git a/home/minecraft/nixos.nix b/home/minecraft/nixos.nix
index d15d957d..a412f200 100644
--- a/home/minecraft/nixos.nix
+++ b/home/minecraft/nixos.nix
@@ -3,9 +3,11 @@
 , config
 , ... }: with lib; let
   cfg = config.home.minecraft;
+  persist = [ ".local/share/PrismLauncher" ];
 in {
   options.home.minecraft = {
     enable = mkEnableOption "minecraft game launcher and jvm";
+    allUsers = mkEnableOption "set up for all users";
   };
 
   config = {
@@ -14,6 +16,7 @@ in {
       { passthrough.minecraft = cfg; }
     ];
 
-    users.home.persist.directories = mkIf cfg.enable [ ".local/share/PrismLauncher" ];
+    users.home.persist.directories = with cfg; mkIf (enable && allUsers) persist;
+    users.home.persistApp.directories = with cfg; mkIf (enable && !allUsers) persist;
   };
 }