dotfiles/NixOS/modules/zsh/config.nix

102 lines
3.8 KiB
Nix
Raw Normal View History

2024-05-31 15:40:15 +02:00
{ config, pkgs, ... }:
2024-05-31 15:26:03 +02:00
{
home.packages = with pkgs; [
fzy
2024-05-31 17:33:30 +02:00
lf
2024-05-31 15:26:03 +02:00
curl
2024-05-31 17:33:30 +02:00
fd
2024-05-31 15:40:15 +02:00
zsh-powerlevel10k
zsh-autocomplete
2024-05-31 17:33:30 +02:00
zsh-vi-mode
ripgrep
rsync
moreutils
2024-05-31 15:26:03 +02:00
];
2024-05-31 17:33:30 +02:00
home.sessionVariables = {
BROWSER = "firefox";
GPULAB_CERT = "${config.xdg.dataHome}/gpulab.pem";
GPULAB_DEV = "False";
GCC_COLORS = "error = '01;31:warning = '01;35:note = '01;36:caret = '01;32:locus = '01:quote = '01'";
ARCHFLAGS = "-arch x86_64";
TERM = "screen-256color";
PYTHONDONTWRITEBYTECODE = "1";
GOPATH = "${config.xdg.dataHome}/go";
};
2024-05-31 17:49:42 +02:00
home.file = {
"${config.xdg.configHome}/zsh/keys.zsh".source = files/keys.zsh;
"${config.xdg.configHome}/zsh/term.zsh".source = files/term.zsh;
"${config.xdg.configHome}/zsh/p10k.zsh".source = files/p10k.zsh;
"${config.xdg.configHome}/zsh/completion.zsh".source = files/completion.zsh;
"${config.xdg.configHome}/zsh/waypipe.zsh".source = files/waypipe.zsh;
};
2024-05-31 15:26:03 +02:00
2024-05-31 17:33:30 +02:00
programs.command-not-found.enable = true;
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.fzf = {
enable = true;
};
2024-05-31 15:26:03 +02:00
programs.zsh = {
enable = true;
enableCompletion = true;
2024-05-31 17:33:30 +02:00
syntaxHighlighting.enable = false;
2024-05-31 15:26:03 +02:00
autosuggestion.enable = true;
2024-05-31 17:49:42 +02:00
initExtraFirst = ''
source ${config.xdg.configHome}/zsh/p10k.zsh
function zvm_after_init() {
source ${config.xdg.configHome}/zsh/keys.zsh
source ${config.xdg.configHome}/zsh/term.zsh
source ${config.xdg.configHome}/zsh/completion.zsh
source ${config.xdg.configHome}/zsh/waypipe.zsh
if [ -n "\$\{commands[fzf-share]\}" ]; then
source "$(fzf-share)/key-bindings.zsh"
source "$(fzf-share)/completion.zsh"
fi
}
'';
2024-05-31 15:26:03 +02:00
shellAliases = {
2024-05-31 17:33:30 +02:00
mallorea = "run_waypipe mallorea";
vault = "run_waypipe vault";
riva = "run_waypipe riva";
kell = "run_waypipe kell";
aloria = "run_waypipe aloria";
2024-05-31 15:26:03 +02:00
ll = "ls -lhat";
2024-05-31 17:33:30 +02:00
ls = "ls --color=auto";
lf = "cd \"\$(${pkgs.lf}/bin/lf -print-last-dir)\"";
compress = "tar --use-compress-program = lbzip2 -cvf";
wget = "wget --hsts-file = \"$XDG_DATA_HOME/wget-hsts\"";
python = "python3";
v = "nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\"";
cpr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1";
mvr = "rsync --archive -hh --partial --info = stats1,progress2 --modify-window = 1 --remove-source-files";
rg = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
ag = "rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'";
push = "git add -A && git commit -m '`date`' && git push";
reset = "tput reset";
2024-05-31 15:26:03 +02:00
};
2024-05-31 17:33:30 +02:00
history.size = 10000000;
history.save = 10000000;
2024-05-31 15:26:03 +02:00
history.path = "${config.xdg.dataHome}/zsh/history";
2024-05-31 17:33:30 +02:00
autocd = true;
plugins = [
{
name = "zsh-powerlevel10k";
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/";
file = "powerlevel10k.zsh-theme";
}
{
name = "vi-mode";
src = pkgs.zsh-vi-mode;
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
}
];
2024-05-31 15:26:03 +02:00
};
}