summaryrefslogtreecommitdiffstatshomepage
path: root/zshrc
diff options
context:
space:
mode:
Diffstat (limited to 'zshrc')
-rw-r--r--zshrc65
1 files changed, 65 insertions, 0 deletions
diff --git a/zshrc b/zshrc
new file mode 100644
index 0000000..2148dcc
--- /dev/null
+++ b/zshrc
@@ -0,0 +1,65 @@
+#!/usr/bin/env zsh
+
+HYPHEN_INSENSITIVE="true"
+DISABLE_UPDATE_PROMPT="true"
+DISABLE_AUTO_TITLE="true"
+HISTFILE=~/.zsh_history
+HISTSIZE=10000
+SAVEHIST=10000
+
+setopt NO_BEEP
+setopt MENU_COMPLETE
+setopt auto_pushd # auto push to the directory stack on cd
+setopt extended_history # record timestamp of command in HISTFILE
+setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
+setopt hist_ignore_dups # ignore duplicated commands history list
+setopt hist_ignore_space # ignore commands that start with space
+setopt hist_verify # show command with history expansion to user before running it
+setopt share_history # share command history data
+
+typeset -A ZSH_HIGHLIGHT_STYLES
+ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
+ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern line)
+ZSH_AUTOSUGGEST_STRATEGY=(match_prev_cmd completion)
+
+fpath=(~/.local/share/zsh/site-functions "${fpath[@]}")
+
+source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+for f in ~/.zsh/*.*sh; do source $f; done
+
+# fzf settings
+export FZF_DEFAULT_COMMAND="fd --type f || git ls-tree -r --name-only HEAD || rg --files || find ."
+export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
+
+command -v fd &>/dev/null && _fzf_compgen_path() {
+ fd --hidden --follow --exclude ".git" . "$1"
+}
+
+command -v fd &>/dev/null && _fzf_compgen_dir() {
+ fd --type d --hidden --follow --exclude ".git" . "$1"
+}
+
+eval "$(starship init zsh 2>/dev/null)"
+eval "$(navi widget zsh 2>/dev/null)"
+
+set_win_title() {
+ local prefix
+
+ if [ "$USER" != "tobyv" ]; then
+ prefix="${USER} in "
+ fi
+
+ if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
+ prefix="${prefix/in/on}${HOST} in "
+ fi
+
+ echo -ne "\033]0;${prefix}${PWD/$HOME/~}\007"
+}
+
+precmd_functions+=(set_win_title)
+
+autoload -U compinit
+compinit -i
+
+zstyle ':completion:*' menu select
+source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh