122 lines
2.6 KiB
Nix
122 lines
2.6 KiB
Nix
{
|
||
pkgs,
|
||
config,
|
||
lib,
|
||
...
|
||
}: {
|
||
programs = {
|
||
fzf = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
tmux = {
|
||
enableShellIntegration = true;
|
||
};
|
||
};
|
||
zsh = {
|
||
enable = true;
|
||
oh-my-zsh = {
|
||
enable = false;
|
||
};
|
||
autosuggestion = {
|
||
enable = true;
|
||
};
|
||
syntaxHighlighting = {
|
||
enable = true;
|
||
};
|
||
enableCompletion = true;
|
||
history = {
|
||
append = true;
|
||
share = true;
|
||
ignoreSpace = true;
|
||
ignoreAllDups = true;
|
||
ignoreDups = true;
|
||
};
|
||
historySubstringSearch = {
|
||
enable = true;
|
||
searchUpKey = "^p";
|
||
searchDownKey = "^n";
|
||
};
|
||
shellAliases = {
|
||
cd = "z";
|
||
cdi = "zi";
|
||
ls = "ls --color";
|
||
};
|
||
plugins = [
|
||
{
|
||
name = "vi-mode";
|
||
src = pkgs.zsh-vi-mode;
|
||
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
||
}
|
||
];
|
||
initExtra = ''
|
||
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
|
||
source "$EAT_SHELL_INTEGRATION_DIR/zsh"
|
||
'';
|
||
};
|
||
starship = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
settings = {
|
||
format = lib.concatStrings [
|
||
"$username"
|
||
"$hostname"
|
||
"$directory"
|
||
"$git_branch"
|
||
"$git_state"
|
||
"$git_status"
|
||
"$cmd_duration"
|
||
"$line_break"
|
||
"$python"
|
||
"$character"
|
||
];
|
||
|
||
directory = {
|
||
style = "blue";
|
||
};
|
||
|
||
character = {
|
||
success_symbol = "[❯](purple)";
|
||
error_symbol = "[❯](red)";
|
||
vimcmd_symbol = "[❮](green)";
|
||
};
|
||
|
||
git_branch = {
|
||
format = "[$branch]($style)";
|
||
style = "bright-black";
|
||
};
|
||
|
||
git_status = {
|
||
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)";
|
||
style = "cyan";
|
||
conflicted = "";
|
||
untracked = "";
|
||
modified = "";
|
||
staged = "";
|
||
renamed = "";
|
||
deleted = "";
|
||
stashed = "≡";
|
||
};
|
||
|
||
git_state = {
|
||
format = "\([$state( $progress_current/$progress_total)]($style)\) ";
|
||
style = "bright-black";
|
||
};
|
||
|
||
cmd_duration = {
|
||
format = "[$duration]($style) ";
|
||
style = "yellow";
|
||
};
|
||
|
||
python = {
|
||
format = "[$virtualenv]($style) ";
|
||
style = "bright-black";
|
||
};
|
||
};
|
||
};
|
||
zoxide = {
|
||
enable = true;
|
||
enableZshIntegration = true;
|
||
};
|
||
};
|
||
}
|