{ 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.home.arpa"; notes = rec { root = "${homeDirectory}/Notes/"; workspaces = { general = "${root}/general"; games = "${root}/games"; }; }; }; overlays = [ inputs.nixvim.overlays.default inputs.nur.overlay inputs.nixgl.overlay inputs.neovim-nightly-overlay.overlays.default outputs.overlays.kodi ]; in { overlays = { kodi = final: prev: { kodi-standalone = final.kodi-wayland.withPackages (kodiPkgs: with kodiPkgs; [ youtube pvr-iptvsimple keymap inputstream-adaptive inputstream-ffmpegdirect requests-cache inputstreamhelper ]); }; }; 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; home-manager = import ./modules/nixos/home-manager; server = import ./modules/nixos/server; }; 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"; } // flakeLib.mkNixosConfiguration { inherit inputs outputs nixpkgs vars flakeLib overlays; system = "aarch64-linux"; hostName = "wanaheim"; } // {}; 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; mediacenter = import ./modules/home-manager/mediacenter; user = import ./modules/home-manager/user; binary-cache = import ./modules/home-manager/binary-cache; }; homeConfigurations = flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib overlays; vars = vars // {hostName = "wanaheim";}; system = "x86_64-linux"; } // flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib overlays; vars = vars // {hostName = "asgard";}; system = "x86_64-linux"; } // flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib overlays; vars = vars // { hostName = "odie-dev"; domain = "niederkassel.neff-steindesign.de"; }; system = "x86_64-linux"; }; } // flake-utils.lib.eachDefaultSystem (system: { packages = { neovim-ide = import ./pkgs/nixvim {inherit inputs system flakeLib nixpkgs vars;}; }; }); inputs = { #nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; #nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; #nixpkgs.url = "github:nixos/nixpkgs/3969d739d8dc628af9eecb3ad9ee5b06fdc7f24d"; treesitter-grammars.url = "github:viperML/tree-sitter"; 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"; nixos-hardware.url = "github:nixos/nixos-hardware"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixgl = { url = "github:nix-community/nixGL"; 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@git.niederkassel.neff-steindesign.de/odie/csleeptimer.git"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils"; systems.follows = "systems"; }; }; neorg-overlay = { url = "github:nvim-neorg/nixpkgs-neorg-overlay"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils"; }; }; }; }