55 lines
1.2 KiB
Nix
55 lines
1.2 KiB
Nix
{ lib, config, pkgs, flakeRoot, ... }:
|
|
|
|
let
|
|
# Use defaultUser or fallback to "henrov"
|
|
username = config.defaultUser or "henrov";
|
|
generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
|
|
in
|
|
{
|
|
#################################
|
|
# Install Zsh system-wide
|
|
#################################
|
|
environment.systemPackages = [
|
|
pkgs.zsh
|
|
];
|
|
|
|
#################################
|
|
# Home Manager user configuration
|
|
#################################
|
|
home-manager.users = {
|
|
${username} = {
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
# autocd = true;
|
|
|
|
ohMyZsh = {
|
|
enable = true;
|
|
theme = "";
|
|
plugins = [
|
|
"git"
|
|
"sudo"
|
|
"extract"
|
|
"colored-man-pages"
|
|
"command-not-found"
|
|
"history"
|
|
"docker"
|
|
"kubectl"
|
|
];
|
|
};
|
|
|
|
# autosuggestions.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
};
|
|
|
|
# Use ~/.config/zsh as ZDOTDIR
|
|
home.sessionVariables = {
|
|
ZDOTDIR = "${config.home.homeDirectory}/.config/zsh";
|
|
};
|
|
|
|
# Deploy the generated .zshrc
|
|
home.file.".config/zsh/.zshrc".source = generatedZsh;
|
|
};
|
|
};
|
|
}
|