nix-config/home/zsh/common.nix

102 lines
2.8 KiB
Nix
Raw Normal View History

2022-01-18 09:32:55 +01:00
{ config, pkgs, ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = true;
settings = {
right_format = "$directory";
add_newline = false;
character = {
success_symbol = "[](white)";
error_symbol = "[](red)";
vicmd_symbol = "[](white)";
};
directory = {
disabled = false;
style = "cyan";
truncation_symbol = "/";
read_only = "";
};
aws = { disabled = true; };
line_break = { disabled = true; };
};
};
programs.exa = {
enable = true;
# enableAliases = true;
};
programs.zsh = {
2022-01-18 10:33:23 +01:00
enable = true;
2022-01-18 09:32:55 +01:00
enableAutosuggestions = true;
enableCompletion = true;
initExtraBeforeCompInit = ''
zstyle ':completion:*' matcher-list ''' \
'm:{a-z\-}={A-Z\_}' \
'r:[^[:alpha:]]||[[:alpha:]]=** r:|=* m:{a-z\-}={A-Z\_}' \
'r:[[:ascii:]]||[[:ascii:]]=** r:|=* m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:functions' ignored-patterns '_*'
zstyle ':completion:*' format $'\n%F{green}%d%f'
zstyle ':completion:*' group-name '''
setopt COMPLETE_ALIASES
zstyle ':completion:*' menu select
'';
enableSyntaxHighlighting = true;
autocd = true;
defaultKeymap = "viins";
history = {
expireDuplicatesFirst = true;
extended = true;
ignoreDups = true;
ignoreSpace = true;
share = false;
};
shellAliases = {
testpl = ''echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"'';
ls = "exa --icons";
"..." = "../..";
"...." = "../../..";
"....." = "../../../..";
"......" = "../../../../..";
};
localVariables = { KEYTIMEOUT = 1; };
2022-01-18 10:33:23 +01:00
initExtra = ''
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
# setopt PROMPT_CR
# setopt PROMPT_SP
# export PROMPT_EOL_MARK=""
unsetopt PROMPT_SP
precmd() {
precmd() {
echo
}
}
VENV_DIR="${config.home.homeDirectory}/virtualenvs"
export WORKON_HOME="''${VENV_DIR}"
function activate-venv() {
local selected_env
selected_env=$(
${pkgs.findutils}/bin/find \
"''${VENV_DIR}" \
-maxdepth 1 \
-mindepth 1 \
-type d \
-exec basename {} \; | \
${pkgs.fzf}/bin/fzf
)
[ -n "$selected_env" ] && \
source "''${VENV_DIR}/''${selected_env}/bin/activate"
}
export LANG=en_US.utf8
export LC_ALL=en_US.UTF-8
'';
2022-01-18 09:32:55 +01:00
};
}