2024-03-17 22:25:47 -06:00
|
|
|
{ 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"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|