aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zsh/.config/zsh/.zprofile37
-rw-r--r--zsh/.config/zsh/.zshrc22
-rw-r--r--zsh/.zshenv18
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