Files
nixos/flake.nix
T
2026-08-16 12:36:59 +01:00

113 lines
3.5 KiB
Nix

{
description = "Stationette nix config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nix-gaming.url = "github:fufexan/nix-gaming";
disko.url = "github:nix-community/disko/latest";
impermanence.url = "github:nix-community/impermanence";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
psysonic = {
url = "github:Psychotoxical/psysonic";
# inputs.nixpkgs.follows = "nixpkgs"; # psysonic needs rustc 1.95+, nixos-25.11 only has 1.91
};
try-cli = {
url = "github:tobi/try-cli";
inputs.nixpkgs.follows = "nixpkgs";
};
elephant = {
url = "github:abenz1267/elephant";
# inputs.nixpkgs.follows = "nixpkgs";
};
walker = {
url = "github:abenz1267/walker";
inputs.elephant.follows = "elephant";
inputs.nixpkgs.follows = "nixpkgs";
};
voxtype = {
url = "github:peteonrails/voxtype";
inputs.nixpkgs.follows = "nixpkgs";
};
# hyprland-preview-share-picker = {
# url = "github:WhySoBad/hyprland-preview-share-picker";
# inputs.nixpkgs.follows = "nixpkgs";
# };
};
outputs = {
self,
nixpkgs,
nix-gaming,
impermanence,
disko,
home-manager,
nixos-hardware,
# hyprland-preview-share-picker,
...
} @ inputs: let
lib = nixpkgs.lib;
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
nix-gaming = inputs.nix-gaming.packages.${system};
mkHost = hostname: nixpkgs.lib.nixosSystem {
modules = [
./hardware
./system
nixos-hardware.nixosModules.framework-16-amd-ai-300-series
home-manager.nixosModules.home-manager
{
powerManagement.enable = true;
system.stateVersion = "26.05";
home-manager = {
users.chris = import ./home;
extraSpecialArgs = {
inherit inputs;
inherit impermanence;
inherit hostname;
};
};
}
];
specialArgs = {
inherit inputs;
inherit impermanence;
inherit disko;
inherit hostname;
inherit nix-gaming;
};
};
in {
nixosConfigurations = {
stationette = mkHost "stationette";
station = mkHost "station";
};
# Standalone home-manager configuration entrypoint
homeConfigurations = {
chris = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
inherit impermanence;
};
modules = [
./home
];
};
};
};
}