Files
dotfiles/flake.nix

227 lines
6.6 KiB
Nix

{
description = "Home Manager configuration of julian";
inputs = {
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
systems.url = "github:nix-systems/default-linux";
nixos-hardware.url = "github:nixos/nixos-hardware";
impermanence.url = "github:nix-community/impermanence";
nix-colors.url = "github:misterio77/nix-colors";
deploy-rs.url = "github:serokell/deploy-rs";
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-gl = {
url = "github:nix-community/nixgl";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
import-tree.url = "github:vic/import-tree";
# Various flakes
yazi-flavors = {
url = "github:yazi-rs/flavors";
flake = false;
};
nixvim = {
url = "github:nix-community/nixvim/nixos-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-matlab = {
url = "gitlab:doronbehar/nix-matlab";
inputs.nixpkgs.follows = "nixpkgs";
};
# My projects
sheet-organizer = {
url = "git+https://gitlab.julian-mutter.de/julian/sheet-organizer";
inputs.nixpkgs.follows = "nixpkgs";
};
music-reader = {
url = "git+https://gitlab.julian-mutter.de/julian/music-reader";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs:
inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree
[
./hosts
./features-nixos
./homes
./features-home-manager
# ./modules
# ./overlays
# ./packages
]);
# let
# inherit (self) outputs;
# lib = nixpkgs.lib // home-manager.lib;
# forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
# pkgsFor = lib.genAttrs (import systems) (
# system:
# import nixpkgs {
# inherit system;
# config.allowUnfree = true;
# config.permittedInsecurePackages = [
# "olm-3.2.16"
# ];
# warn-dirty = false;
# }
# );
# in {
# inherit lib;
# nixosModules = import ./modules/nixos;
# homeManagerModules = import ./modules/home-manager;
# overlays = import ./overlays {inherit inputs outputs;};
# # hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
# packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
# devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
# formatter = forEachSystem (pkgs: pkgs.alejandra); # nix fmt *
# nixosConfigurations = {
# # Main laptop
# aspi = lib.nixosSystem {
# modules = [
# ./hosts/aspi
# ];
# specialArgs = {
# inherit inputs outputs;
# };
# };
# # Piano raspberry pi
# # pianonix = lib.nixosSystem {
# # modules = [./hosts/pianonix];
# # specialArgs = {
# # inherit inputs outputs;
# # };
# # };
# kardorf = lib.nixosSystem {
# modules = [./hosts/kardorf];
# specialArgs = {
# inherit inputs outputs;
# };
# };
# builder = lib.nixosSystem {
# modules = [./hosts/builder];
# specialArgs = {
# inherit inputs outputs;
# };
# };
# };
# # Standalone HM
# homeConfigurations = {
# # Main laptop
# "julian@aspi" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/aspi.nix
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# # Media server (RPi)
# # "julian@pianonix" = lib.homeManagerConfiguration {
# # modules = [
# # ./homes/julian/pianonix.nix
# # ./homes/julian/hm-standalone-config.nix
# # ];
# # pkgs = pkgsFor.aarch64-linux;
# # extraSpecialArgs = {
# # inherit inputs outputs;
# # };
# # };
# "julian@kardorf" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/kardorf.nix
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# "julian@v3ms" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/v3ms
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# "julian@quickstart" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/quickstart.nix
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# };
# # deploy-rs node configuration
# deploy.nodes = {
# # pianonix = {
# # hostname = "pianonix.local";
# # profiles.system = {
# # sshUser = "root";
# # user = "root";
# # path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
# # confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
# # };
# # };
# builder = {
# hostname = "builder.julian-mutter.de";
# profiles.system = {
# sshUser = "root";
# user = "root";
# path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
# remoteBuild = true;
# };
# };
# };
# # substitutes: nixos-generate --flake .#pianonix -f sd-aarch64 --system aarch64-linux
# pianonix-image = inputs.nixos-generators.nixosGenerate {
# system = "aarch64-linux";
# format = "sd-aarch64";
# modules = [./hosts/pianonix];
# specialArgs = {
# inherit inputs outputs;
# };
# };
# };
}