nichts/nyx/homes/notashelf/programs/graphical/gaming/minecraft.nix
2024-04-09 23:11:33 +02:00

76 lines
2 KiB
Nix

{
osConfig,
pkgs,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (osConfig) modules;
env = modules.usrEnv;
prg = env.programs;
catppuccin-mocha = pkgs.fetchzip {
url = "https://raw.githubusercontent.com/catppuccin/prismlauncher/main/themes/Mocha/Catppuccin-Mocha.zip";
sha256 = "sha256-8uRqCoe9iSIwNnK13d6S4XSX945g88mVyoY+LZSPBtQ=";
};
in {
config = mkIf prg.gaming.minecraft.enable {
home = {
# copy the catppuccin theme to the themes directory of PrismLauncher
file.".local/share/PrismLauncher/themes/mocha" = {
source = catppuccin-mocha;
recursive = true;
};
packages = let
# java packages that are needed by various versions or modpacks
# different distributions of java may yield different results in performance
# and thus I recommend testing them one by one to remove those that you do not
# need in your configuration
jdks = with pkgs; [
# Java 8
temurin-jre-bin-8
zulu8
# Java 11
temurin-jre-bin-11
# Java 17
temurin-jre-bin-17
# Latest
temurin-jre-bin
zulu
graalvm-ce
];
additionalPrograms = with pkgs; [
gamemode
mangohud
jprofiler
];
glfw =
if env.isWayland
then pkgs.glfw-wayland-minecraft
else pkgs.glfw;
in [
# the successor to polyMC, which is now mostly abandoned
(pkgs.prismlauncher.override {
# get java versions required by various minecraft versions
# "write once run everywhere" my ass
inherit jdks;
# wrap Prismlauncher with programs in may need for workarounds
# or client features
inherit additionalPrograms;
# wrap Prismlauncher with the nixpkgs glfw, or optionally the wayland patched
# version of glfw while we're on Wayland.
inherit glfw;
})
];
};
};
}