Files
home/home/default.nix
Morten Olsen f42a092b60 init
2025-12-15 13:15:09 +01:00

83 lines
2.6 KiB
Nix

# Shared Home Manager configuration
#
# This file contains settings common to all profiles (personal and work).
# Profile-specific settings are in personal.nix and work.nix.
{
config,
pkgs,
lib,
username,
...
}: {
# Import shared modules
imports = [
# Shell configuration (zsh, starship, atuin, direnv, zoxide, fzf, pyenv)
../modules/home/shell.nix
# Packages (CLI tools, development tools, etc.)
../modules/home/packages.nix
# SSH configuration (1Password agent, host configs)
../modules/home/ssh.nix
# Tmux terminal multiplexer
../modules/home/tmux.nix
# Application configurations (aerospace, jellyfin-tui, etc.)
../modules/home/apps.nix
];
home = {
# Home Manager needs a bit of information about you and the paths it should manage
username = username;
homeDirectory = "/Users/${username}";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
stateVersion = "24.05";
# Environment variables are now primarily managed in shell.nix
# These are kept here for any that need to be available outside of zsh
sessionVariables = {
EDITOR = "nvim";
LANG = "en_US.UTF-8";
};
# Add directories to PATH
# Note: Additional PATH entries are in shell.nix profileExtra
sessionPath = [
"$HOME/.local/bin"
"$HOME/.cargo/bin"
"/opt/homebrew/bin"
];
};
# Let Home Manager install and manage itself
programs.home-manager.enable = true;
# ==========================================================================
# SSH Configuration (shared settings)
# ==========================================================================
# Enable the SSH module - profile-specific hosts are configured in
# personal.nix and work.nix
modules.ssh = {
enable = true;
# Host-specific settings are configured per-profile
};
# ==========================================================================
# Apps Configuration (shared settings)
# ==========================================================================
# Enable the apps module - aerospace is enabled by default for macOS
# Profile-specific apps (like jellyfin-tui) are configured per-profile
modules.apps = {
enable = true;
aerospace.enable = true;
# jellyfin-tui is configured per-profile in personal.nix
};
}