diff --git a/flake.nix b/flake.nix index 690ff54..1afa109 100644 --- a/flake.nix +++ b/flake.nix @@ -16,21 +16,28 @@ zsh-traxys = { url = "github:traxys/zsh-flake"; }; - xdg-ninja = { - url = "github:traxys/xdg-ninja"; - flake = false; - }; rust-overlay.url = "github:oxalica/rust-overlay"; naersk.url = "github:nix-community/naersk"; + comma.url = "github:nix-community/comma"; + raclette.url = "github:traxys/raclette"; + poetry2nix.url = "github:nix-community/poetry2nix"; + nur.url = "github:nix-community/NUR"; + + # Extra Package Sources + simulationcraft = { + url = "github:simulationcraft/simc"; + flake = false; + }; + oscclip = { + url = "github:rumpelsepp/oscclip"; + flake = false; + }; kabalist = { url = "github:traxys/kabalist"; flake = false; }; - comma.url = "github:nix-community/comma"; - raclette.url = "github:traxys/raclette"; - poetry2nix.url = "github:nix-community/poetry2nix"; - oscclip = { - url = "github:rumpelsepp/oscclip"; + xdg-ninja = { + url = "github:b3nj5m1n/xdg-ninja"; flake = false; }; }; @@ -40,13 +47,27 @@ home-manager, nixpkgs, ... - } @ inputs: { + } @ inputs: let + sources = + { + inherit (inputs) oscclip xdg-ninja simulationcraft kabalist; + } + // (nixpkgs.legacyPackages.x86_64-linux.callPackage ./_sources/generated.nix {}); + in { templates = { rust = { path = ./templates/rust; description = "My rust template using rust-overlay and direnv"; }; }; + packages.x86_64-linux = let + pkgs = nixpkgs.legacyPackages.x86_64-linux; + in + import ./pkgs/default.nix { + inherit sources; + callPackage = pkgs.callPackage; + naersk = inputs.naersk.lib.x86_64-linux; + }; nixosConfigurations = { ZeNixLaptop = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; @@ -58,29 +79,13 @@ inputs.nix-alien.overlay inputs.comma.overlays.default inputs.poetry2nix.overlay + (final: prev: + import ./pkgs/default.nix { + inherit sources; + callPackage = prev.callPackage; + naersk = inputs.naersk.lib."${system}"; + }) (final: prev: { - oscclip = prev.poetry2nix.mkPoetryApplication { - projectDir = inputs.oscclip; - }; - xdg-ninja = with pkgs; - stdenv.mkDerivation rec { - pname = "xdg-ninja"; - version = "0.1"; - src = inputs.xdg-ninja; - installPhase = '' - mkdir -p $out/bin - cp xdg-ninja.sh $out/bin - cp -r programs $out/bin - wrapProgram $out/bin/xdg-ninja.sh \ - --prefix PATH : ${lib.makeBinPath [bash jq glow]} - ''; - buildInputs = [jq glow bash]; - nativeBuildInputs = [makeWrapper]; - }; - kabalist_cli = inputs.naersk.lib."${system}".buildPackage { - cargoBuildOptions = opts: opts ++ ["--package=kabalist_cli"]; - root = inputs.kabalist; - }; raclette = inputs.raclette.defaultPackage."${system}"; }) ]; diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..2a0e572 --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,15 @@ +{ + callPackage, + sources, + naersk, +}: { + oscclip = callPackage ./oscclip.nix {oscclip-src = sources.oscclip;}; + xdg-ninja = callPackage ./xdg-ninja.nix {xdg-ninja-src = sources.xdg-ninja;}; + wowup = callPackage ./wowup.nix {}; + simulationcraft = callPackage ./simulationcraft.nix {simulationcraft-src = sources.simulationcraft;}; + proton-ge = callPackage ./proton-ge.nix {proton-ge-src = sources.proton-ge;}; + kabalist_cli = callPackage ./kabalist.nix { + inherit naersk; + kabalist-src = sources.kabalist; + }; +} diff --git a/pkgs/kabalist.nix b/pkgs/kabalist.nix new file mode 100644 index 0000000..3ed1b00 --- /dev/null +++ b/pkgs/kabalist.nix @@ -0,0 +1,8 @@ +{ + naersk, + kabalist-src, +}: +naersk.buildPackage { + cargoBuildOptions = opts: opts ++ ["--package=kabalist_cli"]; + root = kabalist-src; +} diff --git a/pkgs/oscclip.nix b/pkgs/oscclip.nix new file mode 100644 index 0000000..4d8ecee --- /dev/null +++ b/pkgs/oscclip.nix @@ -0,0 +1,8 @@ +{ + oscclip-src, + poetry2nix, + ... +}: +poetry2nix.mkPoetryApplication { + projectDir = oscclip-src; +} diff --git a/pkgs/proton-ge.nix b/pkgs/proton-ge.nix new file mode 100644 index 0000000..eb2a70f --- /dev/null +++ b/pkgs/proton-ge.nix @@ -0,0 +1,14 @@ +{ + stdenv, + proton-ge-src, +}: +stdenv.mkDerivation { + inherit (proton-ge-src) pname src version; + + nativeBuildInputs = []; + + installPhase = '' + mkdir -p $out + mv * $out/ + ''; +} diff --git a/pkgs/simulationcraft.nix b/pkgs/simulationcraft.nix new file mode 100644 index 0000000..e7445c7 --- /dev/null +++ b/pkgs/simulationcraft.nix @@ -0,0 +1,21 @@ +{ + simulationcraft-src, + stdenv, + qt5, + cmake, + curl, +}: +stdenv.mkDerivation { + pname = "simulationcraft"; + version = "master"; + + src = simulationcraft-src; + + buildInputs = [ + qt5.qtbase + qt5.qtwebengine + cmake + curl + ]; + nativeBuildInputs = [qt5.wrapQtAppsHook]; +} diff --git a/pkgs/wowup.nix b/pkgs/wowup.nix new file mode 100644 index 0000000..7485d76 --- /dev/null +++ b/pkgs/wowup.nix @@ -0,0 +1,11 @@ +{ + appimageTools, + fetchurl, +}: +appimageTools.wrapType2 { + name = "wowup"; + src = fetchurl { + url = "https://github.com/WowUp/WowUp.CF/releases/download/v2.9.2-beta.3/WowUp-CF-2.9.2-beta.3.AppImage"; + sha256 = "sha256-iijulvH4yjU9vQOyQ0vCBYLR93GGL9Ak/SmVPB+ZDvY="; + }; +} diff --git a/pkgs/xdg-ninja.nix b/pkgs/xdg-ninja.nix new file mode 100644 index 0000000..7fa84aa --- /dev/null +++ b/pkgs/xdg-ninja.nix @@ -0,0 +1,23 @@ +{ + xdg-ninja-src, + lib, + stdenv, + bash, + jq, + glow, + makeWrapper, +}: +stdenv.mkDerivation { + pname = "xdg-ninja"; + version = "0.1"; + src = xdg-ninja-src; + installPhase = '' + mkdir -p $out/bin + cp xdg-ninja.sh $out/bin + cp -r programs $out/bin + wrapProgram $out/bin/xdg-ninja.sh \ + --prefix PATH : ${lib.makeBinPath [bash jq glow]} + ''; + buildInputs = [jq glow bash]; + nativeBuildInputs = [makeWrapper]; +}