Major cleanup and restructuring
- remove custom module loader, use zplug for own plugins - move config parts from modules to files - move other module parts to separate zsh plugins
This commit is contained in:
		
							parent
							
								
									98a86e6b70
								
							
						
					
					
						commit
						d0598c2838
					
				
					 21 changed files with 38 additions and 774 deletions
				
			
		
							
								
								
									
										48
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										48
									
								
								README.md
									
										
									
									
									
								
							|  | @ -4,45 +4,9 @@ crater's zsh config | ||||||
| Installation: | Installation: | ||||||
| ------------- | ------------- | ||||||
| 
 | 
 | ||||||
| *system-wide config*: Put repository contents in `/etc/zsh`. | From the checked out repo: | ||||||
| 
 | ``` | ||||||
| *user config*: copy `env_template` to $HOME/.zshenv. Change value of `$ZDOTDIR` in | ln -s $PWD/zshenv $HOME/.zshenv | ||||||
| that file to the path, where the repository resides.   | ``` | ||||||
| Note that this file is read before any other config files, so if any variables | The zshenv file sets the location to the rest of the config (`$ZDOTDIR`) | ||||||
| you set in there have wrong values, they are probably overwritten in another | automatically, based on the link target. | ||||||
| file. |  | ||||||
| 
 |  | ||||||
| modules: |  | ||||||
| -------- |  | ||||||
| 
 |  | ||||||
| This zsh configuration is modular. A module consists of a folder in the modules/ |  | ||||||
| directory, containing a script file named `init` and an optional `depend` file. |  | ||||||
| More files may be included in the folder, they will be ignored by the module |  | ||||||
| loader. The name of the module is the name of its directory. |  | ||||||
| 
 |  | ||||||
| The `init` file is executed, when a module is loaded. When and if a module is |  | ||||||
| loaded is determined by its `depend` file and the environment variables |  | ||||||
| `$ZMODLOAD_ONLY` and `$ZMODLOAD_BLACKLIST`. |  | ||||||
| 
 |  | ||||||
| `$ZMODLOAD_BLACKLIST` is a list of modules, that will not be loaded. |  | ||||||
| 
 |  | ||||||
| `$ZMODLOAD_ONLY` works as a whitelist. If it is set, only modules in this list |  | ||||||
| and modules required by them will be loaded. |  | ||||||
| 
 |  | ||||||
| A `depend` file contains the requirements for loading a module. It should |  | ||||||
| contain lines of the form `<type> <module>`. There are 3 types for |  | ||||||
| dependencies: |  | ||||||
| 
 |  | ||||||
| - `depend <module>`: `<module>` will be loaded before the depending |  | ||||||
|   module (the module whose `depend` file contains this rule), regardless |  | ||||||
|   of `$ZMODLOAD_ONLY`. If the module is blacklisted, it and the depending |  | ||||||
|   module are not loaded. Note that already queued dependencies of the depending |  | ||||||
|   module will be loaded anyways. |  | ||||||
| 
 |  | ||||||
| - `after <module>`: `<module>` will be loaded before the depending |  | ||||||
|   module, if it would be loaded anyways. If it is either blacklisted or |  | ||||||
|   `$ZMODLOAD_ONLY` is non-empty but does not contain `<module>`, it is not |  | ||||||
|   loaded. This does not affect loading of the depending module. |  | ||||||
| 
 |  | ||||||
| - `block <module>`: abort loading of the depending module, if `<module>` |  | ||||||
|   is already loaded or contained in `$ZMODLOAD_ONLY`. |  | ||||||
|  |  | ||||||
|  | @ -1,8 +1,6 @@ | ||||||
| #!/bin/zsh | #!/bin/zsh | ||||||
| 
 | 
 | ||||||
| # Allow <esc>:q in vim mode to exit the shell | bindkey -v | ||||||
| exit(){builtin exit;} |  | ||||||
| zle -N q exit |  | ||||||
| 
 | 
 | ||||||
| typeset -A key | typeset -A key | ||||||
| 
 | 
 | ||||||
|  | @ -17,15 +15,6 @@ key[Right]=${terminfo[kcuf1]} | ||||||
| key[PageUp]=${terminfo[kpp]} | key[PageUp]=${terminfo[kpp]} | ||||||
| key[PageDown]=${terminfo[knp]} | key[PageDown]=${terminfo[knp]} | ||||||
| 
 | 
 | ||||||
| bindkey -M vicmd ! edit-command-line-tmux |  | ||||||
| 
 |  | ||||||
| #unicode input |  | ||||||
| autoload -U insert-unicode-char |  | ||||||
| zle -N insert-unicode-char |  | ||||||
| bindkey "^Vu"  insert-unicode-char |  | ||||||
| 
 |  | ||||||
| bindkey "\e."  insert-last-word |  | ||||||
| 
 |  | ||||||
| [[ -n "${key[Home]}"     ]]  && bindkey  "${key[Home]}"     beginning-of-line | [[ -n "${key[Home]}"     ]]  && bindkey  "${key[Home]}"     beginning-of-line | ||||||
| [[ -n "${key[End]}"      ]]  && bindkey  "${key[End]}"      end-of-line | [[ -n "${key[End]}"      ]]  && bindkey  "${key[End]}"      end-of-line | ||||||
| [[ -n "${key[Insert]}"   ]]  && bindkey  "${key[Insert]}"   yank | [[ -n "${key[Insert]}"   ]]  && bindkey  "${key[Insert]}"   yank | ||||||
|  | @ -42,12 +31,19 @@ bindkey " "     magic-space             # Do history expansion on space. | ||||||
| bindkey $'\177' backward-delete-char   # backspace | bindkey $'\177' backward-delete-char   # backspace | ||||||
| bindkey $'\10'  backward-delete-word   # C-backspace | bindkey $'\10'  backward-delete-word   # C-backspace | ||||||
| 
 | 
 | ||||||
|  | bindkey -M vicmd ! edit-command-line-tmux | ||||||
|  | 
 | ||||||
|  | #unicode input | ||||||
|  | autoload -U insert-unicode-char | ||||||
|  | zle -N insert-unicode-char | ||||||
|  | bindkey "^Vu"  insert-unicode-char | ||||||
|  | 
 | ||||||
