{ config, pkgs, lib, ... }: let # Legacy libxml2 (2.9.x) — required by Tibia libxml2_2_9 = pkgs.stdenv.mkDerivation { pname = "libxml2-2.9"; version = "2.9.14"; src = pkgs.fetchurl { url = "https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.14.tar.xz"; sha256 = "sha256-YNdKJX0czsBHXnScui8hVZ5IE577pv8oIkNXx8eY3+4="; }; nativeBuildInputs = [ pkgs.pkg-config ]; buildInputs = [ pkgs.zlib pkgs.xz ]; configureFlags = [ "--disable-static" "--without-python" ]; enableParallelBuilding = true; }; # Centralized runtime library path for Tibia tibiaLibPath = lib.makeLibraryPath [ pkgs.nss pkgs.nspr pkgs.libxkbfile libxml2_2_9 ]; # Helper: LD_LIBRARY_PATH export line exportLibs = '' export LD_LIBRARY_PATH="${tibiaLibPath}:$LD_LIBRARY_PATH" ''; # Wrapper for the real client (system-wide) tibiaClientWrapper = pkgs.writeShellScriptBin "tibia-client" '' #!/usr/bin/env bash ${exportLibs} exec steam-run "$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia/bin/client" "$@" ''; # Patcher for Tibia's package.json tibiaPatcher = pkgs.writeShellScriptBin "tibia-patch" '' #!/usr/bin/env bash set -e PKGDIR="$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia" PKGJSON="$PKGDIR/package.json" LOCALWRAPPER="$PKGDIR/tibia-client-wrapper" if [ ! -f "$PKGJSON" ]; then echo "package.json not found — run the launcher once first." exit 0 fi # Create wrapper inside Tibia package directory cat > "$LOCALWRAPPER" <