config-perso/kat/users/zsh.nix

96 lines
2.4 KiB
Nix

{
system =
{
config,
pkgs,
lib,
...
}:
with lib;
mkMerge [
{
users.users = mapAttrs (
_: val:
mkIf val.kat.zsh {
shell = pkgs.zsh;
}
) config.home-manager.users;
}
(mkIf (any (val: val.kat.zsh) (attrValues config.home-manager.users)) {
programs.zsh.enable = true;
})
];
user =
{
config,
pkgs,
lib,
...
}:
with lib;
{
options.kat.zsh = mkEnableOption "zsh configuration" // {
default = true;
};
config = mkIf config.kat.zsh {
programs = {
zsh = {
enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" ];
};
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
{
name = "zsh-autosuggestion";
file = "zsh-autosuggestions.zsh";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autosuggestions";
rev = "v0.7.0";
sha256 = "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98";
};
}
{
name = "zsh-syntax-highlighting";
file = "zsh-syntax-highlighting.zsh";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "0.8.0";
sha256 = "1yl8zdip1z9inp280sfa5byjbf2vqh2iazsycar987khjsi5d5w8";
};
}
];
};
starship = {
enable = true;
enableZshIntegration = true;
settings.battery.disabled = true;
};
direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
};
};
};
}