summaryrefslogtreecommitdiff
path: root/zsh/.zsh/.zshrc
diff options
context:
space:
mode:
authorUrbain Vaes <urbain@vaes.uk>2018-01-10 17:31:15 +0100
committerUrbain Vaes <urbain@vaes.uk>2018-01-10 18:09:54 +0100
commit773025b77b770286652c8c2929d445b231855363 (patch)
treebad2b729654e0f216d5f52fab990c077a6c0e0be /zsh/.zsh/.zshrc
parentb63d5389cfca88ac1da44ebcff3139f420dd72f3 (diff)
Sort references by time
Diffstat (limited to 'zsh/.zsh/.zshrc')
-rw-r--r--zsh/.zsh/.zshrc111
1 files changed, 105 insertions, 6 deletions
diff --git a/zsh/.zsh/.zshrc b/zsh/.zsh/.zshrc
index a5fdea8..95d0bb0 100644
--- a/zsh/.zsh/.zshrc
+++ b/zsh/.zsh/.zshrc
@@ -1,9 +1,42 @@
-# source /home/urbain/.nix-profile/etc/profile.d/nix.sh
+## zgen {{{
-# Source configuration files
-source "$HOME/.zsh/plugins"
-source "$HOME/.zsh/functions"
-source "$HOME/.zsh/alias"
+[ ! -d ~/.zsh/zgen ] && git clone https://github.com/tarjoilija/zgen.git ~/.zsh/zgen
+source "$HOME/.zsh/zgen/zgen.zsh"
+
+# Load plugins
+if ! zgen saved; then
+
+ echo "Creating a zgen save"
+
+ # Load oh-my-zsh framework
+ zgen oh-my-zsh
+
+ # Oh-my-zsh plugins
+ zgen oh-my-zsh plugins/git
+ zgen oh-my-zsh plugins/vi-mode
+
+ # Navigation plugins
+ zgen load urbainvaes/fzf-marks
+
+ # Other plugins
+ zgen load rupa/z
+
+ # zsh-users plugins
+ zgen load zsh-users/zsh-completions src
+ zgen load zsh-users/zsh-syntax-highlighting
+ zgen load zsh-users/zsh-autosuggestions
+
+ # Save all to init script
+ zgen save
+fi
+
+# Autosuggestion
+{
+ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=6'
+ bindkey '^y' autosuggest-accept
+}
+
+# }}}
# Custom key bindings for built-in widgets
bindkey -a 'k' history-beginning-search-backward
@@ -13,11 +46,14 @@ bindkey '^N' history-beginning-search-forward
PROMPT='%0~ $ '
-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# Options
unsetopt histverify
+## fzf {{{
+
+[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
+
# Use fzf with z
unalias z 2> /dev/null
z() {
@@ -27,3 +63,66 @@ z() {
}
zle -N z
bindkey '^z' z
+
+# }}}
+## Colors {{{
+
+[[ -z ${ZSH_COLORS} ]] && ZSH_COLORS=${HOME}/.local/share/zsh/colors.zsh
+[[ -f ${ZSH_COLORS} ]] && source ${ZSH_COLORS}
+
+colorschemes=$(ls ${HOME}/.Xresources)
+
+function colo {
+
+ XRESOURCE=$1
+ XRESOURCE_FILE=${HOME}/.Xresources/${XRESOURCE}
+
+ # Change colors for current session
+ if [[ ! -z "$TMUX" ]]; then
+ printf '\x1bPtmux;'
+ esc='\x1b\x1b'
+ else
+ esc='\x1b'
+ fi
+
+ /usr/bin/cpp ${XRESOURCE_FILE} | tr -d ' \t' | sed -n \
+ -e "s/.*background:/${esc}]11;/p" \
+ -e "s/.*foreground:/${esc}]10;/p" \
+ -e "s/.*borderColor:/${esc}]708;/p" \
+ -e "s/.*color\\([0-9][^:]*\\):/${esc}]4;\\1;/p" | tr \\n \\a
+
+ # Change color for future sessions
+ xrdb ${XRESOURCE_FILE}
+}
+
+# Completion for colorschemes (-M -> Case insensitive)
+compctl -k "(${colorschemes})" -M 'm:{a-z}={A-Z}' colo
+
+# }}}
+## Aliases {{{
+
+# Commands
+alias cdd='cd ~/dotfiles'
+
+# Programs
+alias a='vifm . .'
+alias ff='FreeFem++'
+alias m='cd ~/.mutt/attachments && mutt && cd -'
+alias e='nvim'
+alias mux='tmuxinator'
+alias n='nvim'
+alias ns='nvim -S Session.vim'
+alias v='vim'
+alias vs="vim -S Session.vim"
+alias email="mbsync -a"
+
+# Git
+alias g='git'
+alias rd='cd $(git rev-parse --show-toplevel)'
+
+# GNU Make
+alias mi='make install'
+alias mc='make clean'
+alias mca='make clean-all'
+
+# }}}