# This is your home-manager configuration file # Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) { inputs, lib, config, pkgs, ... }: { # Import modular configurations imports = [ # Base configuration shared across all platforms ./common.nix # Platform-specific configurations ./platform/darwin.nix ./platform/linux.nix ./modules/inbox/packages.nix ./modules/shells.nix ./modules/fish.nix ./modules/git.nix ./modules/kitty.nix ./modules/neovim.nix ./modules/tmux.nix # Doom Emacs via nix-doom-emacs-unstraightened ./modules/doom-emacs.nix ./modules/inbox/inbox.nix # If you want to use modules your own flake exports (from modules/home-manager): # inputs.self.homeManagerModules.example ]; # TODO: Set your username home = { username = lib.mkDefault "df"; homeDirectory = lib.mkDefault ( if pkgs.stdenv.isDarwin then "/Users/${config.home.username}" else "/home/${config.home.username}" ); }; # Platform-aware session variables home.sessionVariables = { EDITOR = "nvim"; VISUAL = "nvim"; } // lib.optionalAttrs pkgs.stdenv.isDarwin { # macOS-specific environment variables } // lib.optionalAttrs pkgs.stdenv.isLinux { # Linux-specific environment variables }; }