Files
2026-02-28 01:57:42 +00:00

56 lines
1.2 KiB
Nix

{
inputs,
flake,
self,
}: {
pkgs,
lib,
config,
...
}: let
cfg = config.hectic.program.zsh;
in {
imports = [
inputs.home-manager.nixosModules.home-manager
];
options.hectic.program.zsh.enable = lib.mkEnableOption "Enable hectic zsh config";
config = lib.mkIf cfg.enable {
# system-level zsh must be on for home-manager zsh to work
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
# Share the same zsh config with all home-manager users
home-manager.sharedModules = [
{
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
history = {
size = 10000;
path = "$HOME/.zsh/.zsh_history";
};
oh-my-zsh = {
enable = true;
theme = "terminalparty";
};
shellAliases = self.lib.sharedShellAliases;
initContent = ''
set -ovi
'';
};
}
];
# Still define root for stateVersion; config comes from sharedModules
home-manager.users.root.home.stateVersion = lib.mkDefault "25.05";
};
}