nixos-config/flake.nix
2025-01-30 13:38:06 +01:00

149 lines
3.9 KiB
Nix

{
description = "NixOS config";
inputs = {
nixpkgs = {
url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
neovim = {
url = "github:kylekrein/neovim";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
stylix.url = "github:danth/stylix";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
apple-silicon-support.url = "github:tpwrules/nixos-apple-silicon";
#nur.url = "github:nix-community/NUR";
sops-nix.url = "github:Mic92/sops-nix";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
nix-gaming.url = "github:fufexan/nix-gaming";
impermanence.url = "github:nix-community/impermanence";
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-on-droid = {
url = "github:nix-community/nix-on-droid";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
emacs-kylekrein = {
url = "github:kylekrein/emacs-config";
};
};
outputs = {
self,
nixpkgs,
...
} @ inputs: let
#systems = ["aarch64-linux" "x86_64-linux" ];
#forAllSystems = nixpkgs.lib.genAttrs systems;
#pkgs = import nixpkgs {
# inherit system;
# config = {
# allowUnfree = true;
# };
#};
arm = "aarch64-linux";
x86 = "x86_64-linux";
first-nixos-install = "1729112485"; #stat -c %W /
in {
nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs {
system = "aarch64-linux";
overlays = [inputs.nix-on-droid.overlays.default];
};
modules = [./nixos/hosts/android];
home-manager-path = inputs.home-manager.outPath;
extraSpecialArgs = {
inherit inputs;
inherit first-nixos-install;
};
};
darwinConfigurations = {
"kylekrein-air" = inputs.nix-darwin.lib.darwinSystem {
specialArgs = {
inherit self;
inherit inputs;
};
modules = [./nixos/hosts/kylekrein-air];
};
};
nixosConfigurations = {
"kylekrein-homepc" = nixpkgs.lib.nixosSystem {
specialArgs = {
hwconfig = {
hostname = "kylekrein-homepc";
isLaptop = false;
system = x86;
useImpermanence = true;
};
inherit first-nixos-install;
inherit inputs;
};
system = x86;
pkgs = import nixpkgs {
system = x86;
overlays = [
inputs.hyprland.overlays.default
];
config = {
allowBroken = true;
allowUnfree = true;
};
};
modules = [
(import ./disko/impermanence-btrfs.nix {device = "/dev/nvme0n1";})
./nixos/configuration.nix
#nix-flatpak.nixosModules.default
];
};
"kylekrein-mac" = nixpkgs.lib.nixosSystem {
specialArgs = {
hwconfig = {
hostname = "kylekrein-mac";
isLaptop = true;
system = arm;
useImpermanence = true;
};
inherit first-nixos-install;
inherit inputs;
};
system = arm;
pkgs = import nixpkgs {
system = arm;
overlays = [
inputs.hyprland.overlays.default
#(import ./nixos/macos/widevine.nix)
];
config = {
allowBroken = true;
allowUnfree = true;
allowUnsupportedSystem = true;
};
};
modules = [
./nixos/configuration.nix
];
};
};
};
}