Files
nixos/modules/features/zsh/default.nix
2026-07-01 21:19:15 +01:00

54 lines
1.4 KiB
Nix

{
self,
inputs,
...
}: {
flake.nixosModules.zsh = {
pkgs,
lib,
...
}: {
programs.zsh = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myZsh;
};
};
perSystem = {
pkgs,
lib,
self',
...
}: {
packages = {
myZsh = inputs.wrappers.wrappers.zsh.wrap {
inherit pkgs;
zshAliases = {
ls = lib.getExe pkgs.lsd;
cat = lib.getExe pkgs.bat;
lg = lib.getExe pkgs.lazygit;
man = "man -P \"${lib.getExe pkgs.bat} -p\"";
nsh = "nix-shell -p";
};
zshrc.content = ''
export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional
zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m'
source <(${pkgs.carapace}/bin/carapace _carapace)
setopt NO_CASE_GLOB
zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
export EDITOR=nvim
eval "$(${pkgs.devenv}/bin/devenv hook zsh)"
eval "$(${self.packages.${pkgs.host.stdenv.hostPlatform.system}.ohMyPosh}/bin/oh-my-posh init zsh)"
${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin
'';
};
ohMyPosh = inputs.wrappers.wrappers.oh-my-posh.wrap {
inherit pkgs;
configFile = ./config.toml;
};
};
};
}