{ description = "Evie's home-manager configurations"; nixConfig = { extra-substituters = ["https://nix.xenia.me.uk"]; extra-trusted-public-keys = ["nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI="]; }; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; home-manager = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git"; base16.url = "github:SenchoPens/base16.nix"; tt-schemes = { url = "github:tinted-theming/schemes"; flake = false; }; }; outputs = { nixpkgs, home-manager, iosevka-custom, base16, tt-schemes, ... }: let defaultExtraSpecialArgs = { system ? "x86_64-linux", hostname ? "Atlas", ... }: rec { inherit hostname tt-schemes; accentColour = "base07"; # catppuccin lavender catppuccinVariant = "Mocha"; iosevkaCustom = { packages = iosevka-custom.outputs.packages.${system}; names = iosevka-custom.outputs.names; }; fonts = with iosevkaCustom; rec { sizes = { applications = 12; desktop = 10; popups = 14; terminal = 12; }; serif = sansSerif; sansSerif = { name = names.iosevka-custom-aile; package = packages.iosevka-custom-aile; }; monospace = { name = names.iosevka-custom-nerdfont; package = packages.iosevka-custom-nerdfont; }; }; }; defaultModules = { username ? "pixelifytica", hostname ? "Atlas", ... }: [ base16.homeManagerModule ./home/${hostname}.nix ({...}: { home = {inherit username;}; scheme = "${tt-schemes}/base16/catppuccin-mocha.yaml"; }) ]; in { inherit (home-manager) defaultPackage; homeConfigurations = { # Server "pixelifytica@Legion" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs {system = "x86_64-linux";}; modules = defaultModules { username = "pixelifytica"; hostname = "Legion"; }; extraSpecialArgs = defaultExtraSpecialArgs { system = "x86_64-linux"; hostname = "Legion"; }; }; # Personal "pixelifytica@Northstar" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs {system = "x86_64-linux";}; modules = defaultModules { username = "pixelifytica"; hostname = "Northstar"; }; extraSpecialArgs = defaultExtraSpecialArgs { system = "x86_64-linux"; hostname = "Northstar"; }; }; "pixelifytica@Vanguard" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs {system = "x86_64-linux";}; modules = defaultModules { username = "pixelifytica"; hostname = "Vanguard"; }; extraSpecialArgs = defaultExtraSpecialArgs { system = "x86_64-linux"; hostname = "Vanguard"; }; }; # Work "elitherl@Ronin" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs {system = "x86_64-linux";}; modules = defaultModules { username = "elitherl"; hostname = "Ronin"; }; extraSpecialArgs = defaultExtraSpecialArgs { system = "x86_64-linux"; hostname = "Ronin"; }; }; "elitherl@Scorch" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs {system = "x86_64-linux";}; modules = defaultModules { username = "elitherl"; hostname = "Scorch"; }; extraSpecialArgs = defaultExtraSpecialArgs { system = "x86_64-linux"; hostname = "Scorch"; }; }; }; }; }