|  | bindkey "\e."  insert-last-word | ||||||
|  | 
 | ||||||
| bindkey "\e[1;5D" vi-backward-blank-word | bindkey "\e[1;5D" vi-backward-blank-word | ||||||
| bindkey "\e[1;5C" vi-forward-blank-word | bindkey "\e[1;5C" vi-forward-blank-word | ||||||
| #bindkey . rationalise-dot |  | ||||||
| 
 | 
 | ||||||
| bindkey $'\20' push-line-or-edit | bindkey $'\20' push-line-or-edit | ||||||
| bindkey -s "^F" "fuck\n" |  | ||||||
| 
 | 
 | ||||||
| # Finally, make sure the terminal is in application mode, when zle is | # Finally, make sure the terminal is in application mode, when zle is | ||||||
| # active. Only then are the values from $terminfo valid. | # active. Only then are the values from $terminfo valid. | ||||||
|  | @ -60,9 +56,8 @@ local function zle-line-finish () { | ||||||
| zle -N zle-line-init | zle -N zle-line-init | ||||||
| zle -N zle-line-finish   | zle -N zle-line-finish   | ||||||
| 
 | 
 | ||||||
| insert_sudo () { zle beginning-of-line; zle -U "sudo " } | insert_sudo () { zle beginning-of-line; zle -U "sudo "; zle end-of-line } | ||||||
| zle -N insert-sudo insert_sudo | zle -N insert-sudo insert_sudo | ||||||
| 
 |  | ||||||
| bindkey "^[s" insert-sudo | bindkey "^[s" insert-sudo | ||||||
| 
 | 
 | ||||||
| local function accept-or-recall-and-infer-history() { | local function accept-or-recall-and-infer-history() { | ||||||
|  | @ -89,5 +84,3 @@ if exists incstring; then | ||||||
| 	zle -N  inc-last-command | 	zle -N  inc-last-command | ||||||
| 	bindkey "^A" inc-last-command | 	bindkey "^A" inc-last-command | ||||||
| fi | fi | ||||||
| 
 |  | ||||||
| bindkey "\eb" zle-bookmarks |  | ||||||
|  | @ -48,3 +48,4 @@ zstyle ':completion:*:processes-names' command  'ps c -u ${USER} -o command | un | ||||||
| compdef _command fork | compdef _command fork | ||||||
| compdef _command detach | compdef _command detach | ||||||
| compdef _command ontv | compdef _command ontv | ||||||
|  | compdef _notmuch nmfind=notmuch-search | ||||||
|  |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| need autoloader |  | ||||||
|  | @ -1,77 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| 
 |  | ||||||
| autoload -U colors && colors |  | ||||||
| 
 |  | ||||||
| . $MPATH/spectrum |  | ||||||
| reset="%{${reset_color}%}" |  | ||||||
| 
 |  | ||||||
| # |  | ||||||
| # 256-color-term or rxvt with wrong tput output |  | ||||||
| # |  | ||||||
| if [[ "`tput colors`" == "256" ]] || [[ "`tput colors`" == "88" ]] ; then |  | ||||||
| 	pathcolor="%{${FG[27]}%}" |  | ||||||
| 	ropathcolor="%{${FG[92]}%}" |  | ||||||
| 
 |  | ||||||
| 	gitdirty="%{${FX[bold]}${FG[160]}%}" |  | ||||||
| 	gitstaged="%{${FX[bold]}${FG[34]}%}" |  | ||||||
| 	gitclean="%{${FG[240]}%}" |  | ||||||
| 	stycolor="%{${FG[240]}%}" |  | ||||||
| 	exitcolor=$gitdirty |  | ||||||
| 	rpscolor="%{${FG[238]}%}" |  | ||||||
| 	gituntracked="%{$FX[bold]$FG[253]%}●%{$reset$rpscolor%}" |  | ||||||
| 
 |  | ||||||
| 	local usercolor_base |  | ||||||
| 	if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then |  | ||||||
| 		usercolor_base=196 |  | ||||||
| 		usercolor_mod=30 |  | ||||||
| 	else |  | ||||||
| 		usercolor_base=47 |  | ||||||
| 		usercolor_mod=28 |  | ||||||
| 
 |  | ||||||
| 	fi |  | ||||||
| 	if [ ! -z $SSH_CLIENT ] || [ ! -z $SSH_CONNECTION ]; then |  | ||||||
| 		usercolor_base=$((usercolor_base + usercolor_mod)) |  | ||||||
| 		hostcolor="%{${FG[226]}%}" |  | ||||||
| 	else |  | ||||||
| 		hostcolor=$gitclean |  | ||||||
| 	fi |  | ||||||
| 	usercolor="%{${FX[bold]}${FG[$usercolor_base]}%}" |  | ||||||
| 
 |  | ||||||
| 	for colorfile in /etc/DIR_COLORS.256 \ |  | ||||||
| 	                 /etc/DIR_COLORS.256color \ |  | ||||||
| 	                 /etc/colors/DIR_COLORS.256 \ |  | ||||||
| 					 /etc/colors/DIR_COLORS.256color; do |  | ||||||
| 		if [ -e $colorfile ] ; then |  | ||||||
| 			eval "$(dircolors $colorfile)" |  | ||||||
| 			break; |  | ||||||
| 		fi |  | ||||||
| 	done |  | ||||||
| else |  | ||||||
| 	pathcolor="%{$fg_bold[blue]}%}" |  | ||||||
| 
 |  | ||||||
| 	gitdirty="%{${fg[yellow]}%}" |  | ||||||
| 	gitstaged="%{${fg[green]}%}" |  | ||||||
| 	gitclean="%{${fg[white]}%}" |  | ||||||
| 	vcs_revision="%{${fg_bold[black]}%}" |  | ||||||
| 
 |  | ||||||
| 	exitcolor="$gitdirty" |  | ||||||
| 	rpscolor="%{$fg_bold[black]}%}" |  | ||||||
| 
 |  | ||||||
| 	if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then |  | ||||||
| 		if [ ! -z $SSH_CLIENT ]; then |  | ||||||
| 			usercolor="%{${fg_bold[yellow]}%}" |  | ||||||
| 			hostcolor="%{${fg_no_bold[blue]}%}" |  | ||||||
| 		else |  | ||||||
| 			usercolor="%{${fg_bold[red]}%}" |  | ||||||
| 			hostcolor="%{${fg_bold[black]}%}" |  | ||||||
| 		fi |  | ||||||
| 	else |  | ||||||
| 		if [ ! -z $SSH_CLIENT ]; then |  | ||||||
| 			usercolor="%{${fg_bold[blue]}%}" |  | ||||||
| 			hostcolor="%{${fg_no_bold[blue]}%}" |  | ||||||
| 		else |  | ||||||
| 			usercolor="%{${fg_bold[green]}%}" |  | ||||||
| 			hostcolor="%{${fg_bold[black]}%}" |  | ||||||
| 		fi |  | ||||||
| 	fi |  | ||||||
| fi |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| #! /bin/zsh |  | ||||||
| # A script to make using 256 colors in zsh less painful. |  | ||||||
| # P.C. Shyamshankar <sykora@lucentbeing.com> |  | ||||||
| 
 |  | ||||||
| typeset -Ag FX FG BG |  | ||||||
| 
 |  | ||||||
| FX=( |  | ||||||
|     reset     "[00m" |  | ||||||
|     bold      "[01m" no-bold      "[22m" |  | ||||||
|     italic    "[03m" no-italic    "[23m" |  | ||||||
|     underline "[04m" no-underline "[24m" |  | ||||||
|     blink     "[05m" no-blink     "[25m" |  | ||||||
|     reverse   "[07m" no-reverse   "[27m" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| for color in {0..255}; do |  | ||||||
|     FG[$color]="[38;5;${color}m" |  | ||||||
|     BG[$color]="[48;5;${color}m" |  | ||||||
| done |  | ||||||
|  | @ -1,43 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| 
 |  | ||||||
| typeset -Ax conf_locations |  | ||||||
| 
 |  | ||||||
| conf() { |  | ||||||
| 	if [[ $1 == -r ]]; then |  | ||||||
| 		local confconf=$(zdotfile confs) |  | ||||||
| 		if [[ -e $confconf ]]; then |  | ||||||
| 			conf_locations[conf]=$confconf |  | ||||||
| 			conf_locations+=( $(<$confconf) ) |  | ||||||
| 		fi |  | ||||||
| 		return |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	if [[ -z $1 ]]; then |  | ||||||
| 		echo "Available configs:" |  | ||||||
| 		for k v in ${(kv)conf_locations}; do |  | ||||||
| 			printf "%-20s %s\n" ${k}: ${(e)v} |  | ||||||
| 		done |  | ||||||
| 		return 1 |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	local target=${(e)conf_locations[${1}]} |  | ||||||
| 	if [[ -d ${target} ]]; then |  | ||||||
| 		cd ${target} |  | ||||||
| 		if ! [[ -w ${target} ]]; then |  | ||||||
| 			su |  | ||||||
| 		fi |  | ||||||
| 	elif [[ -f ${target} ]]; then |  | ||||||
| 		if ! [[ -w ${target} ]]; then |  | ||||||
| 			sudoedit ${target} |  | ||||||
| 		else |  | ||||||
| 			$EDITOR ${target} |  | ||||||
| 		fi |  | ||||||
| 	elif [[ -n ${target} ]]; then |  | ||||||
| 		echo "Conf target for $1 missing: $target" |  | ||||||
| 	else |  | ||||||
| 		echo "Unknown conf target: $1" |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| conf -r |  | ||||||
|  | @ -1,6 +0,0 @@ | ||||||
| if exists fast; then |  | ||||||
| 	eval "$(fasd --init auto)" |  | ||||||
| 	bindkey '^X^A' fasd-complete    # C-x C-a to do fasd-complete (fils and directories) |  | ||||||
| 	bindkey '^X^F' fasd-complete-f  # C-x C-f to do fasd-complete-f (only files) |  | ||||||
| 	bindkey '^X^D' fasd-complete-d  # C-x C-d to do fasd-complete-d (only directories) |  | ||||||
| fi |  | ||||||
|  | @ -1,15 +0,0 @@ | ||||||
| 
 |  | ||||||
| istrue() { |  | ||||||
| 	case "$1" in |  | ||||||
| 		yes|yeah|on|true|1|y) |  | ||||||
| 			return 0;; |  | ||||||
| 	esac |  | ||||||
| 	return 1; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| in_array() { |  | ||||||
| 	local needle=$1 |  | ||||||
| 	shift |  | ||||||
| 	arr=( "${@}" ) |  | ||||||
| 	(( $arr[(i)$needle] != ${#arr} + 1 )) |  | ||||||
| } |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Subproject commit 76ea9e1df3166209d5f937f57a0833f26b1a01bd |  | ||||||
|  | @ -1,221 +0,0 @@ | ||||||
| ################################################################################# |  | ||||||
| # ZSH modular config |  | ||||||
| ################################################################################# |  | ||||||
| # |  | ||||||
| # Helps you split up your config into modules and reuse modules from other |  | ||||||
| # people. |  | ||||||
| # |  | ||||||
| # Modules are stored in the "modules" folder in your configuration directory |  | ||||||
| # (default: /etc/zsh, if you want to use this in a user configuration file, set |  | ||||||
| # the variable $ZDOTDIR to your zsh configuration directory in ~/.zshenv) |  | ||||||
| # |  | ||||||
| # Each module should have a file called "init". This file is sourced, when the |  | ||||||
| # module is loaded and is responsible for sourcing any other files needed by the |  | ||||||
| # module.  |  | ||||||
| # |  | ||||||
| # The module can use $MPATH variable, which contains the module's directory. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ################################# |  | ||||||
| # INTERNAL MODULE LOADING STUFF # |  | ||||||
| ################################# |  | ||||||
| 
 |  | ||||||
| # Path to module directory |  | ||||||
| if [[ -z $ZMODPATH ]]; then |  | ||||||
| 	ZMODPATH=( ${ZDOTDIR:+$ZDOTDIR/modules} ) |  | ||||||
| 	[[ -d /etc/zsh/modules ]] && ZMODPATH+=/etc/zsh/modules |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| local mod_path() { |  | ||||||
| 	for dir in $ZMODPATH; do |  | ||||||
| 		if [[ -e $dir/$1 ]]; then |  | ||||||
| 			echo "$dir/$1" |  | ||||||
| 			return 0 |  | ||||||
| 		fi |  | ||||||
| 	done |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| . $(mod_path helpers.zsh) |  | ||||||
| errdetails="" |  | ||||||
| 
 |  | ||||||
| modqueue=( ) |  | ||||||
| 
 |  | ||||||
| # Adds a module to the loading queue |  | ||||||
| # |  | ||||||
| # This function adds a module for later loading, if it is not already queued. |  | ||||||
| # It calls mod_deps for dependency checking. If dependencies are not satisfied, |  | ||||||
| # the module is not loaded. |  | ||||||
| # |  | ||||||
| # Parameters: |  | ||||||
| # 1: module name |  | ||||||
| # 2: if loaded as a dependency: is_dep |  | ||||||
| #    otherwise empty |  | ||||||
| # 3: if loaded as a dependency: the depending module |  | ||||||
| # |  | ||||||
| mod_queue() { |  | ||||||
| 	local module="$1" |  | ||||||
| 	local modsource=$(mod_path $module) |  | ||||||
| 
 |  | ||||||
| 	if ! mod_exists "$module" ; then |  | ||||||
| 		if [[ "$2" == "is_dep" ]]; then |  | ||||||
| 			echo "$3: Unsatisfied dependency \"$module\""; |  | ||||||
| 			return 1 |  | ||||||
| 		else |  | ||||||
| 			return 2 |  | ||||||
| 		fi |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	in_array "$module" "${(@)modqueue}" && return 0 |  | ||||||
| 
 |  | ||||||
| 	if mod_deps "$modsource"; then |  | ||||||
| 		modqueue=( "${(@)modqueue}" "$module" ) |  | ||||||
| 	else |  | ||||||
| 		case $? in |  | ||||||
| 			1) echo "module $module not loaded because of missing dependencies: $errdetails";; |  | ||||||
| 			2) echo "module $module not loaded because of blocking module: $errdetails";; |  | ||||||
| 		esac |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| mod_exists() { |  | ||||||
| 	mod_path "$1" &> /dev/null |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Checks for module dependencies |  | ||||||
| # |  | ||||||
| # Reads the "depend" file for a module and tries to queue all dependencies for |  | ||||||
| # loading. If any fails, it returns 1; |  | ||||||
| # |  | ||||||
| # Parameters: |  | ||||||
| # 1: Path to module |  | ||||||
| # |  | ||||||
| mod_deps() { |  | ||||||
| 	modpath=$1 |  | ||||||
| 	! [ -e $modpath/depend ] && return 0; |  | ||||||
| 
 |  | ||||||
| 	while read relation dep; do |  | ||||||
| 		mod_check_dep $modpath $relation $dep |  | ||||||
| 		[ $? -gt 0 ] && return $?; |  | ||||||
| 	done < "$modpath/depend" |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| mod_check_dep() { |  | ||||||
| 	modpath=$1 |  | ||||||
| 	relation=$2 |  | ||||||
| 	dep=$3 |  | ||||||
| 	 |  | ||||||
| 	#legacy entry compatibility |  | ||||||
| 	if [ -z "$dep" ]; then |  | ||||||
| 		dep="$relation" |  | ||||||
| 		relation="need" |  | ||||||
| 	fi |  | ||||||
| 	 |  | ||||||
| 	if in_array "$dep" "${(@)modqueue}" && [[ "$relation" != "block" ]]; then |  | ||||||
| 		return 0; |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	case "$relation"; in |  | ||||||
| 		"need") |  | ||||||
| 			if ! mod_queue "$dep" is_dep ${modpath}; then |  | ||||||
| 				errdetails="$dep" |  | ||||||
| 				return 1; |  | ||||||
| 			fi |  | ||||||
| 			;; |  | ||||||
| 		"after") |  | ||||||
| 			if ([ -z "$ZMODLOAD_ONLY" ] \ |  | ||||||
| 				|| in_array "$dep" "${(@)ZMODLOAD_ONLY}") \ |  | ||||||
| 			&& ! in_array "$dep" "${(@)ZMODLOAD_BLACKLIST}"; then |  | ||||||
| 					mod_queue "$dep" |  | ||||||
| 			fi ;; |  | ||||||
| 		"block") |  | ||||||
| 			if in_array "$dep" "${(@)ZMODLOAD_ONLY}" \ |  | ||||||
| 				|| in_array "$dep" "${(@)modqueue}"; then |  | ||||||
| 				errdetails="$dep" |  | ||||||
| 				return 2 |  | ||||||
| 			fi;; |  | ||||||
| 	esac |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Loads all queued modules |  | ||||||
| # |  | ||||||
| # After queueing all modules and dependency modules, this function calls their |  | ||||||
| # init-scripts, if existent (if not, the module is ignored for now) |  | ||||||
| # |  | ||||||
| mod_load() { |  | ||||||
| 	local MPATH |  | ||||||
| 	for module in "${(@)modqueue}"; do |  | ||||||
| 		MPATH=$(mod_path $module) |  | ||||||
| 		[ -e "$(mod_path $module)/init" ] && . "$(mod_path $module)/init"  |  | ||||||
| 	done |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Begins module loading procedure |  | ||||||
| # |  | ||||||
| # Queues all modules in the module directory or, if set, only modules listed in  |  | ||||||
| # $ZMODLOAD_ONLY |  | ||||||
| 
 |  | ||||||
| mod_init() { |  | ||||||
| 
 |  | ||||||
| 	if [ -n "$ZMODLOAD_ONLY" ]; then |  | ||||||
| 		for module in "${(@)ZMODLOAD_ONLY}"; do |  | ||||||
| 			[ -d "$(mod_path $module)" ] && mod_queue "$module" |  | ||||||
| 		done |  | ||||||
| 	else |  | ||||||
| 		for moddir in $ZMODPATH; do |  | ||||||
| 			for module in $moddir/*(/N); do |  | ||||||
| 				if [ -z "$ZMODLOAD_BLACKLIST" ] \ |  | ||||||
| 					|| ! in_array ${module:t} ${(@)ZMODLOAD_BLACKLIST}; then |  | ||||||
| 					mod_queue "${module:t}" |  | ||||||
| 				fi |  | ||||||
| 			done |  | ||||||
| 		done |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	mod_load |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # return 0 if all given modules were loaded (i.e. in the load queue) |  | ||||||
| mod_loaded() { |  | ||||||
| 	for i in "$@"; do |  | ||||||
| 		in_array $i ${(@)modqueue} || return 1 |  | ||||||
| 	done |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ################################################################################# |  | ||||||
| # Utility functions for modules |  | ||||||
| ################################################################################# |  | ||||||
| 
 |  | ||||||
| # |  | ||||||
| # Register hook functions |  | ||||||
| # see 'SPECIAL FUNCTIONS' section in zshmisc(1) for more information |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| precmd_hook() { |  | ||||||
| 	[[ -z $precmd_functions ]] && precmd_functions=() |  | ||||||
| 	precmd_functions=($precmd_functions $*) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| chpwd_hook() { |  | ||||||
| 	[[ -z $chpwd_functions ]] && chpwd_functions=() |  | ||||||
| 	chpwd_functions=($chpwd_functions $*) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| preexec_hook() { |  | ||||||
| 	[[ -z $preexec_functions ]] && preexec_functions=() |  | ||||||
| 	preexec_functions=($preexec_functions $*) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| zshaddhistory_hook() { |  | ||||||
| 	[[ -z $zshaddhistory_functions ]] && zshaddhistory_functions=() |  | ||||||
| 	zshaddhistory_functions=($zshaddhistory_functions $*) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| zshexit_hook() { |  | ||||||
| 	[[ -z $zshexit_functions ]] && zshexit_functions=() |  | ||||||
| 	zshexit_functions=($zshexit_functions $*) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -1,10 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| 
 |  | ||||||
| load_localrc() { |  | ||||||
| 	local dir=${1:-$PWD} |  | ||||||
| 	if [[ -f $dir/.lzshrc ]]; then source $dir/.lzshrc |  | ||||||
| 	elif [[ "$dir" != "/" ]]; then load_localrc ${dir:h} |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| chpwd_hook load_localrc |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| need color |  | ||||||
| after vcs |  | ||||||
| after todo |  | ||||||
| after work |  | ||||||
|  | @ -1,151 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| 
 |  | ||||||
| autoload -U colors && colors |  | ||||||
| autoload -U promptinit |  | ||||||
| 
 |  | ||||||
| PROMPT_UNICODE=${PROMPT_UNICODE:-yes} |  | ||||||
| setopt prompt_subst |  | ||||||
| 
 |  | ||||||
| PVPREFIX="╼╢" |  | ||||||
| PVSUFFIX="╟╾" |  | ||||||
| PR_HBAR='─' |  | ||||||
| PR_VBAR='│' |  | ||||||
| CORNER_LU='╭' |  | ||||||
| CORNER_LD='╰' |  | ||||||
| CORNER_RU='╮' |  | ||||||
| CORNER_RD='╯' |  | ||||||
| ARR_LEFT='◀' |  | ||||||
| 
 |  | ||||||
| if [[ "$PROMPT_UNICODE" != "yes" ]]; then |  | ||||||
| 	PVPREFIX="[" |  | ||||||
| 	PVSUFFIX="]" |  | ||||||
| 	PR_HBAR='-' |  | ||||||
| 	PR_VBAR='|' |  | ||||||
| 	CORNER_LU=',' |  | ||||||
| 	CORNER_LD="'" |  | ||||||
| 	CORNER_RU=',' |  | ||||||
| 	CORNER_RD="'" |  | ||||||
| 	ARR_LEFT='<' |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # Show screen STY and tmux number |  | ||||||
| sty () { |  | ||||||
| 	local sty=$? |  | ||||||
| 	echo -n "${SIG_PROMPT_PREFIX}" |  | ||||||
| 	echo -n "${STY:+"SCREEN:"}${(S)STY/#*./}${STY+" - "}" |  | ||||||
| 	echo -n "${TMUX:+"TMUX:"}${TMUX/*,/}${TMUX+" - "}" |  | ||||||
| 	echo -n "%y${SIG_PROMPT_SUFFIX}" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # show number of attached and detached screens |  | ||||||
| screennum() { |  | ||||||
| 	local att |  | ||||||
| 	local det |  | ||||||
| 	local dead |  | ||||||
| 	if [ -x /usr/bin/screen ]; then |  | ||||||
| 		att=`screen -ls | grep -c Attached` |  | ||||||
| 		det=`screen -ls | grep -c Detached` |  | ||||||
| 		dead=`screen -ls | grep -c Dead ` |  | ||||||
| 		echo "A:$att|D:$det|?:$dead" |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function prompt_precmd { |  | ||||||
| 	if mod_loaded vcs; then |  | ||||||
| 		vcs_info |  | ||||||
| 	fi |  | ||||||
| 	setprompt |  | ||||||
| 	RPS1='$usercolor${ARR_LEFT}%(?::$exitcolor${PVPREFIX})$(exitstatus)%(?::${PVSUFFIX})${stycolor}${PVPREFIX}$(sty)${rpscolor}${PVSUFFIX}${CORNER_RD}$reset' |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| precmd_hook prompt_precmd |  | ||||||
| 
 |  | ||||||
| # Executed after a command has been read and is to be executed. |  | ||||||
| function prompt_preexec { |  | ||||||
| 	# if running gnu screen, set the window name to the last run command |  | ||||||
| 	# FIXME any way to make this not change certain window titles (by window |  | ||||||
| 	# number or if a title isn't already set?) |  | ||||||
| 	if [[ -n "$TMUX" ]] \ |  | ||||||
| 	&& ! tmux show -w | grep -q "automatic-rename off"; then |  | ||||||
| 		local CMD=${1[(wr)^(*=*|ssh|sudo|-*)]} |  | ||||||
| 		echo -ne "\ek$CMD\e\\" |  | ||||||
| 	fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| if mod_loaded todo; then |  | ||||||
| 	function todo_to_read_info() { |  | ||||||
| 		count=$(todo_count all ${TO_READ_FILE:-$HOME/.to_read}) |  | ||||||
| 		if [ "$count" -gt 1 ]; then |  | ||||||
| 			echo -n "${PVPREFIX}${pathcolor}To read: $((count -1)) ${rpscolor}${PVSUFFIX}" |  | ||||||
| 		elif [ "$count" -lt 0 ]; then |  | ||||||
| 			echo -n "${PVPREFIX}${pathcolor}no todo${rpscolor}${PVSUFFIX}" |  | ||||||
| 		fi |  | ||||||
| 	} |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| preexec_hook prompt_preexec |  | ||||||
| 
 |  | ||||||
| function setprompt() { |  | ||||||
| 	local -a lines infoline middleline |  | ||||||
| 	local x i filler i_width |  | ||||||
| 
 |  | ||||||
| 	infoline+=( "${rpscolor}${CORNER_LU}" ) |  | ||||||
| 
 |  | ||||||
| 	### First, assemble the top line |  | ||||||
| 	# Current dir |  | ||||||
| 	[[ -w $PWD ]] && infoline+=( ${pathcolor} ) || infoline+=( ${ropathcolor} ) |  | ||||||
| 	infoline+=( "${PVPREFIX} %(5~|%-1~/.../|)%3~ ${PVSUFFIX}${rpscolor}${PR_HBAR}" ) |  | ||||||
| 
 |  | ||||||
| 	if [[ -n "$VIRTUAL_ENV" ]] then |  | ||||||
| 		local venvname=${VIRTUAL_ENV:t} |  | ||||||
| 		if [[ $venvname == "venv" ]]; then |  | ||||||
| 			venvname=${VIRTUAL_ENV:h:t}/${VIRTUAL_ENV:t} |  | ||||||
| 		fi |  | ||||||
| 		infoline+=( "${usercolor}${PVPREFIX}venv: ${venvname}${PVSUFFIX}${rpscolor}" ) |  | ||||||
| 	fi |  | ||||||
| 	[[ -n "$CONDA_DEFAULT_ENV" ]] && infoline+=( "${usercolor}${PVPREFIX}conda: ${CONDA_DEFAULT_ENV}${PVSUFFIX}${rpscolor}" ) |  | ||||||
| 
 |  | ||||||
| 	# Username & host |  | ||||||
| 	infoline+=( "%(1j.${PVPREFIX} ${gitdirty}Jobs: %j${rpscolor} ${PVSUFFIX}.)" ) |  | ||||||
| 	infoline+=( "${PVPREFIX} ${usercolor}%n${reset}@${hostcolor}%m${rpscolor} ${PVSUFFIX}" ) |  | ||||||
| 
 |  | ||||||
| 	i_width=${(S)infoline//\%\{*\%\}} # search-and-replace color escapes |  | ||||||
| 	i_width=${(%)i_width} # expand all escapes and count the chars |  | ||||||
| 	i_width=${#i_width} # expand all escapes and count the chars |  | ||||||
| 	((i_width += 2)) # workaround off by one, unknown reason |  | ||||||
| 
 |  | ||||||
| 	if [[ "$PROMPT_UNICODE" = "yes" ]]; then |  | ||||||
| 		filler="${rpscolor}${(l:$(( $COLUMNS - $i_width + 2))::─:)}" |  | ||||||
| 	else |  | ||||||
| 		filler="${rpscolor}${(l:$(( $COLUMNS - $i_width + 2))::-:)}" |  | ||||||
| 	fi |  | ||||||
| 	infoline[3]=( "${infoline[3]}${PR_HBAR}${filler}${PR_HBAR}" ) |  | ||||||
| 	infoline+=( "${rpscolor}${CORNER_RU}" ) |  | ||||||
| 
 |  | ||||||
| 	#middle info line |  | ||||||
| 
 |  | ||||||
| 	middleline+=( "${rpscolor}${PR_VBAR} ") |  | ||||||
| 
 |  | ||||||
| 	if mod_loaded vcs && [[ -n ${vcs_info_msg_0_} ]]; then |  | ||||||
| 		middleline+=( "$(vcs_char) ${vcs_info_msg_0_}${reset}" ) |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	if mod_loaded project && [[ -n $ZPROJECT ]]; then |  | ||||||
| 		middleline+=( "${pathcolor}❰${ZPROJECT[name]}❱${reset}" ) |  | ||||||
| 	fi |  | ||||||
| 
 |  | ||||||
| 	i_width=${(S)middleline//\%\{*\%\}} # search-and-replace color escapes |  | ||||||
| 	i_width=${#${(%)i_width}} # expand all escapes and count the chars |  | ||||||
| 	filler="${rpscolor}${(l:$(( $COLUMNS - $i_width - 2)):: :)}${reset}" |  | ||||||
| 
 |  | ||||||
| 	### Now, assemble all prompt lines |  | ||||||
| 	lines+=( ${(j::)infoline} ) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 	[[ $#middleline > 1 ]] && lines+=( "${middleline}${filler}${rpscolor}${PR_VBAR}" ) |  | ||||||
| 	lines+=( "${CORNER_LD}${PVPREFIX} %(1j.${rpscolor}%j${reset} .)${usercolor}%#${reset} " ) |  | ||||||
| 
 |  | ||||||
| 	### Finally, set the prompt |  | ||||||
| 	PROMPT=${(F)lines} |  | ||||||
| } |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| if command -v todo >/dev/null; then |  | ||||||
| 	todo_count() { |  | ||||||
| 		if [ -n "$2" ]; then |  | ||||||
| 			file="--database $2" |  | ||||||
| 		else |  | ||||||
| 			file="-G" |  | ||||||
| 		fi |  | ||||||
| 		todo ${=file} -f +${1:-high} | wc -l |  | ||||||
| 	} |  | ||||||
| 	chpwd_hook todo |  | ||||||
| else |  | ||||||
| 	todo_count() { |  | ||||||
| 		echo -1 |  | ||||||
| 	} |  | ||||||
| fi |  | ||||||
							
								
								
									
										131
									
								
								modules/vcs/init
									
										
									
									
									
								
							
							
						
						
									
										131
									
								
								modules/vcs/init
									
										
									
									
									
								
							|  | @ -1,131 +0,0 @@ | ||||||
| #!/bin/zsh |  | ||||||
| # vcs-info config |  | ||||||
| # |  | ||||||
| # Partly based on Seth House's zsh promp |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| autoload -Uz vcs_info |  | ||||||
| 
 |  | ||||||
| # Set up VCS_INFO |  | ||||||
| zstyle ':vcs_info:*' enable git hg svn |  | ||||||
| zstyle ':vcs_info:(hg*|git*):*' get-revision true |  | ||||||
| zstyle ':vcs_info:(hg*|git*):*' check-for-changes true |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:hg*' formats "(%s)[%i%u %b %m]" # rev+changes branch misc |  | ||||||
| zstyle ':vcs_info:hg*' actionformats "(%s|${white}%a${rpscolor})[%i%u %b %m]" |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:hg*:netbeans' use-simple true |  | ||||||
| zstyle ':vcs_info:hg*:*' get-bookmarks true |  | ||||||
| zstyle ':vcs_info:hg*:*' get-mq true |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:hg*:*' get-unapplied true |  | ||||||
| zstyle ':vcs_info:hg*:*' patch-format "mq(%g):%n/%c %p" |  | ||||||
| zstyle ':vcs_info:hg*:*' nopatch-format "mq(%g):%n/%c %p" |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:hg*:*' hgrevformat "%r" # only show local rev. |  | ||||||
| zstyle ':vcs_info:hg*:*' branchformat "%b" # only show branch |  | ||||||
| zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b$vcs_revision:%f%r%f" |  | ||||||
| 
 |  | ||||||
| if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] { |  | ||||||
| 	zstyle ':vcs_info:git*' formats "(%s) %12.12i %c%u %b%m" # hash changes branch misc |  | ||||||
| 	zstyle ':vcs_info:git*' actionformats "(%s|${white}%a${rpscolor}) %12.12i %c%u %b%m" |  | ||||||
| } else { |  | ||||||
| 	zstyle ':vcs_info:git*' formats "(%s) %12.12i %c%u${gituntracked} %b%m" # hash changes branch misc |  | ||||||
| 	zstyle ':vcs_info:git*' actionformats "(%s|${white}%a${rpscolor}) %12.12i %c%u %b%m" |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:*' stagedstr "$gitstaged●$rpscolor" |  | ||||||
| zstyle ':vcs_info:*' unstagedstr "$gitdirty●$rpscolor" |  | ||||||
| 
 |  | ||||||
| # zstyle ':vcs_info:hg:*:-all-' command fakehg |  | ||||||
| # zstyle ':vcs_info:*+*:*' debug true |  | ||||||
| 
 |  | ||||||
| zstyle ':vcs_info:hg*+set-hgrev-format:*' hooks hg-hashfallback |  | ||||||
| zstyle ':vcs_info:hg*+set-message:*' hooks mq-vcs |  | ||||||
| zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash |  | ||||||
| zstyle ':vcs_info:*+pre-get-data:*' hooks vcs-detect |  | ||||||
| 
 |  | ||||||
| disable_pattern=() |  | ||||||
| for i in $MPATH/filter/*(N); do |  | ||||||
| 	filter="$(readlink -f $i)(|/*)" |  | ||||||
| 	disable_pattern=("${disable_pattern[@]}" "$filter"); |  | ||||||
| done |  | ||||||
| zstyle ':vcs_info:*' disable-patterns "${disable_pattern[@]}" |  | ||||||
| 
 |  | ||||||
| +vi-vcs-detect() { |  | ||||||
| 	export VCS_DETECTED=$vcs |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| vcs_char() { |  | ||||||
| 	case $VCS_DETECTED in  |  | ||||||
| 		git) echo '±';; |  | ||||||
| 		hg)  echo '☿';; |  | ||||||
| 		svn) echo '☣';; |  | ||||||
| 		*)   echo '#';; |  | ||||||
| 	esac |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| exitstatus () { |  | ||||||
|   local exitstatus=$? |  | ||||||
| 
 |  | ||||||
|   if [ $exitstatus -ne 0 ] ; then |  | ||||||
|     if [ $exitstatus -gt 128 -a $exitstatus -lt 163 ] ; then |  | ||||||
|       echo "${SIG_PROMPT_PREFIX}SIG$signals[$exitstatus-127]${SIG_PROMPT_SUFFIX}" |  | ||||||
|     else |  | ||||||
|       echo "${SIG_PROMPT_PREFIX}${exitstatus}${SIG_PROMPT_SUFFIX}" |  | ||||||
|     fi |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ### Dynamically set hgrevformat based on if the local rev is available |  | ||||||
| # We don't always know the local revision, e.g. if use-simple is set |  | ||||||
| # Truncate long hash to 12-chars but also allow for multiple parents |  | ||||||
| function +vi-hg-hashfallback() { |  | ||||||
|     if [[ -z ${hook_com[localrev]} ]] ; then |  | ||||||
|         local -a parents |  | ||||||
| 
 |  | ||||||
|         parents=( ${(s:+:)hook_com[hash]} ) |  | ||||||
|         parents=( ${(@r:12:)parents} ) |  | ||||||
|         hook_com[rev-replace]="${(j:+:)parents}" |  | ||||||
| 
 |  | ||||||
|         ret=1 |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Show remote ref name and number of commits ahead-of or behind |  | ||||||
| function +vi-git-st() { |  | ||||||
|     local ahead behind remote |  | ||||||
|     local -a gitstatus |  | ||||||
| 
 |  | ||||||
|     # Are we on a remote-tracking branch? |  | ||||||
|     remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \ |  | ||||||
|         --symbolic-full-name --abbrev-ref 2>/dev/null)} |  | ||||||
| 
 |  | ||||||
|     if [[ -n ${remote} ]] ; then |  | ||||||
|         # for git prior to 1.7 |  | ||||||
|         # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l) |  | ||||||
|         ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) |  | ||||||
| 		(( $ahead )) && gitstatus+=( "${gitstaged}+${ahead}${rpscolor}" ) |  | ||||||
| 
 |  | ||||||
|         # for git prior to 1.7 |  | ||||||
|         # behind=$(git rev-list HEAD..origin/${hook_com[branch]} | wc -l) |  | ||||||
|         behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) |  | ||||||
|         (( $behind )) && gitstatus+=( "${gitdirty}-${behind}${rpscolor}" ) |  | ||||||
| 
 |  | ||||||
|         hook_com[branch]="${hook_com[branch]} [ ${remote}${gitstatus:+ }${gitstatus} ]" |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # Show count of stashed changes |  | ||||||
| function +vi-git-stash() { |  | ||||||
|     local -a stashes |  | ||||||
| 
 |  | ||||||
|     if [[ -s ${hook_com[base]}/.git/refs/stash ]] ; then |  | ||||||
|         stashes=$(git stash list 2>/dev/null | wc -l) |  | ||||||
|         hook_com[misc]+=" (${stashes} stashed)" |  | ||||||
|     fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -1,5 +1,3 @@ | ||||||
| . /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |  | ||||||
| 
 |  | ||||||
| ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) | ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) | ||||||
| 
 | 
 | ||||||
| if [[ "`tput colors`" == "256" ]] || [[ "`tput colors`" == "88" ]] ; then | if [[ "`tput colors`" == "256" ]] || [[ "`tput colors`" == "88" ]] ; then | ||||||
							
								
								
									
										10
									
								
								zplug.zsh
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								zplug.zsh
									
										
									
									
									
								
							|  | @ -1,7 +1,13 @@ | ||||||
| source $(zdotfile zplug/init.zsh) | source $(zdotfile zplug/init.zsh) | ||||||
| 
 | 
 | ||||||
| zplug "MichaelAquilina/zsh-you-should-use" | zplug "MichaelAquilina/zsh-you-should-use" | ||||||
|  | zplug 'jreese/zsh-titles' | ||||||
|  | 
 | ||||||
| zplug 'crater2150-zsh/fzf-widgets' | zplug 'crater2150-zsh/fzf-widgets' | ||||||
|  | zplug 'crater2150-zsh/conf' | ||||||
|  | zplug 'crater2150-zsh/chroma-z', as:theme | ||||||
|  | 
 | ||||||
|  | zplug $ZDOTDIR/plugins/autoloader, from:local | ||||||
| 
 | 
 | ||||||
| zplug 'molovo/revolver', \ | zplug 'molovo/revolver', \ | ||||||
|   as:command, \ |   as:command, \ | ||||||
|  | @ -11,8 +17,10 @@ zplug 'zunit-zsh/zunit', \ | ||||||
|   use:zunit, \ |   use:zunit, \ | ||||||
|   hook-build:'./build.zsh' |   hook-build:'./build.zsh' | ||||||
| 
 | 
 | ||||||
| zplug load | zplug "zsh-users/zsh-syntax-highlighting", defer:2 | ||||||
|  | zplug $ZDOTDIR/plugins/highlight-config, from:local, defer:3 | ||||||
| 
 | 
 | ||||||
|  | zplug load | ||||||
| 
 | 
 | ||||||
| if zplug check 'crater2150-zsh/fzf-widgets'; then | if zplug check 'crater2150-zsh/fzf-widgets'; then | ||||||
|   # Map widgets to key |   # Map widgets to key | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								zshenv
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								zshenv
									
										
									
									
									
								
							|  | @ -1,4 +1,4 @@ | ||||||
| export ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/zsh | export ZDOTDIR="${$(readlink $HOME/.zshenv):h:a}" | ||||||
| 
 | 
 | ||||||
| for i in $ZDOTDIR/env/*.zsh; do | for i in $ZDOTDIR/env/*.zsh; do | ||||||
| 	. $i | 	. $i | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								zshrc
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								zshrc
									
										
									
									
									
								
							|  | @ -31,30 +31,25 @@ try-source() { | ||||||
| 	fi | 	fi | ||||||
|     done |     done | ||||||
| } | } | ||||||
|  | exists() { command -v "$@" >/dev/null } | ||||||
| 
 | 
 | ||||||
| local dirfile=$(zdotfile dirs) | local dirfile=$(zdotfile dirs) | ||||||
| try-source $dirfile | try-source $dirfile | ||||||
| 
 | 
 | ||||||
| . $(zdotfile completion.zsh) | . $(zdotfile completion.zsh) | ||||||
|  | 
 | ||||||
| source $(zdotfile zplug.zsh) | source $(zdotfile zplug.zsh) | ||||||
| 
 | 
 | ||||||
| bindkey -v | . $(zdotfile bindings.zsh) | ||||||
| 
 |  | ||||||
| function exists { command -v "$@" >/dev/null } |  | ||||||
| ZMODLOAD_BLACKLIST=( ssh-agent ) |  | ||||||
| 
 | 
 | ||||||
| stty -ixon | stty -ixon | ||||||
| 
 | 
 | ||||||
| . $(zdotfile modules/loader.zsh) && mod_init |  | ||||||
| 
 |  | ||||||
| for i in  ${ZDOTDIR:+$ZDOTDIR/aliases/*~*.zwc(N)} /etc/zsh/aliases/*~*.zwc(N); do | for i in  ${ZDOTDIR:+$ZDOTDIR/aliases/*~*.zwc(N)} /etc/zsh/aliases/*~*.zwc(N); do | ||||||
|     . $i |     . $i | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
| echo $PATH | grep -q 'local' || . /etc/zsh/zprofile | if ! (grep -q 'local' <<<$PATH && grep -q 'sbin'  <<<$PATH); then | ||||||
| echo $PATH | grep -q 'sbin' || . /etc/zsh/zprofile |     . /etc/zsh/zprofile | ||||||
| 
 | fi | ||||||
| 
 | 
 | ||||||
| FZF_ALT_C_COMMAND="fd -t d" | FZF_ALT_C_COMMAND="fd -t d" | ||||||
| 
 |  | ||||||
| exists todo && todo |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 crater2150
						crater2150