mirror of
				https://github.com/materusPL/Nixerus.git
				synced 2025-11-04 14:40:28 +01:00 
			
		
		
		
	
		
			
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# Stolen from ArchWiki
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# create a zkbd compatible hash;
							 | 
						||
| 
								 | 
							
								# to add other keys to this hash, see: man 5 terminfo
							 | 
						||
| 
								 | 
							
								typeset -A key
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								key[Home]=${terminfo[khome]}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								key[End]=${terminfo[kend]}
							 | 
						||
| 
								 | 
							
								key[Insert]=${terminfo[kich1]}
							 | 
						||
| 
								 | 
							
								key[Delete]=${terminfo[kdch1]}
							 | 
						||
| 
								 | 
							
								key[Up]=${terminfo[kcuu1]}
							 | 
						||
| 
								 | 
							
								key[Down]=${terminfo[kcud1]}
							 | 
						||
| 
								 | 
							
								key[Left]=${terminfo[kcub1]}
							 | 
						||
| 
								 | 
							
								key[Right]=${terminfo[kcuf1]}
							 | 
						||
| 
								 | 
							
								key[PageUp]=${terminfo[kpp]}
							 | 
						||
| 
								 | 
							
								key[PageDown]=${terminfo[knp]}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# setup key accordingly
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Home]}"     ]]  && bindkey  "${key[Home]}"     beginning-of-line
							 | 
						||
| 
								 | 
							
								[[ -n "${key[End]}"      ]]  && bindkey  "${key[End]}"      end-of-line
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Insert]}"   ]]  && bindkey  "${key[Insert]}"   overwrite-mode
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Delete]}"   ]]  && bindkey  "${key[Delete]}"   delete-char
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Up]}"       ]]  && bindkey  "${key[Up]}"       up-line-or-history
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Down]}"     ]]  && bindkey  "${key[Down]}"     down-line-or-history
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Left]}"     ]]  && bindkey  "${key[Left]}"     backward-char
							 | 
						||
| 
								 | 
							
								[[ -n "${key[Right]}"    ]]  && bindkey  "${key[Right]}"    forward-char
							 | 
						||
| 
								 | 
							
								[[ -n "${key[PageUp]}"   ]]  && bindkey  "${key[PageUp]}"   beginning-of-buffer-or-history
							 | 
						||
| 
								 | 
							
								[[ -n "${key[PageDown]}" ]]  && bindkey  "${key[PageDown]}" end-of-buffer-or-history
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Finally, make sure the terminal is in application mode, when zle is
							 | 
						||
| 
								 | 
							
								# active. Only then are the values from $terminfo valid.
							 | 
						||
| 
								 | 
							
								if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
							 | 
						||
| 
								 | 
							
								    function zle-line-init () {
							 | 
						||
| 
								 | 
							
								        printf '%s' "${terminfo[smkx]}"
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    function zle-line-finish () {
							 | 
						||
| 
								 | 
							
								        printf '%s' "${terminfo[rmkx]}"
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    zle -N zle-line-init
							 | 
						||
| 
								 | 
							
								    zle -N zle-line-finish
							 | 
						||
| 
								 | 
							
								fi
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |