147 lines
4.1 KiB
Nix
Executable file
147 lines
4.1 KiB
Nix
Executable file
{
|
|
description = "Configuration for Everest";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-23.05";
|
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
|
|
|
agenix = {
|
|
url = "github:ryantm/agenix";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
darwin.follows = ""; # Not using this on MacOS, so this doesn't pull it's dependencies
|
|
};
|
|
};
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-23.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
home-manager-unstable = {
|
|
url = "github:nix-community/home-manager/";
|
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
};
|
|
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
|
|
jovian = {
|
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
};
|
|
|
|
nix-impermanence.url = "github:nix-community/impermanence";
|
|
|
|
/*
|
|
These are the same input, just following different nixpkgs versions
|
|
This avoids some wierdness when using one that follows unstable on a stable nixpkgs
|
|
*/
|
|
nix-index-db = {
|
|
url = "github:Mic92/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-index-db-unstable = {
|
|
url = "github:Mic92/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
};
|
|
|
|
plasma-manager = {
|
|
url = "github:pjones/plasma-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
inputs.home-manager.follows = "home-manager-unstable";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstable, nixos-hardware, nix-impermanence, nix-index-db, nix-index-db-unstable, jovian, plasma-manager, ... } @inputs: {
|
|
|
|
devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {
|
|
name = "Environment for toast's nixos configurations";
|
|
# The agenix cli is not needed to activate a configuration, so instead of installing it
|
|
# I'll just add it to de devShell, since that's the only real time I'm going to use it.
|
|
packages = with nixpkgs.legacyPackages.x86_64-linux; [
|
|
agenix.packages.x86_64-linux.default
|
|
git
|
|
plasma5Packages.plasma-sdk
|
|
nix-diff
|
|
];
|
|
shellHook =''
|
|
export PS1="$PS1(toast-configs)> "
|
|
'';
|
|
};
|
|
packages = {
|
|
x86_64-linux = with import nixpkgs-unstable { system = "x86_64-linux"; }; {
|
|
pseint = callPackage ./pkgs/pseint.nix {};
|
|
anything-sync-daemon = callPackage ./pkgs/anything-sync-daemon {};
|
|
};
|
|
};
|
|
nixosConfigurations = {
|
|
Archie = nixpkgs-unstable.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
specialArgs = { systemPkgs = inputs.nixpkgs-unstable; flakeSelf = self; };
|
|
/*
|
|
I used to set up nixpkgs in the flake, but doing that made
|
|
defining overlays in modules impossible (or at least I could
|
|
not figure out how)
|
|
Also has nice side effect of making it easier to add new systems :3
|
|
*/
|
|
modules = [
|
|
agenix.nixosModules.default
|
|
home-manager-unstable.nixosModule
|
|
nix-index-db-unstable.nixosModules.nix-index
|
|
./roles/common
|
|
./roles/desktop
|
|
./roles/kde
|
|
./roles/gaming
|
|
./roles/school
|
|
./machines/Archie
|
|
];
|
|
};
|
|
|
|
SurfaceGo = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
specialArgs = { systemPkgs = inputs.nixpkgs; flakeSelf = self; };
|
|
modules = [
|
|
agenix.nixosModules.default
|
|
home-manager.nixosModule
|
|
nixos-hardware.nixosModules.microsoft-surface-go
|
|
nix-index-db.nixosModules.nix-index
|
|
./roles/common
|
|
./roles/desktop
|
|
./roles/kde
|
|
./machines/SurfaceGo
|
|
];
|
|
};
|
|
|
|
SteamDeck = nixpkgs-unstable.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
specialArgs = { systemPkgs = inputs.nixpkgs-unstable; flakeSelf = self; };
|
|
modules = [
|
|
agenix.nixosModules.default
|
|
jovian.nixosModules.default
|
|
home-manager-unstable.nixosModule
|
|
nix-index-db-unstable.nixosModules.nix-index
|
|
./roles/common
|
|
./roles/desktop
|
|
./roles/kde
|
|
./roles/gaming
|
|
./roles/school
|
|
./machines/SteamDeck
|
|
];
|
|
};
|
|
|
|
Everest = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
specialArgs = { systemPkgs = inputs.nixpkgs; flakeSelf = self; };
|
|
modules = [
|
|
agenix.nixosModules.default
|
|
home-manager.nixosModule
|
|
nix-index-db.nixosModules.nix-index
|
|
./roles/common
|
|
./roles/server
|
|
./machines/Everest
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|