parent
d6599e53fa
commit
715b2b7d3e
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