Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 14 additions & 86 deletions pkgs/by-name/it/itgmania/package.nix
Original file line number Diff line number Diff line change
@@ -1,97 +1,25 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
nasm,
pkg-config,
copyDesktopItems,
alsa-lib,
glew,
glib,
gtk3,
libmad,
libogg,
libpulseaudio,
libusb-compat-0_1,
libvorbis,
libxtst,
udev,
symlinkJoin,
makeWrapper,
makeDesktopItem,
itgmaniaPackages,
extraPackages ? [ ],
}:
let
unwrapped = itgmaniaPackages.itgmania-unwrapped;
in
symlinkJoin {
inherit (unwrapped) pname version meta;

stdenv.mkDerivation (finalAttrs: {
pname = "itgmania";
version = "1.2.0";
paths = [ unwrapped ] ++ extraPackages;

src = fetchFromGitHub {
owner = "itgmania";
repo = "itgmania";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-RkV/OIDudt2XemhaFRY7IA5o7Q2w+j01tauD7KpzYpA=";
};
nativeBuildInputs = [ makeWrapper ];

nativeBuildInputs = [
cmake
nasm
pkg-config
makeWrapper
copyDesktopItems
];
postBuild = ''
rm $out/bin/itgmania

buildInputs = [
alsa-lib
glew
glib
gtk3
libmad
libogg
libpulseaudio
libusb-compat-0_1
libvorbis
libxtst
udev
];

cmakeFlags = lib.optionals (!stdenv.hostPlatform.isx86) [ "-DWITH_MINIMAID=off" ];

postInstall = ''
makeWrapper $out/itgmania/itgmania $out/bin/itgmania \
--chdir $out/itgmania

mkdir -p $out/share/icons/hicolor/scalable/apps/
ln -s $out/itgmania/Data/logo.svg $out/share/icons/hicolor/scalable/apps/itgmania.svg
'';

desktopItems = [
(makeDesktopItem {
name = "itgmania";
desktopName = "ITGmania";
genericName = "Rhythm and dance game";
tryExec = "itgmania";
exec = "itgmania";
terminal = false;
icon = "itgmania";
type = "Application";
comment = "A cross-platform rhythm video game.";
categories = [
"Game"
"ArcadeGame"
];
})
];

meta = {
homepage = "https://www.itgmania.com/";
description = "Fork of StepMania 5.1, improved for the post-ITG community";
platforms = lib.platforms.linux;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
ftsimas
maxwell-lt
];
mainProgram = "itgmania";
};
})
passthru.unwrapped = unwrapped;
}
10 changes: 10 additions & 0 deletions pkgs/by-name/it/itgmania/packages.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{ lib, newScope }:
lib.makeScope newScope (self: {
itgmania-unwrapped = self.callPackage ./unwrapped.nix { };
# Themes
arrowcloud-theme = self.callPackage ./themes/arrowcloud-theme.nix { };
digital-dance = self.callPackage ./themes/digital-dance.nix { };
itg2-sm5 = self.callPackage ./themes/itg2-sm5.nix { };
itg3encore = self.callPackage ./themes/itg3encore.nix { };
zmod-simply-love = self.callPackage ./themes/zmod-simply-love.nix { };
})
31 changes: 31 additions & 0 deletions pkgs/by-name/it/itgmania/themes/arrowcloud-theme.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "arrowcloud-theme";
version = "20260320-unstable-2026-03-20";

src = fetchFromGitHub {
owner = "Arrow-Cloud";
repo = "theme";
rev = "14f5449afa407a8792ca311a9f5a4d7aec9832e7";
hash = "sha256-jQWHfVKL86Exow97RgWRbVBwZXxwPWodWPYrYs45X8Q=";
};

postInstall = ''
mkdir -p "$out/itgmania/Themes/${finalAttrs.pname}"
mv * "$out/itgmania/Themes/${finalAttrs.pname}"
'';

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

meta = {
description = "Arrow Cloud's fork of Zmod";
homepage = "https://github.com/Arrow-Cloud/theme";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ungeskriptet ];
};
})
31 changes: 31 additions & 0 deletions pkgs/by-name/it/itgmania/themes/digital-dance.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromCodeberg,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "digital-dance";
version = "1.1.1-unstable-2026-03-20";

src = fetchFromCodeberg {
owner = "JNero";
repo = "Digital-Dance-ITGMania";
rev = "b9f5a9aa09c03edc8f9bf0485db2cbe9eb3c0c0a";
hash = "sha256-o+18gQTQhF0bqMg+QaaiuQHheeBf1twHLfuGwtFKDuo=";
};

postInstall = ''
mkdir -p "$out/itgmania/Themes/${finalAttrs.pname}"
mv * "$out/itgmania/Themes/${finalAttrs.pname}"
'';

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

meta = {
description = "A theme for ITGMania to (hopefully) utilize all of it's features and more";
homepage = "https://codeberg.org/JNero/Digital-Dance-ITGMania";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ungeskriptet ];
};
})
31 changes: 31 additions & 0 deletions pkgs/by-name/it/itgmania/themes/itg2-sm5.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "itg2-sm5";
version = "1.1.0-unstable-2025-10-08";

