{ description = "My Nix Configs"; outputs = { self, nixpkgs, flake-utils, ... }: let inherit (self) inputs outputs; flakeLib = import ./lib; vars = rec { name = "Patrick Neff"; username = "odie"; homeDirectory = "/home/${username}"; locale = "de_DE.UTF-8"; email = "odie86@gmail.com"; timeZone = "Europe/Berlin"; sshKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIByWNNmKhjVk5VEjk3aSKosOXzglCbiq7q8IQ8mA0qQe odie" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1QZO6fF2RLcmjMKdG1eZi0RLw3joa+VBXaKvfmA7Tg odie" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs89u4Kvwlmq67eV+H/n+x9M8gsKDxQU+dCPSEb2vJe odie" ]; domain = "odie.intranet"; }; overlays = [ inputs.nixvim.overlays.default inputs.neovim-nightly-overlay.overlays.default inputs.nur.overlay inputs.nixgl.overlay ]; in { nixosModules = { base = import ./modules/nixos/base; desktop = import ./modules/nixos/desktop; wsl = import ./modules/nixos/wsl; mediacenter = import ./modules/nixos/mediacenter; qemu = import ./modules/nixos/qemu; }; nixosConfigurations = flakeLib.mkNixosConfiguration { inherit inputs nixpkgs outputs vars flakeLib overlays; system = "x86_64-linux"; hostName = "vm"; } // flakeLib.mkNixosConfiguration { inherit inputs nixpkgs outputs vars flakeLib overlays; system = "x86_64-linux"; hostName = "wsl-dev"; } // flakeLib.mkNixosConfiguration { inherit inputs outputs nixpkgs vars flakeLib overlays; system = "aarch64-linux"; hostName = "pi1"; } // {}; homeManagerModules = { base = import ./modules/home-manager/base; desktop = import ./modules/home-manager/desktop; shell = import ./modules/home-manager/shell; development = import ./modules/home-manager/development; games = import ./modules/home-manager/games; }; homeConfigurations = flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib vars overlays; profile = "odie@wanaheim"; system = "x86_64-linux"; } // flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib vars overlays; profile = "odie@asgard"; system = "x86_64-linux"; }; } // flake-utils.lib.eachDefaultSystem (system: { packages = { neovim-ide = import ./pkgs/nixvim {inherit inputs system flakeLib nixpkgs;}; }; }); inputs = { #nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; #nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nur.url = "github:nix-community/NUR"; nix-colors.url = "github:misterio77/nix-colors"; systems.url = "github:nix-systems/default"; flake-parts.url = "github:hercules-ci/flake-parts"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixgl = { url = "github:nix-community/nixGL/9b4887dbf16933bdc124296434b3898d810b3608"; inputs.nixpkgs.follows = "nixpkgs"; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-utils = { url = "github:numtide/flake-utils"; inputs.systems.follows = "systems"; }; nixos-wsl = { url = "github:nix-community/NixOS-WSL"; inputs.nixpkgs.follows = "nixpkgs"; }; csleeptimer = { url = "git+ssh://gitea@pi1.odie.intranet/odie/csleeptimer.git"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils"; systems.follows = "systems"; }; }; }; }