# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi # Lines configured by zsh-newuser-install HISTFILE=~/.histfile HISTSIZE=1000 SAVEHIST=1000 setopt autocd extendedglob nomatch notify unsetopt beep #bindkey -v set -o emacs # End of lines configured by zsh-newuser-install # The following lines were added by compinstall zstyle :compinstall filename '/home/arch/.zshrc' autoload -Uz compinit compinit # End of lines added by compinstall source $HOME/.terminal_aliases source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh # set path to include users private bin if it exists if [ -d $HOME/.local/bin ] ; then PATH="$HOME/.local/bin:$PATH" fi # key bindings # 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[Shift-Tab]="${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[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" 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 key[Control-Left]="${terminfo[kLFT5]}" key[Control-Right]="${terminfo[kRIT5]}" [[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word [[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word function zle-line-init { marking=0 } zle -N zle-line-init function select-char-right { if (( $marking != 1 )) then marking=1 zle set-mark-command fi zle .forward-char } zle -N select-char-right function select-char-left { if (( $marking != 1 )) then marking=1 zle set-mark-command fi zle .backward-char } zle -N select-char-left function forward-char { if (( $marking == 1 )) then marking=0 NUMERIC=-1 zle set-mark-command fi zle .forward-char } zle -N forward-char function backward-char { if (( $marking == 1 )) then marking=0 NUMERIC=-1 zle set-mark-command fi zle .backward-char } zle -N backward-char function delete-char { if (( $marking == 1 )) then zle kill-region marking=0 else zle .delete-char fi } zle -N delete-char bindkey '6D' select-word-left ## not working yet bindkey '6C' select-word-right ## not working yet bindkey '2D' select-char-left # assuming xterm bindkey '2C' select-char-right # assuming xterm bindkey '5D' backward-word bindkey '5C' forward-word bindkey '^[[3~' delete-char powerline-config tmux setup alias vim=nvim alias sudo='sudo ' # set default editor to neovim export EDITOR=nvim export VISUAL=nvim # add the custom functions from the .custom_functions file custom_func_dir=$HOME/.scripts for f in $custom_func_dir/*; do source $f; done