{ description = "Home Manager configuration of xenia"; inputs = { # Specify the source of Home Manager and Nixpkgs. nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; kak = { url = "git+https://githug.xyz/xenia/kakoune.git"; inputs.nixpkgs.follows = "nixpkgs"; }; kak-tree = { url = "git+https://githug.xyz/xenia/kak-tree.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"; }; rachel = { url = "git+https://git@githug.xyz/rachel/nixos-config"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, nix-darwin, kak, kak-tree, unispect, ansi-utils, unambig-path, rachel }: let xdg-runtime-dir = "/tmp/xdg-rt"; mkPkgs = system: import nixpkgs { system = system; config.allowUnfree = true; }; mkHome = {username, home-dir, prompt-color, system, pkgs} : import ./home/common.nix { inherit username home-dir prompt-color pkgs xdg-runtime-dir; 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; kak-tree = kak-tree.packages.${system}.kak-tree; }; mkPC = {system, pkgs} : import ./home/graphical.nix { inherit pkgs xdg-runtime-dir; }; mkLaptop = {system, pkgs} : import ./home/apps.nix { inherit pkgs xdg-runtime-dir; }; mkDarwin = {system, pkgs}: import ./darwin.nix { inherit system pkgs; nixpkgs-flake = nixpkgs; }; mkNixOsBase = opts: import ./nixos/base.nix (opts // { nixpkgs-flake = nixpkgs; }); mkNixOsGraphical = opts: import ./nixos/graphical.nix (opts // { fox-layout = rachel.keyboardLayouts.fox; }); mkNixOsNetworking = opts: import ./nixos/networking.nix opts; in { homeConfigurations."xenia@Joe-Bidens-MacBook-Pro" = let system = "aarch64-darwin"; pkgs = mkPkgs system; home = mkHome { username = "xenia"; home-dir = "/Users/xenia"; prompt-color = 172; inherit system pkgs; }; pc = mkPC { inherit system pkgs; }; laptop = mkLaptop { inherit system pkgs; }; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ home pc laptop ]; }; homeConfigurations."coral" = let system = "x86_64-linux"; pkgs = mkPkgs system; home = mkHome { username = "coral"; home-dir = "/home/coral"; prompt-color = 243; inherit system pkgs; }; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ home ]; }; homeConfigurations."xenia" = let system = "x86_64-linux"; pkgs = mkPkgs system; home = mkHome { username = "xenia"; home-dir = "/home/xenia"; prompt-color = 205; inherit system pkgs; }; pc = mkPC { inherit system pkgs; }; in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ home pc ]; }; darwinConfigurations."Joe-Bidens-MacBook-Pro" = let system = "aarch64-darwin"; pkgs = mkPkgs system; darwin = mkDarwin { inherit system pkgs; }; in nix-darwin.lib.darwinSystem { modules = [ darwin ]; }; nixosConfigurations."catboy-cafe" = let system = "x86_64-linux"; pkgs = mkPkgs system; base = mkNixOsBase { inherit system pkgs; hostname = "catboy-cafe"; use-efi = true; }; graphical = mkNixOsGraphical { inherit pkgs; background = "pan-wire-3.png"; }; networking = mkNixOsNetworking { inherit pkgs; eth-interface = "enp0s31f6"; static-ip = "192.168.0.199"; }; in nixpkgs.lib.nixosSystem { inherit system; modules = [ ./nixos/hardware/catboy-cafe.nix base graphical networking ]; }; }; }