diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 54b35fa..f417177 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -11,6 +11,7 @@ in { imports = [ ./thinkfan.nix + ./jdks.nix ./mounts.nix ./akkotest.nix ]; diff --git a/hosts/laptop/home/default.nix b/hosts/laptop/home/default.nix index cb55740..b6cfc37 100644 --- a/hosts/laptop/home/default.nix +++ b/hosts/laptop/home/default.nix @@ -97,20 +97,26 @@ # dev # Wrap idea-community to add libraries required for Minecraft Moddev jetbrains.idea-community - (mylib.IDEAappwrapper { - inherit pkgs; - inputpkg = jetbrains.idea-community; - pkgsuffix = "mcdev-jbr17"; - libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; - jdk = pkgs.jetbrains.jdk-no-jcef-17; - }) - (mylib.IDEAappwrapper { + (mylib.appwrapper { inherit pkgs; inputpkg = jetbrains.idea-community; pkgsuffix = "mcdev-jbr21"; libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; - jdk = pkgs.jetbrains.jdk-no-jcef; }) + # (mylib.IDEAappwrapper { + # inherit pkgs; + # inputpkg = jetbrains.idea-community; + # pkgsuffix = "mcdev-jbr17"; + # libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; + # jdk = pkgs.jetbrains.jdk-no-jcef-17; + # }) + # (mylib.IDEAappwrapper { + # inherit pkgs; + # inputpkg = jetbrains.idea-community; + # pkgsuffix = "mcdev-jbr21"; + # libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; + # jdk = pkgs.jetbrains.jdk-no-jcef; + # }) packwiz # vscodium # see programs.vscode #nnn # terminal file manager diff --git a/hosts/laptop/jdks.nix b/hosts/laptop/jdks.nix new file mode 100644 index 0000000..368900e --- /dev/null +++ b/hosts/laptop/jdks.nix @@ -0,0 +1,22 @@ +# https://discourse.nixos.org/t/system-wide-installation-of-gradle-and-jdk/11305/4 +{ config, pkgs, ...}: +let + jdkEnv = pkgs.runCommand "jdk-env" { + buildInputs = with pkgs; [ + pkgs.jetbrains.jdk-no-jcef + pkgs.jetbrains.jdk-no-jcef-17 + ]; + } '' + mkdir -p $out/jdks + ln -s ${pkgs.jetbrains.jdk-no-jcef}/lib/openjdk $out/jdks/jdk-no-jcef + ln -s ${pkgs.jetbrains.jdk-no-jcef-17}/lib/openjdk $out/jdks/jdk-no-jcef-17 + ''; +in { + environment.systemPackages = [ + jdkEnv + ]; + systemd.tmpfiles.rules = [ + "d /opt 755 root root -" + "L+ /opt/java - - - - ${jdkEnv}/jdks" + ]; +} \ No newline at end of file diff --git a/lib/default.nix b/lib/default.nix index 356d1d8..21ce51a 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -5,7 +5,6 @@ inputpkg, pkgsuffix, libraries, - extrapathpkgs }: with pkgs; let name = "${inputpkg.pname}-${pkgsuffix}"; in stdenv.mkDerivation { @@ -17,8 +16,7 @@ mkdir -p $out/share/applications cp ${inputpkg}/share/applications/${inputpkg.pname}.desktop $out/share/applications/${name}.desktop makeWrapper ${inputpkg}/bin/${inputpkg.pname} $out/bin/${name} \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}" \ - --prefix PATH : "${lib.makeBinPath extrapathpkgs}" + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}" substituteInPlace $out/share/applications/${name}.desktop \ --replace-fail "=${inputpkg.pname}" "=${name}" sed -i -E "s/^Name=(.*)/Name=\1 (${pkgsuffix})/g" "$out/share/applications/${name}.desktop"