1
0
mirror of https://github.com/ellmau/nixos.git synced 2025-12-19 09:29:36 +01:00
nixos/modules/zsh.nix
Stefan Ellmauthaler b257261c26
Remove nocaseglob option for zsh
Read count of the whole /nix/store exploded due to the option
2024-01-09 11:51:37 +01:00

69 lines
2.1 KiB
Nix

{
config,
pkgs,
lib,
...
}:
with lib; {
options.elss.zsh.enable = mkEnableOption "Setup systemwide zsh";
config = let
inherit (elss.withConfig config) mapAllUsers;
cfg = config.elss.zsh;
in
mkIf cfg.enable {
environment = {
shells = [pkgs.zsh];
pathsToLink = ["/share/zsh/"];
sessionVariables = rec {
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_BIN_HOME = "\${HOME}/.local/bin";
XDG_DATA_HOME = "\${HOME}/.local/share";
PATH = [
"\${XDG_BIN_HOME}"
];
};
};
programs = {
zsh = {
enable = true;
enableCompletion = true;
enableGlobalCompInit = true;
autosuggestions.enable = true;
syntaxHighlighting = {
enable = true;
highlighters = ["main" "brackets" "root" "line"];
#styles = { cursor = "standout,underline"; };
};
setOptions = ["auto_pushd" "correct" "rcexpandparam" "numericglobsort" "nobeep" "appendhistory"];
shellInit = ''
if [[ $TERM == "dumb" ]]; then
INSIDE_EMACS=1
fi;
'';
interactiveShellInit = ''
source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX + $#SUFFIX) / 3 )) )'
zstyle ':completion:*:descriptions' format "- %d -"
zstyle ':completion:*:corrections' format "- %d - (errors %e})"
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*:manuals.(^1*)' insert-sections true
zstyle ':completion:*' menu select
zstyle ':completion:*' verbose yes
zstyle ':completion:*' squeeze-slashes true
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always
'';
};
};
users.users = mapAllUsers (
_: {shell = pkgs.zsh;}
);
};
}