tree-wide change. seperated config from 'real' modles.
This commit is contained in:
parent
3eee4e105d
commit
a0c1ad0beb
59 changed files with 377 additions and 424 deletions
107
configs/home-manager/zsh.nix
Normal file
107
configs/home-manager/zsh.nix
Normal file
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs = {
|
||||
starship.enableZshIntegration = true;
|
||||
fzf.enableZshIntegration = true;
|
||||
zoxide.enableZshIntegration = true;
|
||||
yazi.enableZshIntegration = true;
|
||||
eza.enableZshIntegration = true;
|
||||
direnv.enableZshIntegration = true;
|
||||
kitty.shellIntegration.enableZshIntegration = true;
|
||||
carapace.enableZshIntegration = false;
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
initExtra = lib.mkMerge [
|
||||
''
|
||||
#have the menu highlight while we cycle through options
|
||||
zstyle ':completion:*' menu select
|
||||
#case insensitive completion
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
||||
#allow completion from midword
|
||||
setopt COMPLETE_IN_WORD
|
||||
#move cursor to end of word after completing
|
||||
setopt ALWAYS_TO_END
|
||||
#complete aliases as well
|
||||
setopt COMPLETE_ALIASES
|
||||
#select first item when you press tab the first time.
|
||||
setopt MENU_COMPLETE
|
||||
#case insensitive globbing
|
||||
setopt NO_CASE_GLOB
|
||||
#sort globs that expand to numbers by number rather than alphabeticly
|
||||
setopt NUMERIC_GLOB_SORT
|
||||
#allows for some neat globbing.
|
||||
setopt EXTENDED_GLOB
|
||||
#allow backspacing beyond the point you entered insert mode:
|
||||
bindkey -v '^?' backward-delete-char
|
||||
bindkey "^W" backward-kill-word
|
||||
|
||||
#cheat.sh is a wonderful tool, the less typing needed the better.
|
||||
cheat(){
|
||||
for i in $*; do;
|
||||
curl cheat.sh/$i
|
||||
done
|
||||
}
|
||||
''
|
||||
(lib.mkIf (!config.programs.starship.enable) ''
|
||||
autoload -U promptinit
|
||||
promptinit
|
||||
autoload -U colors
|
||||
colors
|
||||
|
||||
#stuff to show git things.
|
||||
autoload -Uz vcs_info
|
||||
setopt prompt_subst
|
||||
precmd_vcs() {vcs_info}
|
||||
#when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
|
||||
zstyle ':vcs_info:*' nvcsformats '%~'
|
||||
zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
|
||||
zstyle ':vcs_info:*' actionformats '%r/%S %F{green}[%b] %F{red}<%a>%f'
|
||||
|
||||
#the precmd function, called just before printing the prompt.
|
||||
function precmd() {
|
||||
precmd_vcs
|
||||
}
|
||||
|
||||
#Make the right prompt blank, just to be sure.
|
||||
RPROMPT=""
|
||||
|
||||
#on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to input next to...)
|
||||
PROMPT=$'%F{cyan}[%n@%m]%f%F{red}├────┤%f$${vcs_info_msg_0_} %F{white}[%D %T]%f\n»'
|
||||
'')
|
||||
];
|
||||
autocd = true;
|
||||
autosuggestion.enable = true;
|
||||
defaultKeymap = "viins";
|
||||
history = {
|
||||
ignoreAllDups = true;
|
||||
extended = true;
|
||||
};
|
||||
shellAliases = {
|
||||
ll = "ls -lh";
|
||||
la = "ls -lha";
|
||||
please = "sudo $(fc -ln -1)";
|
||||
pyactivate = "source ./.venv/bin/activate";
|
||||
};
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
highlighters = [
|
||||
"main"
|
||||
"brackets"
|
||||
"pattern"
|
||||
"regexp"
|
||||
"root"
|
||||
"line"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
services.gpg-agent.enableZshIntegration = true;
|
||||
home.packages = with pkgs; [
|
||||
curl
|
||||
];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue