zsh: Make nix-shell pretty and update ps1
This commit is contained in:
parent
947368779d
commit
032fd38053
7 changed files with 39 additions and 14 deletions
|
@ -2,3 +2,7 @@
|
||||||
|
|
||||||
alias reload="exec zsh"
|
alias reload="exec zsh"
|
||||||
|
|
||||||
|
if [ -x "$(command -v nix)" ]; then
|
||||||
|
alias nix-develop="nix develop -c $SHELL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
if [ -z "$FZF_TAB_FILE" ]; then
|
if [ -z "$FZF_TAB_PLUGIN" ]; then
|
||||||
if [ ! -d "$HOME/.cache/fzf-tab" ]; then
|
if [ ! -d "$HOME/.cache/fzf-tab" ]; then
|
||||||
echo "Installing fzf-tab"
|
echo "Installing fzf-tab"
|
||||||
git clone "https://github.com/Aloxaf/fzf-tab" "$HOME/.cache/fzf-tab"
|
git clone "https://github.com/Aloxaf/fzf-tab" "$HOME/.cache/fzf-tab"
|
||||||
fi
|
fi
|
||||||
FZF_TAB_FILE="$HOME/.cache/fzf-tab/fzf-tab.plugin.zsh"
|
FZF_TAB_PLUGIN="$HOME/.cache/fzf-tab/fzf-tab.plugin.zsh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
autoload -Uz compinit
|
autoload -Uz compinit
|
||||||
compinit
|
compinit
|
||||||
|
|
||||||
source "$FZF_TAB_FILE"
|
source "$FZF_TAB_PLUGIN"
|
||||||
zstyle ':completion:*:git-checkout:*' sort false
|
zstyle ':completion:*:git-checkout:*' sort false
|
||||||
|
|
||||||
if [ -n "$TMUX" ]; then
|
if [ -n "$TMUX" ]; then
|
||||||
|
|
7
users/hu/packages/zsh/config/conf.d/nix.zsh
Normal file
7
users/hu/packages/zsh/config/conf.d/nix.zsh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
# Nix specific zsh configuration
|
||||||
|
if [ -x "$(command -v nix)" ]; then
|
||||||
|
source "$NIX_SHELL_PLUGIN"
|
||||||
|
fi
|
||||||
|
|
|
@ -9,10 +9,21 @@ case "$distro" in
|
||||||
*) dicon="%F{yellow}[]%f" ;;
|
*) dicon="%F{yellow}[]%f" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
if [ -n "$IN_NIX_SHELL" ]; then
|
||||||
|
if [ -z "$NIX_SHELL_PACKAGES" ]; then
|
||||||
|
nix_shell_ps1="%F{red}nix-shell%f"
|
||||||
|
else
|
||||||
|
nix_shell_ps1="%F{red}{ $NIX_SHELL_PACKAGES }%f"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
nix_shell_ps1=""
|
||||||
|
fi
|
||||||
|
|
||||||
setopt prompt_subst
|
setopt prompt_subst
|
||||||
autoload -Uz vcs_info
|
autoload -Uz vcs_info
|
||||||
precmd () { vcs_info }
|
precmd () { vcs_info }
|
||||||
zstyle ':vcs_info:*' formats ' %F{yellow}(%b)%f '
|
zstyle ':vcs_info:*' formats ' %F{yellow}(%b)%f '
|
||||||
|
|
||||||
export PS1='$dicon %n@%m %F{green}%~%f$vcs_info_msg_0_> '
|
NL=$'\n'
|
||||||
|
export PS1='%F{green}%~%f$vcs_info_msg_0_$nix_shell_ps1$NL$dicon > '
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,10 @@ setopt SHARE_HISTORY
|
||||||
setopt HIST_IGNORE_SPACE
|
setopt HIST_IGNORE_SPACE
|
||||||
setopt HIST_SAVE_NO_DUPS
|
setopt HIST_SAVE_NO_DUPS
|
||||||
|
|
||||||
if [ -z "$AUTOSUGGEST_FILE" ]; then
|
if [ -z "$AUTOSUGGEST_PLUGIN" ]; then
|
||||||
import_file="/usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
import_file="/usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
||||||
else
|
else
|
||||||
import_file="$AUTOSUGGEST_FILE"
|
import_file="$AUTOSUGGEST_PLUGIN"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$import_file" ]; then
|
if [ ! -f "$import_file" ]; then
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
if [ -z "$SYNTAX_FILE" ]; then
|
if [ -z "$SYNTAX_PLUGIN" ]; then
|
||||||
import_file="/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
import_file="/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||||
else
|
else
|
||||||
import_file="$SYNTAX_FILE"
|
import_file="$SYNTAX_PLUGIN"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$import_file" ]; then
|
if [ ! -f "$import_file" ]; then
|
||||||
|
|
|
@ -3,12 +3,13 @@
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
fzf
|
fzf
|
||||||
|
thefuck
|
||||||
zsh-fzf-tab
|
zsh-fzf-tab
|
||||||
zsh-completions
|
zsh-completions
|
||||||
zsh-autosuggestions
|
zsh-autosuggestions
|
||||||
zsh-syntax-highlighting
|
zsh-syntax-highlighting
|
||||||
nix-zsh-completions
|
nix-zsh-completions
|
||||||
#thefuck
|
zsh-nix-shell
|
||||||
];
|
];
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
|
@ -23,19 +24,21 @@
|
||||||
home.file."${config.xdg.configHome}/zsh/.zshrc" = {
|
home.file."${config.xdg.configHome}/zsh/.zshrc" = {
|
||||||
text = ''
|
text = ''
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
SYNTAX_FILE="${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
|
||||||
|
SYNTAX_PLUGIN="${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||||
|
AUTOSUGGEST_PLUGIN="${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
||||||
|
NIX_SHELL_PLUGIN="${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh"
|
||||||
|
|
||||||
# On systems that are not on glibc 2.38, loading fzf-tab will fail. This prevents that.
|
# On systems that are not on glibc 2.38, loading fzf-tab will fail. This prevents that.
|
||||||
if [ -f "/lib/x86_64-linux-gnu/libc.so.6" ]; then
|
if [ -f "/lib/x86_64-linux-gnu/libc.so.6" ]; then
|
||||||
GLIBC_VERSION="$(/lib/x86_64-linux-gnu/libc.so.6 | head -n1 | sed -e 's/.* //g' | rev | cut -c2- | rev)"
|
GLIBC_VERSION="$(/lib/x86_64-linux-gnu/libc.so.6 | head -n1 | sed -e 's/.* //g' | rev | cut -c2- | rev)"
|
||||||
if [ "$GLIBC_VERSION" = "2.38" ]; then
|
if [ "$GLIBC_VERSION" = "2.38" ]; then
|
||||||
FZF_TAB_FILE="${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh"
|
FZF_TAB_PLUGIN="${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
FZF_TAB_FILE="${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh"
|
FZF_TAB_PLUGIN="${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AUTOSUGGEST_FILE="${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
|
||||||
'' + (builtins.readFile config/.zshrc);
|
'' + (builtins.readFile config/.zshrc);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue