nix-config/home/laozi/common/core/default.nix

90 lines
2.3 KiB
Nix

{ 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";
}