src = fetchFromGitHub {
owner = "JoseVarelaP";
repo = "In-The-Groove2-SM5";
rev = "e25f1a44efa55cd2247891f40633403910b75d21";
hash = "sha256-FMyT7ZA/1cqiClXDvD7CmJlOFaaWnPLuOuei6fsbzg8=";
};

postInstall = ''
mkdir -p "$out/itgmania/Themes/${finalAttrs.pname}"
mv * "$out/itgmania/Themes/${finalAttrs.pname}"
'';

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

meta = {
description = "A Semi-Conversion/Recreation of In The Groove 1 & 2 to StepMania 5";
homepage = "https://github.com/JoseVarelaP/In-The-Groove2-SM5";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ungeskriptet ];
};
})
32 changes: 32 additions & 0 deletions pkgs/by-name/it/itgmania/themes/itg3encore.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "itg3encore";
version = "0-unstable-2026-03-17";

src = fetchFromGitHub {
owner = "DarkBahamut162";
repo = "itg3encore";
rev = "5efb1a93ca096c8f43d6eee556beabca2f19bc42";
hash = "sha256-m3zU6MdcFEL5ZIraGIh/o8vKiqZUYNMT5JvEc05IAGg=";
};

postInstall = ''
mkdir -p "$out/itgmania/Themes/${finalAttrs.pname}"
mv * "$out/itgmania/Themes/${finalAttrs.pname}"
'';

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

meta = {
description = "An upgraded port of ITG3's Encore theme";
homepage = "https://github.com/DarkBahamut162/itg3encore";
# No license specified in the repository
license = lib.licenses.free;
maintainers = with lib.maintainers; [ ungeskriptet ];
};
})
31 changes: 31 additions & 0 deletions pkgs/by-name/it/itgmania/themes/zmod-simply-love.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "zmod-simply-love";
version = "5.7.0-june-unstable-2025-09-27";

src = fetchFromGitHub {
owner = "zarzob";
repo = "Simply-Love-SM5";
rev = "87b8e5db3452d54121d81554d720e498d20a18fc";
hash = "sha256-8ukHjPUPXo53FWVFm+iyRq2mKlqZ4O+5VlV4ba+mFSM=";
};

postInstall = ''
mkdir -p "$out/itgmania/Themes/${finalAttrs.pname}"
mv * "$out/itgmania/Themes/${finalAttrs.pname}"
'';

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

meta = {
description = "Zmod fork of Simply Love";
homepage = "https://github.com/zarzob/Simply-Love-SM5";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ungeskriptet ];
};
})
101 changes: 101 additions & 0 deletions pkgs/by-name/it/itgmania/unwrapped.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
nasm,
pkg-config,
copyDesktopItems,
alsa-lib,
glew,
glib,
gtk3,
libmad,
libogg,
libpulseaudio,
libusb-compat-0_1,
libvorbis,
libxtst,
udev,
makeWrapper,
makeDesktopItem,
nix-update-script,
}:

stdenv.mkDerivation (finalAttrs: {
pname = "itgmania";
version = "1.2.0";

src = fetchFromGitHub {
owner = "itgmania";
repo = "itgmania";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-RkV/OIDudt2XemhaFRY7IA5o7Q2w+j01tauD7KpzYpA=";
};

nativeBuildInputs = [
cmake
nasm
pkg-config
makeWrapper
copyDesktopItems
];

buildInputs = [
alsa-lib
glew
glib
gtk3
libmad
libogg
libpulseaudio
libusb-compat-0_1
libvorbis
libxtst
udev
];

cmakeFlags = lib.optionals (!stdenv.hostPlatform.isx86) [ "-DWITH_MINIMAID=off" ];

postInstall = ''
makeWrapper $out/itgmania/itgmania $out/bin/itgmania \
--chdir $out/itgmania

mkdir -p $out/share/icons/hicolor/scalable/apps/
ln -s $out/itgmania/Data/logo.svg $out/share/icons/hicolor/scalable/apps/itgmania.svg
'';

desktopItems = [
(makeDesktopItem {
name = "itgmania";
desktopName = "ITGmania";
genericName = "Rhythm and dance game";
tryExec = "itgmania";
exec = "itgmania";
terminal = false;
icon = "itgmania";
type = "Application";
comment = "A cross-platform rhythm video game.";
categories = [
"Game"
"ArcadeGame"
];
})
];

passthru.updateScript = nix-update-script { };

meta = {
homepage = "https://www.itgmania.com/";
description = "Fork of StepMania 5.1, improved for the post-ITG community";
platforms = lib.platforms.linux;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
ftsimas
maxwell-lt
ungeskriptet
];
mainProgram = "itgmania";
};
})
2 changes: 2 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6642,6 +6642,8 @@ with pkgs;
'';
});

itgmaniaPackages = recurseIntoAttrs (callPackage ../by-name/it/itgmania/packages.nix { });

itk_5_2 = callPackage ../development/libraries/itk/5.2.x.nix {
enableRtk = false;
};
Expand Down
Loading