You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.8 KiB
98 lines
2.8 KiB
# Make colours work |
|
# |
|
autoload -U colors && colors |
|
|
|
# Make sure we are using vi mode |
|
bindkey -v |
|
|
|
[ -z "$DOTFILES" ] && source ~/.dotfiles/shells/shared/environmentVariables |
|
|
|
# History in cache directory: |
|
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. |
|
setopt SHARE_HISTORY # Share history between all sessions. |
|
setopt HIST_IGNORE_SPACE |
|
HISTSIZE=10000 |
|
SAVEHIST=10000 |
|
HISTFILE=~/.cache/zsh/history |
|
|
|
export KEYTIMEOUT=25 |
|
|
|
# Change cursor shape for different vi modes. (thanks Luke Smith: https://github.com/LukeSmithxyz/voidrice/) |
|
function zle-keymap-select { |
|
if [[ ${KEYMAP} == vicmd ]] || |
|
[[ $1 = 'block' ]]; then |
|
echo -ne '\e[1 q' |
|
|
|
elif [[ ${KEYMAP} == main ]] || |
|
[[ ${KEYMAP} == viins ]] || |
|
[[ ${KEYMAP} = '' ]] || |
|
[[ $1 = 'beam' ]]; then |
|
echo -ne '\e[5 q' |
|
fi |
|
} |
|
zle -N zle-keymap-select |
|
# |
|
zle-line-init() { |
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) |
|
echo -ne '\e[5 q' |
|
} |
|
zle -N zle-line-init |
|
|
|
# Use beam shape cursor on startup. |
|
echo -ne '\e[5 q' |
|
# Use beam shape cursor for each new prompt. |
|
preexec() { echo -ne '\e[5 q' ;} |
|
|
|
bindkey -v '^?' backward-delete-char |
|
|
|
|
|
if [ ! -n "$SSH_CLIENT" ] && [ ! -n "$SSH_TTY" ] && [ ! -n "$NO_COLOR" ]; then |
|
if [ -L $DOTFILES/shells/zsh/current-color-scheme ]; then |
|
source $DOTFILES/shells/zsh/current-color-scheme |
|
fi |
|
fi |
|
|
|
TRAPWINCH(){ |
|
zle && {zle reset-prompt; zle -R} |
|
} |
|
|
|
setopt autocd |
|
setopt chaselinks |
|
|
|
# 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="$(type -p project > /dev/null && 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 |
|
if [ -f "$current/index.yaml" ]; then |
|
export repdef="$(realpath "$current/$(yq -r .repdef "$current/index.yaml")")" |
|
export OPENAPI="$(realpath "$current/$(yq -r .openapi "$current/index.yaml")")" |
|
fi |
|
mkdir "$current/shell-logs" 2> /dev/null |
|
date="$(date +"%d-%b-%y_%H-%M-%S")" |
|
/usr/bin/script -f "$current/shell-logs/${date}_shell.log" -T "$current/shell-logs/${date}_shell.timing" |
|
fi |
|
else |
|
type -p rem > /dev/null && rem -@ |
|
pkill rem |
|
fi |
|
fi |
|
|
|
export ZSH_FOLDER="$DOTFILES/shells/zsh/" |
|
# Include my config files |
|
for file in "$ZSH_FOLDER/includes/"*".zsh"; do |
|
source "$file" |
|
done |
|
|
|
export PATH="$PATH:$ZSH_FOLDER/plugins/git-fuzzy/bin" |
|
|
|
if [ -z "$NO_COLOR" ]; then |
|
# Load zsh-syntax-highlighting; should be last. |
|
source $HOME/.dotfiles/shells/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2> /dev/null |
|
fi
|
|
|