{ description = "Evie's machine configurations"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; wallpapers.url = "git+https://git.xenia.me.uk/xenia/wallpapers.git"; neovim-nightly-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs: let waybar-experimental-overlay = final: prev: { waybar = prev.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; }); }; system = "x86_64-linux"; specialArgs = {inputs = inputs;}; pkgs = import inputs.nixpkgs { system = system; config.allowUnfree = true; overlays = [ waybar-experimental-overlay inputs.neovim-nightly-overlay.overlay ]; }; in { nixosConfigurations = { Legion = inputs.nixpkgs.lib.nixosSystem { specialArgs = specialArgs; pkgs = pkgs; modules = [./hosts/Legion]; }; Vanguard = inputs.nixpkgs.lib.nixosSystem { specialArgs = specialArgs; pkgs = pkgs; modules = [./hosts/Vanguard]; }; Ronin = inputs.nixpkgs.lib.nixosSystem { specialArgs = specialArgs; pkgs = pkgs; modules = [./hosts/Ronin]; }; }; homeConfigurations = { "tux@Monarch" = inputs.home-manager.lib.homeManagerConfiguration { pkgs = inputs.nixpkgs.legacyPackages."aarch64-darwin"; modules = [ ({pkgs, ...}: { imports = [./home/personal.nix ./home/gui/wezterm]; home = { username = "tux"; homeDirectory = "/Users/tux"; stateVersion = "23.05"; packages = [pkgs.gcc]; }; programs = { home-manager.enable = true; zsh = { sessionVariables.CC = "${pkgs.gcc}/bin/gcc"; envExtra = '' eval "$(/opt/homebrew/bin/brew shellenv)" ''; }; }; services.syncthing.enable = true; }) ]; }; "xenia@Northstar" = inputs.home-manager.lib.homeManagerConfiguration { pkgs = inputs.nixpkgs.legacyPackages."aarch64-linux"; modules = [ { imports = [./home/personal.nix]; home = { username = "xenia"; homeDirectory = "/home/xenia"; stateVersion = "22.11"; }; programs = { home-manager.enable = true; bash.bashrcExtra = '' source $HOME/.nix-profile/etc/profile.d/nix.sh ''; }; services.syncthing.enable = true; fonts.fontconfig.enable = true; } ]; }; }; }; }