Nix Packaging `nix/`
Location:
nix/,flake.nix,shell.nix,default.nix
Platform: NixOS, Nix package manager
Purpose: Reproducible builds and packaging Latest Version: 0.0.5-1
Overview
ProjT Launcher provides first-class Nix support for reproducible builds, development environments, and packaging. Both Flakes and traditional Nix expressions are supported.
Quick Start
Run Without Installing
nix run github:Project-Tick/ProjT-Launcher
Install via Flakes
nix profile install github:Project-Tick/ProjT-Launcher
Development Shell
# With Flakes
nix develop github:Project-Tick/ProjT-Launcher
# Traditional
nix-shell
Binary Cache
We use Cachix for pre-built binaries. Add to avoid rebuilds:
Flakes (Temporary)
nix run github:Project-Tick/ProjT-Launcher --accept-flake-config
Installation Methods
Flakes (Recommended)
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
projtlauncher.url = "github:Project-Tick/ProjT-Launcher";
};
outputs = { nixpkgs, projtlauncher, ... }: {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
projtlauncher.packages.${pkgs.system}.projtlauncher
];
})
];
};
};
}
Using Overlay
{
nixpkgs.overlays = [ projtlauncher.overlays.default ];
environment.systemPackages = [ pkgs.projtlauncher ];
}
Traditional Nix (No Flakes)
{ pkgs, ... }:
{
environment.systemPackages = [
(import (builtins.fetchTarball
"https://github.com/Project-Tick/ProjT-Launcher/archive/develop.tar.gz"
)).packages.${pkgs.system}.projtlauncher
];
}
Package Variants
| Package | Description |
|---|---|
projtlauncher |
Fully wrapped with runtime dependencies |
projtlauncher-unwrapped |
Minimal build for customization |
Customization Options
The wrapped package accepts these overrides:
| Option | Default | Description |
|---|---|---|
additionalLibs |
[] |
Extra LD_LIBRARY_PATH entries |
additionalPrograms |
[] |
Extra PATH entries |
controllerSupport |
isLinux |
Game controller support |
gamemodeSupport |
isLinux |
Feral GameMode integration |
jdks |
[jdk21 jdk17 jdk8] |
Available Java runtimes |
msaClientID |
null |
Microsoft Auth client ID |
textToSpeechSupport |
isLinux |
TTS support |
Example Override
projtlauncher.override {
jdks = [ pkgs.jdk21 pkgs.jdk17 ];
gamemodeSupport = false;
}
Development
Enter Development Shell
nix develop
# or
nix-shell
Build Locally
nix build .#projtlauncher
./result/bin/projtlauncher
File Structure
├── flake.nix # Flake definition
├── flake.lock # Locked dependencies
├── default.nix # Flake-compat entry
├── shell.nix # Development shell
└── nix/
├── default.nix # Package derivation
└── ...
Troubleshooting
Binary Cache Not Working
Ensure the cache is in trusted-substituters (requires root):
sudo nix-channel --update
Build Failures
Try with fresh nixpkgs:
nix build --override-input nixpkgs github:NixOS/nixpkgs/nixos-unstable
Related Documentation
- CI Support — CI Nix integration
- CI Evaluation — Nix-based validation
External Links
Was this handbook page helpful?
Last updated: February 19, 2026
Edit on GitHub