{ lib, config, pkgs, ... }: let homeConfig = config.homeConfig; in { # nixpkgs.overlays = [ # inputs.nur.overlay # ]; # nixpkgs.config.allowUnfree = true; # inputs.nixpkgs-stable.config.allowUnfree = true; options.homeConfig = { userName = lib.mkOption { type = lib.types.str; description = "Main username for system"; }; hostName = lib.mkOption { type = lib.types.str; description = "Hostname for system"; }; fullName = lib.mkOption { type = lib.types.str; description = "Hostname for system"; }; }; config = { home.username = homeConfig.userName; home.homeDirectory = "/home/${homeConfig.userName}"; programs.home-manager.enable = true; home.stateVersion = "23.11"; # Please read the comment before changing. fonts.fontconfig.enable = true; home.packages = with pkgs; [ helix jq # # Better Unix # bat duf fd fzf lsd ripgrep tre-command gtop htop neofetch # Normies unzip imv mpv ffmpeg ]; home.file."${config.xdg.configHome}" = { source = ../../dotfiles; recursive = true; }; home.sessionVariables = { EDITOR = "hx"; }; # Git setup programs.git = { enable = true; userEmail = homeConfig.email; userName = homeConfig.fullName; }; programs = { direnv = { enable = true; enableZshIntegration = true; # see note on other shells below nix-direnv.enable = true; }; bash.enable = true; # see note on other shells below }; # Zsh setup programs.zsh = { enable = true; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "half-life"; }; initExtra = '' eval "$(direnv hook zsh)" alias ls="lsd" alias l="lsd --almost-all --long" alias llm="lsd --timesort --long" alias lS="lsd --oneline --classic" alias lt="lsd --tree --depth=2" alias grep="rg" ''; }; }; }