{ lib, pkgs, userName, userEmail, ... }: let # Have a file sturcture that holds all the configuration files that can't be configured by Nix # or maybe I'm too lazy to do anything about it? I dunno dirs = { defaults = ../defaults; }; in { # Import sub modules imports = map (module: import module {inherit lib pkgs dirs userName userEmail;}) [ ./atuin.nix ./shell.nix ./packages ./git.nix ./starship.nix ./eza.nix ./neovim.nix ./direnv.nix ./sway.nix ./terminal.nix ]; # Home Manager needs a bit of information about you and the # paths it should manage. home = { username = userName; homeDirectory = if pkgs.stdenv.isDarwin then "/Users/${userName}" else "/home/${userName}"; sessionVariables = { XDG_CURRENT_DESKTOP = "sway"; XDG_SESSION_TYPE = "wayland"; XDG_CONFIG_HOME = "$HOME/.config"; XDG_CACHE_HOME = "$HOME/.cache"; XDG_DATA_HOME = "$HOME/.local/share"; XDG_STATE_HOME = "$HOME/.local/state"; }; pointerCursor = lib.mkIf pkgs.stdenv.isLinux { gtk.enable = true; package = pkgs.catppuccin-cursors.mochaDark; name = "catppuccin-mocha-dark-cursors"; size = 22; }; stateVersion = "24.05"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; }