This commit is contained in:
Madeleine Sydney
2025-04-02 09:41:40 -06:00
commit e40d152489
13 changed files with 392 additions and 0 deletions

42
tf2/packages/default.nix Normal file
View File

@@ -0,0 +1,42 @@
{ pkgs, lib }:
let
mkTf2Config = pkgs.callPackage ../mkTf2Config.nix {};
fetchFromGameBanana =
{ id
, hash
}:
pkgs.fetchzip {
url = "https://gamebanana.com/dl/${id}";
extension = "zip";
inherit hash;
};
mkCfg = name: body:
pkgs.runCommand name {} ''
${lib.toShellVar "name" name}
mkdir -p $out/cfg "$(dirname "$out/cfg/$name")"
tee "$out/cfg/$name.cfg" << SUPER_UNIQUE_EOF
// Generated by tf2.nix
${body}
SUPER_UNIQUE_EOF
'';
mergeTf2Configs = configs:
pkgs.symlinkJoin {
name = "merged-tf2-config";
paths = configs;
};
extra-args = {
inherit mkTf2Config fetchFromGameBanana mkCfg mergeTf2Configs;
};
in lib.mergeAttrsList [
extra-args
{ mastercomfig = pkgs.callPackage ./mastercomfig.nix extra-args; }
(pkgs.callPackage ./huds.nix extra-args)
(pkgs.callPackage ./misc.nix extra-args)
(pkgs.callPackage ./scripts.nix extra-args)
]

16
tf2/packages/huds.nix Normal file
View File

@@ -0,0 +1,16 @@
{ fetchFromGitHub, mkTf2Config, ... }:
{
deerhud = mkTf2Config {
pname = "deerhud";
custom = [
(fetchFromGitHub {
name = "deerhud";
owner = "DeerUwU";
repo = "deerhud-tf2";
rev = "78a24effbc66bc78b4bb557228eaa0195db3270c";
hash = "sha256-uwKRilkEPHk1snjH/n9u32dMXr3cXjYN06cfthpZe7g=";
})
];
};
}

View File

@@ -0,0 +1,117 @@
{ fetchurl
, mkTf2Config
, ...
}:
let
mastercomfigVersion = "9.10.3";
releasesUrl = version:
"https://github.com/mastercomfig/mastercomfig/releases/download/${version}";
fetchMastercomfig = { version, file, hash }:
fetchurl {
url = "${releasesUrl version}/${file}";
inherit hash;
};
mkMastercomfig =
type:
{ name
, hash
, file ? "mastercomfig-${name}-${type}.vpk"
, version ? mastercomfigVersion
}:
mkTf2Config {
pname = "mastercomfig-${name}-${type}";
inherit version;
custom = [
(fetchMastercomfig {
inherit version file hash;
})
];
};
mkMastercomfigAddon = mkMastercomfig "addon";
mkMastercomfigPreset = mkMastercomfig "preset";
in {
addons.disable-pyroland = mkMastercomfigAddon {
name = "disable-pyroland";
hash = "sha256-cEFaXSXwlHwm7BnkSLmG4vAPYhL1O0XwNG0UpTnDFY8=";
};
addons.flat-mouse = mkMastercomfigAddon {
name = "flat-mouse";
hash = "sha256-v2Url+m8dzXIrs8mz5VZWRqwqSSaxyH7t2vDvT10cdg=";
};
presets.high = mkMastercomfigPreset {
name = "high";
hash = "sha256-704aEg1Gyl5vI6Y6VTmlUEiP70PjrF6/VlxsrkkepWs=";
};
presets.low = mkMastercomfigPreset {
name = "low";
hash = "sha256-CpIbjy1dzNCEa583DthygkIQ5aq7Wp2QOJGANC2IGNs=";
};
addons.lowmem = mkMastercomfigAddon {
name = "lowmem";
hash = "sha256-21iyJ4Zg+p5qES05FP2fMO7/p3YrrIkNp2GM2oEjT4E=";
};
presets.medium-high = mkMastercomfigPreset {
name = "medium-high";
hash = "sha256-pS1KcFxxB/oT9DcopZyu77nr4td6x2mDrEFVNOPmtws=";
};
presets.medium-low = mkMastercomfigPreset {
name = "medium-low";
hash = "sha256-P9Zk9IZVpX1hkAcdpNvKfzP2P+TDPNRwwv4I8uM+WU4=";
};
presets.medium = mkMastercomfigPreset {
name = "medium";
hash = "sha256-yEcxPkU/0vJn7vy3n2ViYdTCBV3O9gX57fMQQZYlm3I=";
};
addons.no-footsteps = mkMastercomfigAddon {
name = "no-footsteps";
hash = "sha256-7WIWwV2PnwRM79I7vOdfRggQi/NUS+6GHkAAyo8ap2I=";
};
addons.no-soundscapes = mkMastercomfigAddon {
name = "no-soundscapes";
hash = "sha256-Qp7QW9zZXpX7zrK+Fmpf428lU7Mc86sMn6+5Syhnxz0=";
};
addons.no-tutorial = mkMastercomfigAddon {
name = "no-tutorial";
hash = "sha256-sA3kN2iNe5bwh+954ef+sV0hjMdMZLs6IPgsHDi5oXE=";
};
presets.none = mkMastercomfigPreset {
name = "none";
hash = "sha256-FQ8o4fxUkIAqlFPZPULScwDBaQjc88NiO579IaFTikA=";
};
addons.null-canceling-movement = mkMastercomfigAddon {
name = "null-canceling-movement";
hash = "sha256-B3pHn80lMRN4q5hF/JSAdzDLTnyh7MNbYzMURrYmXxU=";
};
addons.transparent-viewmodels = mkMastercomfigAddon {
name = "transparent-viewmodels";
hash = "sha256-nsUBSsGHXM+xwecixZvhisbifLqkqSyF7kIkJFmq6ow=";
};
presets.ultra = mkMastercomfigPreset {
name = "ultra";
hash = "sha256-VfSFxRuZtYLuNrtX6X7BEMtL6wMbFyela7zbmZurlCw=";
};
presets.very-low = mkMastercomfigPreset {
name = "very-low";
hash = "sha256-faGnju5aPovl++kAh2HNkkroUoMz9/Fx6kSgb3IBRfg=";
};
}

13
tf2/packages/misc.nix Normal file
View File

@@ -0,0 +1,13 @@
{ fetchFromGameBanana, mkTf2Config, ... }:
{
improved-crosshairs = mkTf2Config {
pname = "improved-crosshairs";
custom = [
(fetchFromGameBanana {
id = "1047153";
hash = "sha256-ULcSfxuiGY1YCE1zQ693183F7ZRC11tYhvDMJKyzL1A=";
})
];
};
}

14
tf2/packages/scripts.nix Normal file
View File

@@ -0,0 +1,14 @@
{ fetchurl, mkTf2Config, ... }:
{
loadouts-script = mkTf2Config rec {
pname = "tf2-loadouts-script";
version = "3.1";
custom = [
(fetchurl {
url = "https://github.com/jooonior/tf2-loadouts-script/releases/download/v${version}/loadouts.vpk";
hash = "sha256-qMDQe/lLZz5YdH6kvG7vNKHUxPvId4AMqu/hFqr/Sd8=";
})
];
};
}