nixos/luci/modules/home-manager/home.nix

108 lines
2.2 KiB
Nix

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