parent
cd61fb7ff4
commit
4893824aff
15 changed files with 816 additions and 157 deletions
@ -1,2 +1,2 @@ |
|||||||
source ~/.dotfiles/shells/shared/profile |
source ~/.dotfiles/shells/shared/environmentVariables |
||||||
|
|
||||||
|
@ -0,0 +1,131 @@ |
|||||||
|
# If you come from bash you might have to change your $PATH. |
||||||
|
# export PATH=$HOME/bin:/usr/local/bin:$PATH |
||||||
|
|
||||||
|
# Path to your oh-my-zsh installation. |
||||||
|
#export ZSH=$HOME/.dotfiles/shells/zsh/oh-my-zsh-core |
||||||
|
|
||||||
|
|
||||||
|
# Set name of the theme to load. Optionally, if you set this to "random" |
||||||
|
# it'll load a random theme each time that oh-my-zsh is loaded. |
||||||
|
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes |
||||||
|
#ZSH_THEME="powerlevel9k/powerlevel9k" |
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion. |
||||||
|
# CASE_SENSITIVE="true" |
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion. Case |
||||||
|
# sensitive completion must be off. _ and - will be interchangeable. |
||||||
|
# HYPHEN_INSENSITIVE="true" |
||||||
|
|
||||||
|
# Uncomment the following line to disable bi-weekly auto-update checks. |
||||||
|
# DISABLE_AUTO_UPDATE="true" |
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days). |
||||||
|
# export UPDATE_ZSH_DAYS=13 |
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls. |
||||||
|
# DISABLE_LS_COLORS="true" |
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title. |
||||||
|
# DISABLE_AUTO_TITLE="true" |
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction. |
||||||
|
# ENABLE_CORRECTION="true" |
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion. |
||||||
|
# COMPLETION_WAITING_DOTS="true" |
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files |
||||||
|
# under VCS as dirty. This makes repository status check for large repositories |
||||||
|
# much, much faster. |
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true" |
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time |
||||||
|
# stamp shown in the history command output. |
||||||
|
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" |
||||||
|
# HIST_STAMPS="dd.mm.yyyy" |
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom? |
||||||
|
#ZSH_CUSTOM=$HOME/.dotfiles/shells/zsh/oh-my-zsh-custom |
||||||
|
|
||||||
|
|
||||||
|
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) |
||||||
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ |
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse) |
||||||
|
# Add wisely, as too many plugins slow down shell startup. |
||||||
|
#plugins=(git zsh-better-npm-completion zsh-autosuggestions) |
||||||
|
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh |
||||||
|
|
||||||
|
# User configuration |
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH" |
||||||
|
|
||||||
|
# You may need to manually set your language environment |
||||||
|
# export LANG=en_US.UTF-8 |
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions |
||||||
|
# if [[ -n $SSH_CONNECTION ]]; then |
||||||
|
# export EDITOR='vim' |
||||||
|
# else |
||||||
|
# export EDITOR='mvim' |
||||||
|
# fi |
||||||
|
|
||||||
|
# Compilation flags |
||||||
|
# export ARCHFLAGS="-arch x86_64" |
||||||
|
|
||||||
|
# ssh |
||||||
|
# export SSH_KEY_PATH="~/.ssh/rsa_id" |
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by oh-my-zsh libs, |
||||||
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh |
||||||
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder. |
||||||
|
# For a full list of active aliases, run `alias`. |
||||||
|
# |
||||||
|
# Example aliases |
||||||
|
# alias zshconfig="mate ~/.zshrc" |
||||||
|
# alias ohmyzsh="mate ~/.oh-my-zsh" |
||||||
|
|
||||||
|
source ~/.dotfiles/shells/zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh |
||||||
|
|
||||||
|
if [ ! -n "$SSH_CLIENT" ] && [ ! -n "$SSH_TTY" ]; then |
||||||
|
if [ -L $HOME/.dotfiles/shells/zsh/current-color-scheme ]; then |
||||||
|
source $HOME/.dotfiles/shells/zsh/current-color-scheme |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
TRAPWINCH(){ |
||||||
|
zle && {zle reset-prompt; zle -R} |
||||||
|
} |
||||||
|
|
||||||
|
#if [ -f ~/.current-folder ] && [ ! $TMUX ]; then |
||||||
|
# \cd "$(cat ~/.current-folder)" |
||||||
|
#fi |
||||||
|
|
||||||
|
#[ -z "$TMUX" ] && { exec tmux new-session && exit;} |
||||||
|
#if [[ ! $TERM =~ screen ]]; then |
||||||
|
# exec tmux |
||||||
|
#fi |
||||||
|
# |
||||||
|
|
||||||
|
# I use initial command in my folder-shell script |
||||||
|
# This is normally empty, but might be lf or ranger if I want to open it |
||||||
|
# THis is almost always a curses app so I don't want to try and record the terminal |
||||||
|
if [ -n "$initialCommand" ]; then |
||||||
|
echo "Running $initialCommand" |
||||||
|
$initialCommand && exit |
||||||
|
else |
||||||
|
local current="$(project current --path)" |
||||||
|
if [ -n "$current" ]; then |
||||||
|
local script="/usr/bin/script" |
||||||
|
if [[ ! "$(ps -ocommand -p $PPID | grep -v 'COMMAND' | cut -d' ' -f1 )" == "$script" ]]; then |
||||||
|
mkdir "$current/shell-logs" |
||||||
|
/usr/bin/script -f "$current/shell-logs/$(date +"%d-%b-%y_%H-%M-%S")_shell.log" |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
|
||||||
|
#clear |
||||||
|
#tldr --linux -r |
@ -0,0 +1,6 @@ |
|||||||
|
source "$ZSH_FOLDER/plugins/zsh-auto-notify/auto-notify.plugin.zsh" |
||||||
|
export AUTO_NOTIFY_THRESHOLD=5 |
||||||
|
export AUTO_NOTIFY_TITLE="Hey! %command has just finished" |
||||||
|
export AUTO_NOTIFY_BODY="It completed in %elapsed seconds with exit code %exit_code" |
||||||
|
AUTO_NOTIFY_IGNORE+=("bat" "zathura" "libreoffice" "lf") |
||||||
|
disable_auto_notify |
@ -0,0 +1,2 @@ |
|||||||
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' |
||||||
|
source "$ZSH_FOLDER/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" |
@ -0,0 +1,373 @@ |
|||||||
|
# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8 |
||||||
|
################################################################ |
||||||
|
# Color functions |
||||||
|
# This file holds some color-functions for |
||||||
|
# the powerlevel9k-ZSH-theme |
||||||
|
# https://github.com/bhilburn/powerlevel9k |
||||||
|
# Modified my jh |
||||||
|
################################################################ |
||||||
|
|
||||||
|
typeset -gAh __JH_COLORS |
||||||
|
# https://jonasjacek.github.io/colors/ |
||||||
|
# use color names by default to allow dark/light themes to adjust colors based on names |
||||||
|
__JH_COLORS=( |
||||||
|
black 000 |
||||||
|
red 001 |
||||||
|
green 002 |
||||||
|
yellow 003 |
||||||
|
blue 004 |
||||||
|
magenta 005 |
||||||
|
cyan 006 |
||||||
|
white 007 |
||||||
|
grey 008 |
||||||
|
maroon 009 |
||||||
|
lime 010 |
||||||
|
olive 011 |
||||||
|
navy 012 |
||||||
|
fuchsia 013 |
||||||
|
purple 013 |
||||||
|
aqua 014 |
||||||
|
teal 014 |
||||||
|
silver 015 |
||||||
|
grey0 016 |
||||||
|
navyblue 017 |
||||||
|
darkblue 018 |
||||||
|
blue3 019 |
||||||
|
blue3 020 |
||||||
|
blue1 021 |
||||||
|
darkgreen 022 |
||||||
|
deepskyblue4 023 |
||||||
|
deepskyblue4 024 |
||||||
|
deepskyblue4 025 |
||||||
|
dodgerblue3 026 |
||||||
|
dodgerblue2 027 |
||||||
|
green4 028 |
||||||
|
springgreen4 029 |
||||||
|
turquoise4 030 |
||||||
|
deepskyblue3 031 |
||||||
|
deepskyblue3 032 |
||||||
|
dodgerblue1 033 |
||||||
|
green3 034 |
||||||
|
springgreen3 035 |
||||||
|
darkcyan 036 |
||||||
|
lightseagreen 037 |
||||||
|
deepskyblue2 038 |
||||||
|
deepskyblue1 039 |
||||||
|
green3 040 |
||||||
|
springgreen3 041 |
||||||
|
springgreen2 042 |
||||||
|
cyan3 043 |
||||||
|
darkturquoise 044 |
||||||
|
turquoise2 045 |
||||||
|
green1 046 |
||||||
|
springgreen2 047 |
||||||
|
springgreen1 048 |
||||||
|
mediumspringgreen 049 |
||||||
|
cyan2 050 |
||||||
|
cyan1 051 |
||||||
|
darkred 052 |
||||||
|
deeppink4 053 |
||||||
|
purple4 054 |
||||||
|
purple4 055 |
||||||
|
purple3 056 |
||||||
|
blueviolet 057 |
||||||
|
orange4 058 |
||||||
|
grey37 059 |
||||||
|
mediumpurple4 060 |
||||||
|
slateblue3 061 |
||||||
|
slateblue3 062 |
||||||
|
royalblue1 063 |
||||||
|
chartreuse4 064 |
||||||
|
darkseagreen4 065 |
||||||
|
paleturquoise4 066 |
||||||
|
steelblue 067 |
||||||
|
steelblue3 068 |
||||||
|
cornflowerblue 069 |
||||||
|
chartreuse3 070 |
||||||
|
darkseagreen4 071 |
||||||
|
cadetblue 072 |
||||||
|
cadetblue 073 |
||||||
|
skyblue3 074 |
||||||
|
steelblue1 075 |
||||||
|
chartreuse3 076 |
||||||
|
palegreen3 077 |
||||||
|
seagreen3 078 |
||||||
|
aquamarine3 079 |
||||||
|
mediumturquoise 080 |
||||||
|
steelblue1 081 |
||||||
|
chartreuse2 082 |
||||||
|
seagreen2 083 |
||||||
|
seagreen1 084 |
||||||
|
seagreen1 085 |
||||||
|
aquamarine1 086 |
||||||
|
darkslategray2 087 |
||||||
|
darkred 088 |
||||||
|
deeppink4 089 |
||||||
|
darkmagenta 090 |
||||||
|
darkmagenta 091 |
||||||
|
darkviolet 092 |
||||||
|
purple 093 |
||||||
|
orange4 094 |
||||||
|
lightpink4 095 |
||||||
|
plum4 096 |
||||||
|
mediumpurple3 097 |
||||||
|
mediumpurple3 098 |
||||||
|
slateblue1 099 |
||||||
|
yellow4 100 |
||||||
|
wheat4 101 |
||||||
|
grey53 102 |
||||||
|
lightslategrey 103 |
||||||
|
mediumpurple 104 |
||||||
|
lightslateblue 105 |
||||||
|
yellow4 106 |
||||||
|
darkolivegreen3 107 |
||||||
|
darkseagreen 108 |
||||||
|
lightskyblue3 109 |
||||||
|
lightskyblue3 110 |
||||||
|
skyblue2 111 |
||||||
|
chartreuse2 112 |
||||||
|
darkolivegreen3 113 |
||||||
|
palegreen3 114 |
||||||
|
darkseagreen3 115 |
||||||
|
darkslategray3 116 |
||||||
|
skyblue1 117 |
||||||
|
chartreuse1 118 |
||||||
|
lightgreen 119 |
||||||
|
lightgreen 120 |
||||||
|
palegreen1 121 |
||||||
|
aquamarine1 122 |
||||||
|
darkslategray1 123 |
||||||
|
red3 124 |
||||||
|
deeppink4 125 |
||||||
|
mediumvioletred 126 |
||||||
|
magenta3 127 |
||||||
|
darkviolet 128 |
||||||
|
purple 129 |
||||||
|
darkorange3 130 |
||||||
|
indianred 131 |
||||||
|
hotpink3 132 |
||||||
|
mediumorchid3 133 |
||||||
|
mediumorchid 134 |
||||||
|
mediumpurple2 135 |
||||||
|
darkgoldenrod 136 |
||||||
|
lightsalmon3 137 |
||||||
|
rosybrown 138 |
||||||
|
grey63 139 |
||||||
|
mediumpurple2 140 |
||||||
|
mediumpurple1 141 |
||||||
|
gold3 142 |
||||||
|
darkkhaki 143 |
||||||
|
navajowhite3 144 |
||||||
|
grey69 145 |
||||||
|
lightsteelblue3 146 |
||||||
|
lightsteelblue 147 |
||||||
|
yellow3 148 |
||||||
|
darkolivegreen3 149 |
||||||
|
darkseagreen3 150 |
||||||
|
darkseagreen2 151 |
||||||
|
lightcyan3 152 |
||||||
|
lightskyblue1 153 |
||||||
|
greenyellow 154 |
||||||
|
darkolivegreen2 155 |
||||||
|
palegreen1 156 |
||||||
|
darkseagreen2 157 |
||||||
|
darkseagreen1 158 |
||||||
|
paleturquoise1 159 |
||||||
|
red3 160 |
||||||
|
deeppink3 161 |
||||||
|
deeppink3 162 |
||||||
|
magenta3 163 |
||||||
|
magenta3 164 |
||||||
|
magenta2 165 |
||||||
|
darkorange3 166 |
||||||
|
indianred 167 |
||||||
|
hotpink3 168 |
||||||
|
hotpink2 169 |
||||||
|
orchid 170 |
||||||
|
mediumorchid1 171 |
||||||
|
orange3 172 |
||||||
|
lightsalmon3 173 |
||||||
|
lightpink3 174 |
||||||
|
pink3 175 |
||||||
|
plum3 176 |
||||||
|
violet 177 |
||||||
|
gold3 178 |
||||||
|
lightgoldenrod3 179 |
||||||
|
tan 180 |
||||||
|
mistyrose3 181 |
||||||
|
thistle3 182 |
||||||
|
plum2 183 |
||||||
|
yellow3 184 |
||||||
|
khaki3 185 |
||||||
|
lightgoldenrod2 186 |
||||||
|
lightyellow3 187 |
||||||
|
grey84 188 |
||||||
|
lightsteelblue1 189 |
||||||
|
yellow2 190 |
||||||
|
darkolivegreen1 191 |
||||||
|
darkolivegreen1 192 |
||||||
|
darkseagreen1 193 |
||||||
|
honeydew2 194 |
||||||
|
lightcyan1 195 |
||||||
|
red1 196 |
||||||
|
deeppink2 197 |
||||||
|
deeppink1 198 |
||||||
|
deeppink1 199 |
||||||
|
magenta2 200 |
||||||
|
magenta1 201 |
||||||
|
orangered1 202 |
||||||
|
indianred1 203 |
||||||
|
indianred1 204 |
||||||
|
hotpink 205 |
||||||
|
hotpink 206 |
||||||
|
mediumorchid1 207 |
||||||
|
darkorange 208 |
||||||
|
salmon1 209 |
||||||
|
lightcoral 210 |
||||||
|
palevioletred1 211 |
||||||
|
orchid2 212 |
||||||
|
orchid1 213 |
||||||
|
orange1 214 |
||||||
|
sandybrown 215 |
||||||
|
lightsalmon1 216 |
||||||
|
lightpink1 217 |
||||||
|
pink1 218 |
||||||
|
plum1 219 |
||||||
|
gold1 220 |
||||||
|
lightgoldenrod2 221 |
||||||
|
lightgoldenrod2 222 |
||||||
|
navajowhite1 223 |
||||||
|
mistyrose1 224 |
||||||
|
thistle1 225 |
||||||
|
yellow1 226 |
||||||
|
lightgoldenrod1 227 |
||||||
|
khaki1 228 |
||||||
|
wheat1 229 |
||||||
|
cornsilk1 230 |
||||||
|
grey100 231 |
||||||
|
grey3 232 |
||||||
|
grey7 233 |
||||||
|
grey11 234 |
||||||
|
grey15 235 |
||||||
|
grey19 236 |
||||||
|
grey23 237 |
||||||
|
grey27 238 |
||||||
|
grey30 239 |
||||||
|
grey35 240 |
||||||
|
grey39 241 |
||||||
|
grey42 242 |
||||||
|
grey46 243 |
||||||
|
grey50 244 |
||||||
|
grey54 245 |
||||||
|
grey58 246 |
||||||
|
grey62 247 |
||||||
|
grey66 248 |
||||||
|
grey70 249 |
||||||
|
grey74 250 |
||||||
|
grey78 251 |
||||||
|
grey82 252 |
||||||
|
grey85 253 |
||||||
|
grey89 254 |
||||||
|
grey93 255 |
||||||
|
) |
||||||
|
|
||||||
|
function termColors() { |
||||||
|
|
||||||
|
local term_colors |
||||||
|
|
||||||
|
if which tput &>/dev/null; then |
||||||
|
term_colors=$(tput colors) |
||||||
|
else |
||||||
|
term_colors=$(echotc Co) |
||||||
|
fi |
||||||
|
if (( ! $? && ${term_colors:-0} < 256 )); then |
||||||
|
print -P "%F{red}WARNING!%f Your terminal appears to support fewer than 256 colors!" |
||||||
|
print -P "If your terminal supports 256 colors, please export the appropriate environment variable" |
||||||
|
print -P "_before_ loading this theme in your \~\/.zshrc. In most terminal emulators, putting" |
||||||
|
print -P "%F{blue}export TERM=\"xterm-256color\"%f at the top of your \~\/.zshrc is sufficient." |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# get the proper color code if it does not exist as a name. |
||||||
|
function getColor() { |
||||||
|
# If Color is not numerical, try to get the color code. |
||||||
|
if [[ "$1" != <-> ]]; then |
||||||
|
1=$(getColorCode $1) |
||||||
|
fi |
||||||
|
echo -n "$1" |
||||||
|
} |
||||||
|
|
||||||
|
# empty paramenter resets (stops) background color |
||||||
|
function backgroundColor() { |
||||||
|
echo -n "%K{$(getColor $1)}" |
||||||
|
} |
||||||
|
|
||||||
|
# empty paramenter resets (stops) foreground color |
||||||
|
function foregroundColor() { |
||||||
|
echo -n "%F{$(getColor $1)}" |
||||||
|
} |
||||||
|
|
||||||
|
function focusBackgroundColor() { |
||||||
|
if [ "$HASFOCUS" = "true" ]; then |
||||||
|
backgroundColor "$@" |
||||||
|
fi |
||||||
|
} |
||||||
|
function focusForegroundColor() { |
||||||
|
if [ "$HASFOCUS" = "true" ]; then |
||||||
|
foregroundColor "$@" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Get numerical color codes. That way we translate ANSI codes |
||||||
|
# into ZSH-Style color codes. |
||||||
|
function getColorCode() { |
||||||
|
# Early exit: Check if given value is already numerical |
||||||
|
if [[ "$1" == <-> ]]; then |
||||||
|
# Pad color with zeroes |
||||||
|
echo -n "${(l:3::0:)1}" |
||||||
|
return |
||||||
|
fi |
||||||
|
|
||||||
|
local colorName="${1}" |
||||||
|
# Check if value is none with any case. |
||||||
|
if [[ "${(L)colorName}" == "none" ]]; then |
||||||
|
echo -n 'none' |
||||||
|
elif [[ "${colorName}" == "foreground" ]]; then |
||||||
|
# for testing purposes in terminal |
||||||
|
# call via `getColorCode foreground` |
||||||
|
for i in "${(k@)__JH_COLORS}"; do |
||||||
|
print -P "$(foregroundColor $i)$(getColor $i) - $i%f" |
||||||
|
done |
||||||
|
elif [[ "${colorName}" == "background" ]]; then |
||||||
|
# call via `getColorCode background` |
||||||
|
for i in "${(k@)__JH_COLORS}"; do |
||||||
|
print -P "$(backgroundColor $i)$(getColor $i) - $i%k" |
||||||
|
done |
||||||
|
else |
||||||
|
# Strip eventual "bg-" prefixes |
||||||
|
colorName=${colorName#bg-} |
||||||
|
# Strip eventual "fg-" prefixes |
||||||
|
colorName=${colorName#fg-} |
||||||
|
# Strip eventual "br" prefixes ("bright" colors) |
||||||
|
colorName=${colorName#br} |
||||||
|
echo -n $__JH_COLORS[$colorName] |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Check if two colors are equal, even if one is specified as ANSI code. |
||||||
|
function isSameColor() { |
||||||
|
if [[ "$1" == "NONE" || "$2" == "NONE" ]]; then |
||||||
|
return 1 |
||||||
|
fi |
||||||
|
|
||||||
|
local color1=$(getColorCode "$1") |
||||||
|
local color2=$(getColorCode "$2") |
||||||
|
|
||||||
|
return $(( color1 != color2 )) |
||||||
|
} |
||||||
|
|
||||||
|
function resetColor(){ |
||||||
|
backgroundColor none |
||||||
|
foregroundColor white |
||||||
|
echo -n "%{$reset_color%}" |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
#Gain focus |
||||||
|
|
||||||
|
gain_focus(){ |
||||||
|
export HASFOCUS="true" |
||||||
|
set_prompts |
||||||
|
zle reset-prompt |
||||||
|
} |
||||||
|
zle -N gain_focus |
||||||
|
|
||||||
|
loose_focus(){ |
||||||
|
export HASFOCUS="false" |
||||||
|
set_prompts |
||||||
|
zle reset-prompt |
||||||
|
} |
||||||
|
zle -N loose_focus |
||||||
|
|
||||||
|
|
||||||
|
# This makes sc (and maybe other terminals?) send escape codes to the shell when focus is gained / lost |
||||||
|
printf '\033[?1004h' |
||||||
|
bindkey '\033[I' gain_focus # Gain Focus |
||||||
|
bindkey '\033[O' loose_focus # Loose Focus |
||||||
|
HASFOCUS="true" |
@ -1 +0,0 @@ |
|||||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' |
|
@ -0,0 +1,59 @@ |
|||||||
|
# create a zkbd compatible hash; |
||||||
|
# to add other keys to this hash, see: man 5 terminfo |
||||||
|
typeset -g -A key |
||||||
|
|
||||||
|
key[Home]="${terminfo[khome]}" |
||||||
|
key[End]="${terminfo[kend]}" |
||||||
|
key[Insert]="${terminfo[kich1]}" |
||||||
|
key[Backspace]="${terminfo[kbs]}" |
||||||
|
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]}" |
||||||
|
key[ShiftTab]="${terminfo[kcbt]}" |
||||||
|
|
||||||
|
# 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[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char |
||||||
|
[[ -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 |
||||||
|
[[ -n "${key[ShiftTab]}" ]] && bindkey -- "${key[ShiftTab]}" reverse-menu-complete |
||||||
|
|
||||||
|
# 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 |
||||||
|
autoload -Uz add-zle-hook-widget |
||||||
|
function zle_application_mode_start { echoti smkx } |
||||||
|
function zle_application_mode_stop { echoti rmkx } |
||||||
|
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start |
||||||
|
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop |
||||||
|
fi |
||||||
|
|
||||||
|
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search |
||||||
|
zle -N up-line-or-beginning-search |
||||||
|
zle -N down-line-or-beginning-search |
||||||
|
|
||||||
|
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search |
||||||
|
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search |
||||||
|
|
||||||
|
|
||||||
|
# By default, Ctrl+d will not close your shell if the command line is filled, this fixes it: |
||||||
|
exit_zsh() { exit } |
||||||
|
zle -N exit_zsh |
||||||
|
bindkey '^D' exit_zsh |
||||||
|
|
||||||
|
autoload -U edit-command-line |
||||||
|
zle -N edit-command-line |
||||||
|
bindkey '\C-x\C-e' edit-command-line |
||||||
|
|
||||||
|
bindkey -M viins jj vi-cmd-mode |
Loading…
Reference in new issue