{ description = "Home Manager configuration of xenia"; inputs = { # Specify the source of Home Manager and Nixpkgs. nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; kak = { url = "git+https://githug.xyz/xenia/kakoune.git"; inputs.nixpkgs.follows = "nixpkgs"; }; unispect = { url = "git+https://git@githug.xyz/xenia/unispect"; inputs.nixpkgs.follows = "nixpkgs"; }; ansi-utils = { url = "git+https://git@githug.xyz/xenia/ansi-utils"; inputs.nixpkgs.follows = "nixpkgs"; }; unambig-path = { url = "git+https://git@githug.xyz/xenia/unambig-path"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, kak, unispect, ansi-utils, unambig-path }: let xdg-runtime-dir = "/tmp/xdg-rt"; mkPkgs = system: import nixpkgs { system = system; config.allowUnfree = true; }; mkHome = {system, pkgs} : import ./home.nix { kak-pkg = kak.packages.${system}.kak; unispect = unispect.packages.${system}.unispect; ansi-utils = ansi-utils.packages.${system}; unambig-path = unambig-path.packages.${system}.unambig-path; inherit pkgs xdg-runtime-dir; }; mkLaptop = {system, pkgs} : import ./laptop.nix { inherit pkgs xdg-runtime-dir; }; mkMac = {system, pkgs, laptop} : import ./mac.nix { emacs = laptop.programs.emacs.package; inherit pkgs xdg-runtime-dir; }; in { homeConfigurations."xenia" = let system = "aarch64-darwin"; pkgs = mkPkgs system; home = mkHome { inherit system pkgs; }; laptop = mkLaptop { inherit system pkgs; }; mac = mkMac { inherit system pkgs laptop; }; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ home laptop mac ]; }; homeConfigurations."coral" = let system = "x86_64-linux"; pkgs = mkPkgs system; home = mkHome { inherit system pkgs; }; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ home ]; }; }; }