#!/usr/bin/env zsh # Colors! + Prompt autoload -U colors && colors PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " # TODO: change $ to # when root # Load aliasrc and keybindrc source "$XDG_CONFIG_HOME/zsh/aliasrc" source "$XDG_CONFIG_HOME/zsh/keybindrc" # lf icons source "$XDG_CONFIG_HOME/zsh/lficons" # History settings HISTFILE="$XDG_DATA_HOME/zsh/zhistory" HISTSIZE=200 # Max lines of history loaded into memory SAVEHIST=10000000 # Max lines of history saved to the histfile setopt INC_APPEND_HISTORY # Create entries after each command, not after zsh exits setopt SHARE_HISTORY # Share history between zsh sessions setopt HIST_REDUCE_BLANKS setopt HIST_IGNORE_DUPS # Successive duplicate entries ignored setopt HIST_IGNORE_SPACE # Entries with leading space ignored setopt EXTENDED_HISTORY # Save superfluous info with command to reduce disk writes # Change cursor shape for different vi modes (Cred: LARBS) function zle-keymap-select () { case $KEYMAP in vicmd) echo -n '\e[1 q';; # block viins|main) echo -n '\e[5 q';; # beam esac } 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 -n "\e[5 q" } zle -N zle-line-init echo -n '\e[5 q' # Use beam shape cursor on startup preexec() { echo -n '\e[5 q' ;} # Use beam shape cursor for each new prompt # Load zsh plugins; should be last for plugin in $ZPLUGINS; do source $plugin done