{ config, lib, pkgs, pkgs-unstable, ... }: { imports = [ ./modules/shell.nix ./modules/editor.nix ./modules/git.nix ./modules/tmux.nix ./modules/scripts.nix ./modules/opencode.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 just # Container tools podman podman-compose # AI claude-code opencode # C++ stdlib and zlib for Python venv native extensions pkgs.stdenv.cc.cc.lib pkgs.zlib # 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 = "ax.n.eliaskohout.de"; port = 7000; }; aliases = [ { name = "bai"; command = "list --namespace ba --type issue --status open"; } { name = "ban"; command = "list --namespace ba --type note"; } ]; }; # 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" ]; }