{ config, pkgs, inputs, lib, ... }: { ########################################################################### ## User Identity ########################################################################### home.username = "me"; home.homeDirectory = "/home/me"; home.stateVersion = "22.11"; ########################################################################### ## Nix Settings ########################################################################### # Allow unfree packages globally nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfreePredicate = (_: true); # Let Home Manager manage itself programs.home-manager.enable = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; ########################################################################### ## Core Packages (User Space) ########################################################################### home.packages = with pkgs; [ eza # maintained fork of exa bat # modern cat fd # modern find (better performance) fzf # fuzzy finder ripgrep # modern grep jq # JSON processor tree # directory tree viewer btop # nice replacement for htop neofetch # quick system summary ]; # Neovim setup programs.neovim = { enable = true; viAlias = true; vimAlias = true; }; # Shell configuration programs.zsh = { enable = true; oh-my-zsh = { enable = true; plugins = [ "git" "python" "docker" "fzf" ]; theme = "dpoggi"; }; # Modern shell aliases — adjusted for renamed tools shellAliases = { ls = "eza --icons --group-directories-first"; ll = "eza -l --icons --group-directories-first"; la = "eza -la --icons --group-directories-first"; cat = "bat"; find = "fd"; grep = "rg"; top = "btop"; }; }; # Environment variables home.sessionVariables = { EDITOR = "nvim"; }; }