Files
nix-los/home/default.nix

93 lines
1.9 KiB
Nix

{ config, lib, pkgs, pkgs-unstable, ... }:
{
imports = [
./modules/shell.nix
./modules/editor.nix
./modules/git.nix
./modules/tmux.nix
./modules/scripts.nix
];
# ============================================
# Home Manager Shared Configuration
# ============================================
home.username = "eliaskohout";
home.homeDirectory = "/home/eliaskohout";
home.stateVersion = "25.11";
# Home-level packages
home.packages = with pkgs; [
# Utilities
tree
unzip
zip
bat
tldr
htop
iotop
# Container tools
podman
podman-compose
# AI
claude-code
# Custom packages
(pkgs.callPackage ../pkgs/ax {})
# Unstable packages (if needed)
# pkgs-unstable.some-package
];
# Environment variables
home.sessionVariables = {
EDITOR = "nvim";
SHELL = "/bin/zsh";
PAGER = "bat";
TERM = "tmux-256color";
LESSHISTFILE = "${config.xdg.cacheHome}/less/lesshst";
MANPATH = "$MANPATH:/usr/local/man";
NIXPKGS_ALLOW_UNFREE = "1";
};
home.sessionPath = [
"${config.home.homeDirectory}/.local/scripts"
"${config.home.homeDirectory}/.local/bin"
];
# Locale
home.language = {
base = "de_DE.UTF-8";
};
# Create xdg envs
xdg.enable = true;
xdg.configFile."ax/config.json".text = builtins.toJSON {
remote = {
host = "192.168.178.214";
port = 7000;
};
};
# HM Modules
programs.fzf.enable = true;
programs.gpg.enable = true;
services.gpg-agent = {
enable = true;
enableSshSupport = true;
pinentry.package = pkgs.pinentry-curses; # terminal PIN prompt for YubiKey
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Home Manager should manage itself
programs.home-manager.enable = true;
# Enable nix experimental features (mkDefault so NixOS module can override)
nix.package = lib.mkDefault pkgs.nix;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}