227 lines
6.6 KiB
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;
|
|
# };
|
|
# };
|
|
# };
|
|
}
|