# 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