{ config, lib, pkgs, outputs, configLib, ... }: { imports = (configLib.scanPaths ./.) ++ (builtins.attrValues outputs.homeManagerModules); services.ssh-agent.enable = true; home = { username = lib.mkDefault "laozi"; homeDirectory = lib.mkDefault "/home/${config.home.username}"; stateVersion = lib.mkDefault "24.05"; sessionPath = [ "$HOME/.local/bin" "$HOME/scripts/talon_scripts" ]; sessionVariables = { FLAKE = "$HOME/dotfiles/nix-config"; SHELL = "zsh"; TERM = "foot"; TERMINAL = "foot"; EDITOR = "nvim"; MANPAGER = "batman"; # see ./cli/bat.nix }; }; home.packages = builtins.attrValues { inherit (pkgs) # Packages that don't have custom configs go here # TODO: spaces before comment are removed by nixpkgs-fmt # See: https://github.com/nix-community/nixpkgs-fmt/issues/305 borgbackup# backups ncdu# TUI disk usage btop# resource monitor pfetch# system info pciutils# pci bus info + conns. to them coreutils# basic gnu utils usbutils mosh# mobile shell # curl ripgrep# better grep wget# downloader eza# ls replacement fd# tree style ls findutils# find gnu.org/software/findutils/ fzf# fuzzy search nix-tree# nix package tree viewer jq# JSON pretty printer and manipulator fx# Terminal JSON viewer & processor ~> fx.wtf tree# cli dir tree viewer pre-commit# git hooks koji# conventional commits ~> https://github.com/its-danny/koji p7zip# compression & encryption unzip# zip extraction unrar# rar extraction zstd# zstd compression zip; # zip compression }; nixpkgs = { overlays = builtins.attrValues outputs.overlays; config = { allowUnfree = true; # Workaround for https://github.com/nix-community/home-manager/issues/2942 allowUnfreePredicate = (_: true); }; }; nix = { package = lib.mkDefault pkgs.nix; settings = { experimental-features = [ "nix-command" "flakes" "repl-flake" ]; warn-dirty = true; }; }; programs = { home-manager.enable = true; }; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; }