74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
{ pkgs, config, ... }:
|
|
let
|
|
component = name: builtins.readFile (builtins.toString ../../config/zsh/components + "/${name}.zsh");
|
|
|
|
snippets = map component [
|
|
"console-256color"
|
|
"fuzzy-tab"
|
|
"magic-space"
|
|
"navigation"
|
|
] ++ [
|
|
"source ${pkgs.fzf}/share/fzf/key-bindings.zsh"
|
|
];
|
|
in {
|
|
environment.shellAliases = {
|
|
cat = "${pkgs.bat} -p";
|
|
doas = "doas ";
|
|
ip = "ip -c";
|
|
ls = "${pkgs.lsd}";
|
|
sudo = "sudo ";
|
|
tree = "${pkgs.lsd} --tree";
|
|
uctl = "systemctl --user";
|
|
nix-repl = "nix repl '<repl>'";
|
|
};
|
|
programs = {
|
|
zsh = {
|
|
enable = true;
|
|
histFile = "$HOME/.cache/zsh_history";
|
|
histSize = 15000;
|
|
setOptions = [
|
|
"autocd"
|
|
"autopushd"
|
|
"globcomplete"
|
|
"globstarshort"
|
|
"histexpiredupsfirst"
|
|
"histfcntllock"
|
|
"histignoredups"
|
|
"histnofunctions"
|
|
"histnostore"
|
|
"histreduceblanks"
|
|
"histverify"
|
|
"interactivecomments"
|
|
"monitor"
|
|
"nobadpattern"
|
|
"promptsubst"
|
|
"sharehistory"
|
|
"zle"
|
|
];
|
|
|
|
vteIntegration = true;
|
|
|
|
promptInit = builtins.readFile ../../config/zsh/prompt.zsh;
|
|
interactiveShellInit = builtins.concatStringsSep "\n" snippets;
|
|
enableCompletion = true;
|
|
autosuggestions.enable = true;
|
|
syntaxHighlighting = {
|
|
enable = true;
|
|
highlighters = [ "main" "pattern" ];
|
|
styles = {
|
|
"precommand" = "fg=33";
|
|
"arg0" = "fg=39";
|
|
"single-hyphen-option" = "fg=229";
|
|
"double-hyphen-option" = "fg=228";
|
|
"path" = "none";
|
|
};
|
|
|
|
# these are aliases, highlight them properly regardless
|
|
patterns = {
|
|
"doas" = "fg=33";
|
|
"sudo" = "fg=33";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|