host(renko): osu tachyon

Changed files
+102 -1
systems
renko
gui
+96
systems/renko/gui/games/_osu.nix
···
+
{
+
lib,
+
stdenvNoCC,
+
fetchurl,
+
appimageTools,
+
makeWrapper,
+
nativeWayland ? false,
+
+
version,
+
hash,
+
}:
+
+
let
+
pname = "osu-lazer-bin";
+
+
src = fetchurl {
+
inherit hash;
+
url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
+
};
+
+
meta = {
+
description = "Rhythm is just a *click* away (tachyon, patched drv)";
+
homepage = "https://osu.ppy.sh";
+
license = with lib.licenses; [
+
mit
+
cc-by-nc-40
+
unfreeRedistributable # osu-framework contains libbass.so in repository
+
];
+
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+
maintainers = with lib.maintainers; [
+
gepbird
+
stepbrobd
+
Guanran928
+
soopyc
+
];
+
mainProgram = "osu!";
+
platforms = [
+
"x86_64-linux"
+
];
+
};
+
+
passthru.updateScript = ./update.sh;
+
in
+
if stdenvNoCC.hostPlatform.isDarwin then
+
stdenvNoCC.mkDerivation {
+
inherit
+
pname
+
version
+
src
+
meta
+
passthru
+
;
+
+
nativeBuildInputs = [ makeWrapper ];
+
+
installPhase = ''
+
runHook preInstall
+
OSU_WRAPPER="$out/Applications/osu!.app/Contents"
+
OSU_CONTENTS="osu!.app/Contents"
+
mkdir -p "$OSU_WRAPPER/MacOS"
+
cp -r "$OSU_CONTENTS/Info.plist" "$OSU_CONTENTS/Resources" "$OSU_WRAPPER"
+
cp -r "osu!.app" "$OSU_WRAPPER/Resources/osu-wrapped.app"
+
makeWrapper "$OSU_WRAPPER/Resources/osu-wrapped.app/Contents/MacOS/osu!" "$OSU_WRAPPER/MacOS/osu!" --set OSU_EXTERNAL_UPDATE_PROVIDER 1
+
runHook postInstall
+
'';
+
}
+
else
+
appimageTools.wrapType2 {
+
inherit
+
pname
+
version
+
src
+
meta
+
passthru
+
;
+
+
extraPkgs = pkgs: with pkgs; [ icu ];
+
+
extraInstallCommands =
+
let
+
contents = appimageTools.extract { inherit pname version src; };
+
in
+
''
+
. ${makeWrapper}/nix-support/setup-hook
+
mv -v $out/bin/${pname} $out/bin/osu!
+
+
wrapProgram $out/bin/osu! \
+
${lib.optionalString nativeWayland "--set SDL_VIDEODRIVER wayland"} \
+
--set OSU_EXTERNAL_UPDATE_PROVIDER 1
+
+
install -m 444 -D ${contents}/osu!.desktop -t $out/share/applications
+
for i in 16 32 48 64 96 128 256 512 1024; do
+
install -D ${contents}/osu.png $out/share/icons/hicolor/''${i}x$i/apps/osu.png
+
done
+
'';
+
}
+6 -1
systems/renko/gui/games/osu.nix
···
}:
lib.mkIf config.gensokyo.traits.games {
environment.systemPackages = [
-
pkgs.osu-lazer-bin
+
# this override is crap don't do it
+
(pkgs.callPackage ./_osu.nix {
+
version = "2025.702.0-tachyon";
+
hash = "sha256-qlL6SZRITpTzur96Ge4AZmxH5pnd6tnuDIm6enppVu4=";
+
# nativeWayland = true; # this doesnt window properly
+
})
];
}