{ description = "flake for multiple systems"; inputs = { # default nix flake imports nixpkgs = { url = "github:nixos/nixpkgs/nixos-25.11"; # url = "github:nixos/nixpkgs/nixos-unstable"; }; home-manager = { url = "github:nix-community/home-manager/release-25.11"; # url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; # custom flakes ## flatpaks flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest"; ## winapps winapps = { url = "github:winapps-org/winapps"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { nixpkgs, home-manager, flatpaks, winapps, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; commonLibs = with pkgs; lib.makeLibraryPath [ acl attr bzip2 curl stdenv.cc.cc libsodium libssh libxml2 libz linuxPackages.nvidia_x11 openssl util-linux xz zlib zstd ]; commonModules = [ home-manager.nixosModules.home-manager { home-manager = { extraSpecialArgs = { inherit inputs; system = system; }; useGlobalPkgs = true; useUserPackages = true; users.aethrvmn = import ./home-manager; backupFileExtension = "backup"; }; } ./modules/bluetooth ./modules/common ./modules/doas ./modules/fonts ./modules/gnupg ./modules/i18n ./modules/nh ./modules/pipewire ./modules/ssh ./modules/users ]; mkHost = { hostPath, extraModules }: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ hostPath ] ++ extraModules; }; in { nixosConfigurations = { pad = mkHost { hostPath = ./hosts/pad; extraModules = commonModules ++ [ flatpaks.nixosModules.nix-flatpak ./modules/1password ./modules/adguard ./modules/cinnamon ./modules/flatpak ./modules/intel ./modules/nginx ./modules/searx ]; }; station = mkHost { hostPath = ./hosts/station; extraModules = commonModules ++ [ flatpaks.nixosModules.nix-flatpak ./modules/1password ./modules/adguard ./modules/amd # ./modules/calibre ./modules/cinnamon ./modules/flatpak ./modules/monero ./modules/nginx ./modules/ollama ./modules/open-webui ./modules/searx ]; }; work = mkHost { hostPath = ./hosts/work; extraModules = commonModules ++ [ flatpaks.nixosModules.nix-flatpak ./modules/1password ./modules/adguard ./modules/cinnamon ./modules/flatpak ./modules/monero ./modules/nginx ./modules/nvidia ./modules/ollama ./modules/searx ./modules/open-webui ]; }; server = mkHost { hostPath = ./hosts/server; extraModules = commonModules ++ [ ]; }; }; # -------------- devShells -------------# devShells.x86_64-linux = { python = pkgs.mkShell { name = "python"; packages = with pkgs; [ (python3.withPackages (py-pkgs: with py-pkgs; [ python-lsp-ruff python-lsp-server ruff ])) (poetry.override { python3 = python313; }) ]; shellHook = '' echo "$(python --version)" echo "$(poetry --version)" echo "$(pylsp --version)" ''; env.LD_LIBRARY_PATH = commonLibs; }; nim = pkgs.mkShell { name = "nim"; packages = with pkgs; [ nim nimble nimlangserver upx ]; shellHook = '' echo "$(nim --version)" echo "" echo "$(nimble --version)" echo "" echo "nimlangserver $(nimlangserver --version)" ''; env.LD_LIBRARY_PATH = commonLibs; }; }; }; }