# main zsh settings. env in .zshrc # read second if [ $debug = 1 ]; then echo reading config from $0 fi ## set up oh-my-posh shell export POSH_SESSION_ID="9b903a91-4978-487d-967e-6aed529e69ca" # source global shell alias & variables files [ -f "$XDG_CONFIG_HOME/shell/alias" ] && source "$XDG_CONFIG_HOME/shell/alias" [ -f "$XDG_CONFIG_HOME/shell/vars" ] && source "$XDG_CONFIG_HOME/shell/vars" # load modules zmodload zsh/complist autoload -U compinit && compinit autoload -U colors && colors # autoload -U tetris # main attraction of zsh, obviously # cmp opts zstyle ':completion:*' menu select # tab opens cmp menu zstyle ':completion:*' special-dirs true # force . and .. to show in cmp menu zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} ma=0\;33 # colorize cmp menu # zstyle ':completion:*' file-list true # more detailed list zstyle ':completion:*' squeeze-slashes false # explicit disable to allow /*/ expansion # main opts setopt append_history inc_append_history share_history # better history # on exit, history appends rather than overwrites; history is appended as soon as cmds executed; history shared across sessions setopt auto_menu menu_complete # autocmp first menu match setopt autocd # type a dir to cd setopt auto_param_slash # when a dir is completed, add a / instead of a trailing space setopt no_case_glob no_case_match # make cmp case insensitive setopt globdots # include dotfiles setopt extended_glob # match ~ # ^ setopt interactive_comments # allow comments in shell unsetopt prompt_sp # don't autoclean blanklines stty stop undef # disable accidental ctrl s # history opts HISTSIZE=1000000 SAVEHIST=1000000 HISTFILE="$XDG_CACHE_HOME/zsh_history" # move histfile to cache HISTCONTROL=ignoreboth # consecutive duplicates & commands starting with space are not saved # fzf setup source <(fzf --zsh) # allow for fzf history widget # binds bindkey "^a" beginning-of-line bindkey "^e" end-of-line bindkey "^k" kill-line bindkey "^j" backward-word bindkey "^k" forward-word bindkey "^H" backward-kill-word # ctrl J & K for going up and down in prev commands bindkey "^J" history-search-forward bindkey "^K" history-search-backward bindkey '^R' fzf-history-widget # open fff file manager with ctrl f # openfff() { # fff <$TTY # zle redisplay #} #zle -N openfff #bindkey '^f' openfff # set up prompt NEWLINE=$'\n' # PROMPT="${NEWLINE}%K{#2E3440}%F{#E5E9F0}$(date +%_I:%M%P) %K{#3b4252}%F{#ECEFF4} %n %K{#4c566a} %~ %f%k ❯ " # nord theme # PROMPT="${NEWLINE}%K{#32302f}%F{#d5c4a1} $0 %K{#3c3836}%F{#d5c4a1} %n %K{#504945} %~ %f%k ❯ " # warmer theme # PROMPT="${NEWLINE}%K{$COL0}%F{$COL1}$(date +%_I:%M%P) %K{$COL0}%F{$COL2} %n %K{$COL3} %~ %f%k ❯ " # pywal colors, from postrun script # echo -e "${NEWLINE}\033[48;2;46;52;64;38;2;216;222;233m $0 \033[0m\033[48;2;59;66;82;38;2;216;222;233m $(uptime -p | cut -c 4-) \033[0m\033[48;2;76;86;106;38;2;216;222;233m $(uname -r) \033[0m" # nord theme # echo -e "${NEWLINE}\x1b[38;5;137m\x1b[48;5;0m it's$(date +%_I:%M%P) \x1b[38;5;180m\x1b[48;5;0m $(uptime -p | cut -c 4-) \x1b[38;5;223m\x1b[48;5;0m $(uname -r) \033[0m" # warmer theme # echo -e "${NEWLINE}\x1b[38;5;137m\x1b[48;5;0m it's$(print -P '%D{%_I:%M%P}\n') \x1b[38;5;180m\x1b[48;5;0m $(uptime -p | cut -c 4-) \x1b[38;5;223m\x1b[48;5;0m $(uname -r) \033[0m" # current # autosuggestions # requires zsh-autosuggestions # source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh # syntax highlighting # requires zsh-syntax-highlighting package source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh #import oh-my-posh shell export POSH_SESSION_ID="b5bf3508-938e-40c1-8126-f73becb49bca"; source $'/home/venus/.cache/oh-my-posh/init.14695981039346656037.zsh'