2024-03-12 01:15:44 -07:00
|
|
|
{
|
|
|
|
description = "viv's steamdeck";
|
|
|
|
inputs = { # update a single input; nix flake lock --update-input nixpkgs
|
|
|
|
nixpkgs = {
|
|
|
|
url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
};
|
|
|
|
jovian = {
|
|
|
|
url = "github:jovian-experiments/jovian-nixos/development";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
base = {
|
|
|
|
url = "github:vivlim/nix-base/main";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
#base = { url = "path:/home/vivlim/git/nix-base/"; };
|
|
|
|
|
|
|
|
disko = {
|
|
|
|
url = "github:nix-community/disko";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
|
|
|
|
sops-nix = {
|
|
|
|
url = "github:Mic92/sops-nix";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
outputs = inputs@{ self, nixpkgs, jovian, base, disko, sops-nix, ... }:
|
|
|
|
let
|
|
|
|
overlayModule =
|
|
|
|
({ config, pkgs, ... }: { nixpkgs.overlays = [ jovian.overlays.default ]; });
|
|
|
|
machineFactory = base.machineFactory;
|
|
|
|
colmenaTargetFactory = base.colmenaTargetFactory;
|
2024-03-12 23:20:41 -07:00
|
|
|
|
|
|
|
# Using a wrapper I have in `base` that unpacks 'moduleBundles' defined there.
|
|
|
|
machineFactoryArgs = {
|
2024-03-12 01:15:44 -07:00
|
|
|
system = "x86_64-linux";
|
|
|
|
hostname = "vivdeck";
|
|
|
|
inherit inputs;
|
|
|
|
modules = [
|
|
|
|
disko.nixosModules.disko
|
|
|
|
./configuration.nix
|
2024-03-12 23:20:41 -07:00
|
|
|
base.moduleBundles.system-base
|
|
|
|
base.moduleBundles.plasma-desktop
|
|
|
|
base.moduleBundles.system-physical
|
|
|
|
base.moduleBundles.gaming-hardware
|
|
|
|
base.moduleBundles.amd
|
2024-03-12 01:15:44 -07:00
|
|
|
sops-nix.nixosModules.sops
|
|
|
|
jovian.nixosModules.jovian
|
|
|
|
overlayModule
|
|
|
|
];
|
2024-03-12 23:20:41 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
in {
|
|
|
|
# nix build .#nixosConfigurations.vivdeck.config.system.build.toplevel
|
|
|
|
nixosConfigurations = {
|
|
|
|
vivdeck = (base.machineFactory machineFactoryArgs);
|
|
|
|
};
|
|
|
|
|
|
|
|
colmena = {
|
|
|
|
meta = {
|
|
|
|
nixpkgs = import nixpkgs {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
};
|
|
|
|
specialArgs = {
|
|
|
|
inherit inputs;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
vivdeck = (base.colmenaTargetFactory machineFactoryArgs)
|
|
|
|
// {
|
|
|
|
deployment.targetHost = "192.168.1.167"; # todo: change to tailscale hostname after it's added.
|
|
|
|
deployment.targetUser = "root";
|
|
|
|
};
|
2024-03-12 01:15:44 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
devShells = base.devShells;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|