diff options
-rw-r--r-- | zsh/.config/zsh/.zprofile | 37 | ||||
-rw-r--r-- | zsh/.config/zsh/.zshrc | 22 | ||||
-rw-r--r-- | zsh/.zshenv | 18 |
3 files changed, 46 insertions, 31 deletions
diff --git a/zsh/.config/zsh/.zprofile b/zsh/.config/zsh/.zprofile new file mode 100644 index 0000000..3b82e4d --- /dev/null +++ b/zsh/.config/zsh/.zprofile @@ -0,0 +1,37 @@ +# Guix +_GUIX_PROFILE="$HOME/.config/guix/current" +export GUIX_PROFILE="$HOME/.guix-profile" + +# XDG variables +export XCURSOR_PATH="${XCURSOR_PATH:-/usr/local/share/icons:/usr/share/icons}" +export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}" +export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" +export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}" +export XDG_CONFIG_DIRS="${XDG_CONFIG_DIRS:-/etc/xdg}" +export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +export XDG_DATA_DIRS="$GUIX_PROFILE/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS" + +# User defaults +export EDITOR="nvim" +export PAGER="less" + + +# It can be assumed that this file will be sourced once but for some obscure +# reason tmux starts login shell so this file will be sourced again and again. +# Since I don't want to override default tmux behaviour and is's possible that +# other programs will start login shell its better to put some guard over +# recursive definitions and any other things that should be evaluated once. + +if [ -z ${SHELL_RECURSION_GUARD+x} ]; then + + export SHELL_RECURSION_GUARD=1 + +# GUIX + [ -f "$GUIX_PROFILE/etc/profile" ] && . "$GUIX_PROFILE/etc/profile" + export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH" + +# PATH + export PATH=$HOME/.cargo/bin/:$PATH + +fi diff --git a/zsh/.config/zsh/.zshrc b/zsh/.config/zsh/.zshrc index f121dae..fd47a93 100644 --- a/zsh/.config/zsh/.zshrc +++ b/zsh/.config/zsh/.zshrc @@ -84,20 +84,6 @@ zstyle ':vcs_info:*' check-for-staged-changes true zstyle ':vcs_info:*' stagedstr ' %B%F{green}+%f%b' zstyle ':vcs_info:*' unstagedstr ' %B%F{red}*%f%b' -# TODO: now this unstaged marker looks ugly -# zstyle ':vcs_info:git*+set-message:*' hooks git-untracked -# +vi-git-untracked() -# { -# if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \ -# git status --porcelain | grep -q '^?? ' 2> /dev/null ; then -# # This will show the marker if there are any untracked files in repo. -# # If instead you want to show the marker only if there are untracked -# # files in $PWD, use: -# #[[ -n $(git ls-files --others --exclude-standard) ]] ; then -# hook_com[staged]+='T' -# fi -# } - precmd() { vcs_info @@ -128,6 +114,14 @@ alias vf='nvim $(fzf --preview="bat --color=always {}")' alias ls="ls --color" alias la="ls -la" alias c='clear' +alias x='source $ZDOTDIR/.zshrc' +function fkill () { + (date; ps -ef) | + fzf --bind='ctrl-r:reload(date; ps -ef)' \ + --header=$'Press CTRL-R to reload\n\n' --header-lines=2 \ + --preview='echo {}' --preview-window=down,3,wrap \ + | awk '{print $2}' | sudo xargs kill -9 +} # Shell integrations source <(fzf --zsh) diff --git a/zsh/.zshenv b/zsh/.zshenv index a2d91da..b2783f6 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,18 +1,2 @@ -# GUIX -export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" -GUIX_PROFILE="$HOME/.config/guix/current" -. "$GUIX_PROFILE/etc/profile" -# XDG Paths -export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} -export XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} -export XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} - -# PATH -export PATH=$HOME/.cargo/bin/:$PATH - # ZSH config dir -export ZDOTDIR=$XDG_CONFIG_HOME/zsh - -# User environment variables -export EDITOR="nvim" -export PAGER="less" +export ZDOTDIR=$HOME/.config/zsh |