#!/usr/bin/env zsh # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] && source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" # add .local/bin to PATH export PATH="${XDG_BIN_HOME:-$HOME/.local/bin}:$PATH" if [ -f /etc/os-release ] then . /etc/os-release else ID=$(uname -s) fi case "$ID" in Darwin ) source /usr/local/share/powerlevel10k/powerlevel10k.zsh-theme ;; * ) if [ -f /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme ] then source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme else source ${XDG_DATA_HOME:-$HOME/.local/share}/powerlevel10k/powerlevel10k.zsh-theme fi ;; esac if [ -x "$(command -v gem)" ]; then export GEM_HOME="$(gem env user_gemhome)" export PATH="$PATH:$GEM_HOME/bin" fi # Enable colors and change prompt: autoload -U colors && colors # Load colors setopt autocd # Automatically cd into typed directory. #stty stop undef # Disable ctrl-s to freeze terminal. setopt interactive_comments setopt complete_aliases # History in cache directory: HISTSIZE=999999999 SAVEHIST=$HISTSIZE if [ -z "$XDG_STATE_HOME/zsh" ]; then mkdir -p "$XDG_STATE_HOME/zsh" fi HISTFILE="$XDG_STATE_HOME"/zsh/history setopt BANG_HIST # Treat the '!' character specially during expansion. setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. 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_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_FIND_NO_DUPS # Do not display a line previously found. setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. setopt HIST_VERIFY # Don't execute immediately upon history expansion. setopt HIST_BEEP # Beep when accessing nonexistent history. # Load aliases and shortcuts if existent. [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/aliasrc" [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshopts" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshopts" # Basic auto/tab complete: fpath=(~/.config/zsh/completions $fpath) autoload -U compinit zstyle ':completion:*' menu select zmodload zsh/complist #compinit compinit -d ~/.cache/zsh/zcompdump-$ZSH_VERSION _comp_options+=(globdots) # Include hidden files. # To customize prompt, run `p10k configure` or edit ~/.config/zsh/. p10k.zsh. [[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh [[ ! -f ~/.config/zsh/keybindings.zsh ]] || source ~/.config/zsh/keybindings.zsh if [ -n "$WSL_DISTRO_NAME" ] then command_not_found_handler() { if [ -x "$(command -v $0.exe)" ]; then cmd=$0.exe shift $cmd $@ else echo >&2 "zsh: command not found: $@" return 127 fi } fi case "$ID" in debian | ubuntu ) source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ;; arch | artix | msys2 ) source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ;; gentoo ) source /usr/share/zsh/site-functions/zsh-syntax-highlighting.zsh source /usr/share/zsh/site-functions/zsh-autosuggestions.zsh ;; Darwin ) source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh ;; * ) echo "no highlight for you" ;; esac # Windows Terminal stuff PS1="\[\033]133;D;\007\]\[\033]133;A;\007\]$PS1\[\033]133;B;\007\]"