83 lines
2.6 KiB
Nix
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
|
|
};
|
|
} |