laptop: link jdks in /opt/java

This commit is contained in:
Lgmrszd 2025-05-31 14:29:12 +04:00
parent 5543cf819f
commit d6a6f51490
No known key found for this signature in database
GPG key ID: 9396B8BA6FBB14DE
4 changed files with 39 additions and 12 deletions

View file

@ -11,6 +11,7 @@ in
{ {
imports = [ imports = [
./thinkfan.nix ./thinkfan.nix
./jdks.nix
./mounts.nix ./mounts.nix
./akkotest.nix ./akkotest.nix
]; ];

View file

@ -97,20 +97,26 @@
# dev # dev
# Wrap idea-community to add libraries required for Minecraft Moddev # Wrap idea-community to add libraries required for Minecraft Moddev
jetbrains.idea-community jetbrains.idea-community
(mylib.IDEAappwrapper { (mylib.appwrapper {
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; inherit pkgs;
inputpkg = jetbrains.idea-community; inputpkg = jetbrains.idea-community;
pkgsuffix = "mcdev-jbr21"; pkgsuffix = "mcdev-jbr21";
libraries = with pkgs; [libpulseaudio libGL glfw openal stdenv.cc.cc.lib]; 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 packwiz
# vscodium # see programs.vscode # vscodium # see programs.vscode
#nnn # terminal file manager #nnn # terminal file manager

22
hosts/laptop/jdks.nix Normal file
View file

@ -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"
];
}

View file

@ -5,7 +5,6 @@
inputpkg, inputpkg,
pkgsuffix, pkgsuffix,
libraries, libraries,
extrapathpkgs
}: with pkgs; let }: with pkgs; let
name = "${inputpkg.pname}-${pkgsuffix}"; name = "${inputpkg.pname}-${pkgsuffix}";
in stdenv.mkDerivation { in stdenv.mkDerivation {
@ -17,8 +16,7 @@
mkdir -p $out/share/applications mkdir -p $out/share/applications
cp ${inputpkg}/share/applications/${inputpkg.pname}.desktop $out/share/applications/${name}.desktop cp ${inputpkg}/share/applications/${inputpkg.pname}.desktop $out/share/applications/${name}.desktop
makeWrapper ${inputpkg}/bin/${inputpkg.pname} $out/bin/${name} \ makeWrapper ${inputpkg}/bin/${inputpkg.pname} $out/bin/${name} \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}" \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libraries}"
--prefix PATH : "${lib.makeBinPath extrapathpkgs}"
substituteInPlace $out/share/applications/${name}.desktop \ substituteInPlace $out/share/applications/${name}.desktop \
--replace-fail "=${inputpkg.pname}" "=${name}" --replace-fail "=${inputpkg.pname}" "=${name}"
sed -i -E "s/^Name=(.*)/Name=\1 (${pkgsuffix})/g" "$out/share/applications/${name}.desktop" sed -i -E "s/^Name=(.*)/Name=\1 (${pkgsuffix})/g" "$out/share/applications/${name}.desktop"