forest/flake.nix

140 lines
4 KiB
Nix
Raw Normal View History

2023-10-02 17:47:47 +00:00
{
inputs = {
nixpkgs-stable = {
url = "github:NixOS/nixpkgs/nixos-22.11";
};
nixpkgs-unstable = {
url = "github:NixOS/nixpkgs/nixos-unstable";
};
home-manager-unstable = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
fsh = {
url = "github:ashhhleyyy/fsh";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs-unstable";
2023-10-13 16:23:08 +00:00
};
2023-10-02 17:47:47 +00:00
};
outputs = { self, nixpkgs-stable, nixpkgs-unstable, fsh, home-manager-unstable, nixos-generators, vscode-extensions, ... }:
2023-10-02 17:47:47 +00:00
let
home-manager = home-manager-unstable;
overlays = [
fsh.overlays.default
vscode-extensions.overlays.default
2023-10-31 13:35:21 +00:00
(final: prev: {
ndi = prev.ndi.overrideAttrs (self: super: {
version = "5.5.4";
src = prev.pkgs.requireFile rec {
name = "${self.installerName}.tar.gz";
sha256 = "sha256:7e5c54693d6aee6b6f1d6d49f48d4effd7281abd216d9ff601be2d55af12f7f5";
message = self.installerName;
};
unpackPhase = "unpackFile \${src}\necho y | ./${self.installerName}.sh\nsourceRoot=\"NDI SDK for Linux\";\n";
installPhase = ''
mkdir $out
mv bin/x86_64-linux-gnu $out/bin
for i in $out/bin/*; do
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"
done
patchelf --set-rpath "${prev.avahi}/lib:${prev.stdenv.cc.libc}/lib" $out/bin/ndi-record
mv lib/x86_64-linux-gnu $out/lib
for i in $out/lib/*; do
if [ -L "$i" ]; then continue; fi
patchelf --set-rpath "${prev.avahi}/lib:${prev.stdenv.cc.libc}/lib" "$i"
done
mv include examples $out/
mkdir -p $out/share/doc/${self.pname}-${self.version}
mv licenses $out/share/doc/${self.pname}-${self.version}/licenses
mv documentation/* $out/share/doc/${self.pname}-${self.version}/
'';
}
);
})
2023-10-02 17:47:47 +00:00
];
overlays-module = ({ nixpkgs, ... }: {
nixpkgs.overlays = overlays;
});
in
{
nixosConfigurations.fern = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
overlays-module
./hosts/fern/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.ash = { ... }: {
imports = [
fsh.homeModules.fsh
./home/ash
./home/ash/desktop.nix
];
};
}
];
};
nixosConfigurations.alex = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
overlays-module
./hosts/alex/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.ash = { ... }: {
imports = [
fsh.homeModules.fsh
./home/ash
./home/ash/alex.nix
2023-10-02 17:47:47 +00:00
./home/ash/desktop.nix
2024-01-19 12:37:44 +00:00
./home/ash/emacs.nix
2023-11-12 19:19:43 +00:00
# ./home/ash/obs.nix
2023-10-08 21:15:40 +00:00
./home/ash/tpm-fido.nix
2023-10-03 00:11:37 +00:00
./home/ash/vscodium.nix
2023-11-18 18:29:04 +00:00
./home/ash/zoom.nix
2023-10-02 17:47:47 +00:00
];
};
}
];
};
nixosConfigurations.emira = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
overlays-module
./hosts/emira/configuration.nix
./common/generic-qemu.nix
];
};
packages.x86_64-linux = {
emira = nixos-generators.nixosGenerate {
system = "x86_64-linux";
modules = [
overlays-module
./hosts/emira/configuration.nix
];
format = "qcow";
};
};
};
}