| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | #!/usr/bin/env zsh
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-16 16:55:29 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # No plugin manager is needed to use this file. All that is needed is adding: | 
					
						
							|  |  |  | #   source {where-znt-is}/zsh-navigation-tools.plugin.zsh | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # to ~/.zshrc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # According to the standard: | 
					
						
							|  |  |  | # http://zdharma.org/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html | 
					
						
							|  |  |  | 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" | 
					
						
							|  |  |  | 0="${${(M)0:#/*}:-$PWD/$0}" | 
					
						
							|  |  |  | export ZNT_REPO_DIR="${0:h}" | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | export ZNT_CONFIG_DIR="$HOME/.config/znt" | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-16 16:55:29 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # Update FPATH if: | 
					
						
							|  |  |  | # 1. Not loading with a plugin manager | 
					
						
							|  |  |  | # 2. Not having fpath already updated | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ ${zsh_loaded_plugins[-1]} != */zsh-navigation-tools && -z ${fpath[(r)${0:h}]} ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |     fpath+=( "${0:h}" ) | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # Copy configs | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | if [[ ! -d "$HOME/.config" ]]; then | 
					
						
							|  |  |  |     command mkdir "$HOME/.config" | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | if [[ ! -d "$ZNT_CONFIG_DIR" ]]; then | 
					
						
							|  |  |  |     command mkdir "$ZNT_CONFIG_DIR" | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | # 9 files | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | unset __ZNT_CONFIG_FILES | 
					
						
							|  |  |  | typeset -ga __ZNT_CONFIG_FILES | 
					
						
							|  |  |  | set +A __ZNT_CONFIG_FILES n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | # Check for random 2 files if they exist | 
					
						
							|  |  |  | # This will shift 0 - 7 elements | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | shift $(( RANDOM % 8 )) __ZNT_CONFIG_FILES | 
					
						
							|  |  |  | if [[ ! -f "$ZNT_CONFIG_DIR/${__ZNT_CONFIG_FILES[1]}" || ! -f "$ZNT_CONFIG_DIR/${__ZNT_CONFIG_FILES[2]}" ]]; then | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  |     # Something changed - examine every file | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  |     set +A __ZNT_CONFIG_FILES n-aliases.conf n-env.conf n-history.conf n-list.conf n-panelize.conf n-cd.conf n-functions.conf n-kill.conf n-options.conf | 
					
						
							|  |  |  |     unset __ZNT_CONFIG_FILE | 
					
						
							|  |  |  |     typeset -g __ZNT_CONFIG_FILE | 
					
						
							|  |  |  |     for __ZNT_CONFIG_FILE in "${__ZNT_CONFIG_FILES[@]}"; do | 
					
						
							|  |  |  |         if [[ ! -f "$ZNT_CONFIG_DIR/$__ZNT_CONFIG_FILE" ]]; then | 
					
						
							|  |  |  |             command cp "$ZNT_REPO_DIR/.config/znt/$__ZNT_CONFIG_FILE" "$ZNT_CONFIG_DIR" | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  |         fi | 
					
						
							|  |  |  |     done | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  |     unset __ZNT_CONFIG_FILE | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-02 13:08:58 +01:00
										 |  |  | unset __ZNT_CONFIG_FILES | 
					
						
							| 
									
										
										
										
											2016-04-20 07:33:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # Load functions | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | autoload n-aliases n-cd n-env n-functions n-history n-kill n-list n-list-draw n-list-input n-options n-panelize n-help | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | autoload znt-usetty-wrapper znt-history-widget znt-cd-widget znt-kill-widget | 
					
						
							|  |  |  | alias naliases=n-aliases ncd=n-cd nenv=n-env nfunctions=n-functions nhistory=n-history | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | alias nkill=n-kill noptions=n-options npanelize=n-panelize nhelp=n-help | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | zle -N znt-history-widget | 
					
						
							|  |  |  | bindkey '^R' znt-history-widget | 
					
						
							|  |  |  | setopt AUTO_PUSHD HIST_IGNORE_DUPS PUSHD_IGNORE_DUPS | 
					
						
							| 
									
										
										
										
											2016-04-30 15:16:00 +02:00
										 |  |  | zstyle ':completion::complete:n-kill::bits' matcher 'r:|=** l:|=*' | 
					
						
							| 
									
										
										
										
											2015-09-20 14:39:46 +02:00
										 |  |  | 
 |