{ config, writeShellApplication, stdenvNoCC, jre, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, rsync, ... }: stdenvNoCC.mkDerivation rec { name = "rars-flatlaf"; src = fetchFromGitHub { owner = "privat"; repo = "rars"; rev = "fd34014efd65b3cb5a52f1729c3b8240cae0c332"; hash = "sha256-D8X/cr+fnq/OOFYfMG9aPss95J8Z2yiROuF9kmHkK40="; fetchSubmodules = true; }; desktopItem = let hyprland = config.home-manager.users.${config.vars.mainUser}.wayland.windowManager.hyprland.finalPackage; execScript = writeShellApplication { name = "execScript"; runtimeInputs = [hyprland]; text = "(sleep 1; hyprctl dispatch togglefloating) & ${name}"; }; in makeDesktopItem { name = "RARS"; desktopName = "RARS"; exec = "${execScript}/bin/execScript"; icon = name; }; nativeBuildInputs = [makeWrapper rsync jre]; installPhase = let flatlaf = fetchurl { url = "https://repo1.maven.org/maven2/com/formdev/flatlaf/3.2/flatlaf-3.2.jar"; hash = "sha256-HAG+G9undDXWtySokKl7lkIUCFI7lEBduu+UgSVaxAA="; }; icon = fetchurl { url = "https://riscv.or.jp/wp-content/uploads/2019/06/cropped-RISC-V-logo-figonly-mod-2.png"; hash = "sha256-e1/iVmadVzyO77ikBr1cdXsJdDj8TiXh3Oyjek9GwqM="; }; in /* bash */ '' # ./build-jar.sh mkdir -p build find src -name "*.java" | xargs javac --release 8 -d build if [[ "$OSTYPE" == "darwin"* ]]; then find src -type f -not -name "*.java" -exec rsync -R {} build \; else find src -type f -not -name "*.java" -exec cp --parents {} build \; fi cp -rf build/src/* build rm -r build/src cp README.md License.txt build cd build jar cfm ../rars.jar ./META-INF/MANIFEST.MF * chmod +x ../rars.jar cd .. # ./build-jar-flatlaf.sh mkdir -p build-flatlaf/ cd build-flatlaf/ cp ${flatlaf} ../flatlaf.jar jar x < ../rars.jar jar x < "../flatlaf.jar" cat > META-INF/MANIFEST.MF < ./rars.desktop <