aboutsummaryrefslogtreecommitdiffstats
path: root/.zshrc
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2023-05-23 09:15:04 +0200
committerDavid Runge <dave@sleepmap.de>2023-05-23 09:15:04 +0200
commitd59b574b67e36ec5420cfedcbf489d9184b3a691 (patch)
tree3ad0aadc6f3a3166d8ccb99053b8260d8258f647 /.zshrc
parent2fc5cf9f7eece3d993c3eba526ba5d04819b81ac (diff)
downloaddotfiles-d59b574b67e36ec5420cfedcbf489d9184b3a691.tar.gz
dotfiles-d59b574b67e36ec5420cfedcbf489d9184b3a691.tar.bz2
dotfiles-d59b574b67e36ec5420cfedcbf489d9184b3a691.tar.xz
dotfiles-d59b574b67e36ec5420cfedcbf489d9184b3a691.zip
zsh: move configs to XDG_CONFIG_HOME with the help of ZDOTDIR
Diffstat (limited to '.zshrc')
-rw-r--r--.zshrc443
1 files changed, 0 insertions, 443 deletions
diff --git a/.zshrc b/.zshrc
deleted file mode 100644
index 86a6262..0000000
--- a/.zshrc
+++ /dev/null
@@ -1,443 +0,0 @@
-
-# functions
-for config_file ($HOME/.config/zsh/functions/*.zsh) source $config_file
-
-# Environment
-#
-
-# Smart URLs
-autoload -Uz url-quote-magic
-zle -N self-insert url-quote-magic
-
-# enable vi mode
-setopt -o vi
-bindkey -v
-bindkey '^r' history-incremental-search-backward
-bindkey '^a' beginning-of-line
-bindkey '^e' end-of-line
-
-# General
-setopt BRACE_CCL # Allow brace character class list expansion.
-setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents)
- # with the base character.
-setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
-unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
-
-# Jobs
-setopt LONG_LIST_JOBS # List jobs in the long format by default.
-setopt AUTO_RESUME # Attempt to resume existing job before creating a new process.
-setopt NOTIFY # Report status of background jobs immediately.
-unsetopt BG_NICE # Don't run all background jobs at a lower priority.
-unsetopt HUP # Don't kill jobs on shell exit.
-unsetopt CHECK_JOBS # Don't report on jobs when shell exit.
-
-## Termcap
-#if zstyle -t ':prezto:environment:termcap' color; then
-# export LESS_TERMCAP_mb=$'\E[01;31m' # Begins blinking.
-# export LESS_TERMCAP_md=$'\E[01;31m' # Begins bold.
-# export LESS_TERMCAP_me=$'\E[0m' # Ends mode.
-# export LESS_TERMCAP_se=$'\E[0m' # Ends standout-mode.
-# export LESS_TERMCAP_so=$'\E[00;47;30m' # Begins standout-mode.
-# export LESS_TERMCAP_ue=$'\E[0m' # Ends underline.
-# export LESS_TERMCAP_us=$'\E[01;32m' # Begins underline.
-#fi
-
-# Terminal
-#
-
-# Do not override precmd/preexec; append to the hook array.
-autoload -Uz add-zsh-hook
-
-# Sets the tab and window titles before the prompt is displayed.
-#add-zsh-hook precmd _terminal-set-titles-with-path
-
-# Sets the tab and window titles before command execution.
-#add-zsh-hook preexec _terminal-set-titles-with-command
-
-# no terminal input freezing (ctrl + s) and unfreezing (ctrl + q)
-stty -ixon
-
-# Editor
-#
-
-# Beep on error in line editor.
-setopt BEEP
-
-# Treat these characters as part of a word.
-WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
-
-# Use human-friendly identifiers.
-zmodload zsh/terminfo
-typeset -gA key_info
-key_info=(
- 'Control' '\C-'
- 'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd'
- 'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc'
- 'Escape' '\e'
- 'Meta' '\M-'
- 'Backspace' "^?"
- 'Delete' "^[[3~"
- 'F1' "$terminfo[kf1]"
- 'F2' "$terminfo[kf2]"
- 'F3' "$terminfo[kf3]"
- 'F4' "$terminfo[kf4]"
- 'F5' "$terminfo[kf5]"
- 'F6' "$terminfo[kf6]"
- 'F7' "$terminfo[kf7]"
- 'F8' "$terminfo[kf8]"
- 'F9' "$terminfo[kf9]"
- 'F10' "$terminfo[kf10]"
- 'F11' "$terminfo[kf11]"
- 'F12' "$terminfo[kf12]"
- 'Insert' "$terminfo[kich1]"
- 'Home' "$terminfo[khome]"
- 'PageUp' "$terminfo[kpp]"
- 'End' "$terminfo[kend]"
- 'PageDown' "$terminfo[knp]"
- 'Up' "$terminfo[kcuu1]"
- 'Left' "$terminfo[kcub1]"
- 'Down' "$terminfo[kcud1]"
- 'Right' "$terminfo[kcuf1]"
- 'BackTab' "$terminfo[kcbt]"
-)
-
-# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
-# bindkey failure.
-for key in "${(k)key_info[@]}"; do
- if [[ -z "$key_info[$key]" ]]; then
- key_info[$key]='�'
- fi
-done
-
-# Allow command line editing in an external editor.
-autoload -Uz edit-command-line
-zle -N edit-command-line
-
-# Reset to default key bindings.
-bindkey -d
-
-#
-# Vi Key Bindings
-#
-
-# Edit command in an external editor.
-bindkey -M vicmd "v" edit-command-line
-
-# Undo/Redo
-bindkey -M vicmd "u" undo
-bindkey -M vicmd "$key_info[Control]R" redo
-
-if (( $+widgets[history-incremental-pattern-search-backward] )); then
- bindkey -M vicmd "?" history-incremental-pattern-search-backward
- bindkey -M vicmd "/" history-incremental-pattern-search-forward
-else
- bindkey -M vicmd "?" history-incremental-search-backward
- bindkey -M vicmd "/" history-incremental-search-forward
-fi
-
-#
-# Emacs and Vi Key Bindings
-#
-
-for keymap in 'emacs' 'viins'; do
- bindkey -M "$keymap" "$key_info[Home]" beginning-of-line
- bindkey -M "$keymap" "$key_info[End]" end-of-line
-
- bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode
- bindkey -M "$keymap" "$key_info[Delete]" delete-char
- bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char
-
- bindkey -M "$keymap" "$key_info[Left]" backward-char
- bindkey -M "$keymap" "$key_info[Right]" forward-char
-
- # Expand history on space.
- bindkey -M "$keymap" ' ' magic-space
-
- # Clear screen.
- bindkey -M "$keymap" "$key_info[Control]L" clear-screen
-
- # Expand command name to full path.
- for key in "$key_info[Escape]"{E,e}
- bindkey -M "$keymap" "$key" expand-cmd-path
-
- # Duplicate the previous word.
- for key in "$key_info[Escape]"{M,m}
- bindkey -M "$keymap" "$key" copy-prev-shell-word
-
- # Use a more flexible push-line.
- for key in "$key_info[Control]Q" "$key_info[Escape]"{q,Q}
- bindkey -M "$keymap" "$key" push-line-or-edit
-
- # Bind Shift + Tab to go to the previous menu item.
- bindkey -M "$keymap" "$key_info[BackTab]" reverse-menu-complete
-
- # Complete in the middle of word.
- bindkey -M "$keymap" "$key_info[Control]I" expand-or-complete
-
- # Insert 'sudo ' at the beginning of the line.
- bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo
-done
-
-# Set the key layout to vi mode
-bindkey -v
-unset key{,map,bindings}
-
-# History
-#
-# The path to the history file
-HISTFILE="$HOME/.zhistory"
-# The maximum number of events to save in the internal history.
-HISTSIZE=10000
-# The maximum number of events to save in the history file.
-SAVEHIST=10000
-
-# Treat the '!' character specially during expansion.
-setopt BANG_HIST
-# Write the history file in the ':start:elapsed;command' format.
-setopt EXTENDED_HISTORY
-# Write to the history file immediately, not when the shell exits.
-setopt INC_APPEND_HISTORY
-# Share history between all sessions.
-setopt SHARE_HISTORY
-# Expire a duplicate event first when trimming history.
-setopt HIST_EXPIRE_DUPS_FIRST
-# Do not record an event that was just recorded again.
-setopt HIST_IGNORE_DUPS
-# Delete an old recorded event if a new event is a duplicate.
-setopt HIST_IGNORE_ALL_DUPS
-# Do not display a previously found event.
-setopt HIST_FIND_NO_DUPS
-# Do not record an event starting with a space.
-setopt HIST_IGNORE_SPACE
-# Do not write a duplicate event to the history file.
-setopt HIST_SAVE_NO_DUPS
-# Do not execute immediately upon history expansion.
-setopt HIST_VERIFY
-# Beep when accessing non-existent history.
-setopt HIST_BEEP
-
-
-# Directory
-#
-
-# Auto changes to a directory without typing cd.
-setopt AUTO_CD
-# Push the old directory onto the stack on cd.
-setopt AUTO_PUSHD
-# Do not store duplicates in the stack.
-setopt PUSHD_IGNORE_DUPS
-# Do not print the directory stack after pushd or popd.
-setopt PUSHD_SILENT
-# Push to home directory when no argument is given.
-setopt PUSHD_TO_HOME
-# Change directory to a path stored in a variable.
-setopt CDABLE_VARS
-# Auto add variable-stored paths to ~ list.
-setopt AUTO_NAME_DIRS
-# Write to multiple descriptors.
-setopt MULTIOS
-# Use extended globbing syntax.
-setopt EXTENDED_GLOB
-# Do not overwrite existing files with > and >>.
-# Use >! and >>! to bypass.
-unsetopt CLOBBER
-
-
-
-# Externals
-#
-# TODO: Add conditional to check for availability
-
-# Completion
-#
-zmodload zsh/complist
-
-# include completions path in directory
-fpath=(/usr/share/zsh/site-functions/ $fpath)
-
-# Load and initialize the completion system ignoring insecure directories.
-autoload -Uz compinit && compinit -i
-
-#
-# Options
-#
-
-# Complete from both ends of a word.
-setopt COMPLETE_IN_WORD
-# Move cursor to the end of a completed word.
-setopt ALWAYS_TO_END
-# Perform path search even on command names with slashes.
-setopt PATH_DIRS
-# Show completion menu on a successive tab press.
-setopt AUTO_MENU
-# Automatically list choices on ambiguous completion.
-setopt AUTO_LIST
-# If completed parameter is a directory, add a trailing slash.
-setopt AUTO_PARAM_SLASH
-# Do not autoselect the first completion entry.
-unsetopt MENU_COMPLETE
-# Disable start/stop characters in shell editor.
-unsetopt FLOW_CONTROL
-
-#
-# Styles
-#
-
-# Use caching to make completion for commands such as dpkg and apt usable.
-zstyle ':completion::complete:*' use-cache on
-zstyle ':completion::complete:*' cache-path "$HOME/.zcompcache"
-
-# Case-insensitive (all), partial-word, and then substring completion.
-if zstyle -t ':prezto:module:completion:*' case-sensitive; then
- zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
- setopt CASE_GLOB
-else
- zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
- unsetopt CASE_GLOB
-fi
-
-# Group matches and describe.
-zstyle ':completion:*:*:*:*:*' menu select
-zstyle ':completion:*:matches' group 'yes'
-zstyle ':completion:*:options' description 'yes'
-zstyle ':completion:*:options' auto-description '%d'
-zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
-zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
-zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
-zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
-zstyle ':completion:*:default' list-prompt '%S%M matches%s'
-zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
-zstyle ':completion:*' group-name ''
-zstyle ':completion:*' verbose yes
-
-# Fuzzy match mistyped completions.
-zstyle ':completion:*' completer _complete _match _approximate
-zstyle ':completion:*:match:*' original only
-zstyle ':completion:*:approximate:*' max-errors 1 numeric
-
-# Increase the number of errors based on the length of the typed word.
-zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
-
-# Don't complete unavailable commands.
-zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
-
-# Array completion element sorting.
-zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
-
-# Directories
-zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
-zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
-zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
-zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
-zstyle ':completion:*' squeeze-slashes true
-
-# History
-zstyle ':completion:*:history-words' stop yes
-zstyle ':completion:*:history-words' remove-all-dups yes
-zstyle ':completion:*:history-words' list false
-zstyle ':completion:*:history-words' menu yes
-
-# Environmental Variables
-zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
-
-# Populate hostname completion.
-zstyle -e ':completion:*:hosts' hosts 'reply=(
- ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
- ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
- ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
-)'
-
-# Don't complete uninteresting users...
-zstyle ':completion:*:*:*:users' ignored-patterns \
- adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
- dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
- hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
- mailman mailnull mldonkey mysql nagios \
- named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
- operator pcap postfix postgres privoxy pulse pvm quagga radvd \
- rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
-
-# ... unless we really want to.
-zstyle '*' single-ignored show
-
-# Ignore multiple entries.
-zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
-zstyle ':completion:*:rm:*' file-patterns '*:all-files'
-
-# Kill
-zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
-zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
-zstyle ':completion:*:*:kill:*' menu yes select
-zstyle ':completion:*:*:kill:*' force-list always
-zstyle ':completion:*:*:kill:*' insert-ids single
-
-# Man
-zstyle ':completion:*:manuals' separate-sections true
-zstyle ':completion:*:manuals.(^1*)' insert-sections true
-
-# Media Players
-zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
-zstyle ':completion:*:*:mpg321:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
-zstyle ':completion:*:*:ogg123:*' file-patterns '*.(ogg|OGG|flac):ogg\ files *(-/):directories'
-zstyle ':completion:*:*:mocp:*' file-patterns '*.(wav|WAV|mp3|MP3|ogg|OGG|flac):ogg\ files *(-/):directories'
-
-# Mutt
-if [[ -s "$HOME/.mutt/aliases" ]]; then
- zstyle ':completion:*:*:mutt:*' menu yes select
- zstyle ':completion:*:mutt:*' users ${${${(f)"$(<"$HOME/.mutt/aliases")"}#alias[[:space:]]}%%[[:space:]]*}
-fi
-
-# SSH/SCP/RSYNC
-zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
-zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
-zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
-zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
-zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
-zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
-zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
-
-# autosuggestions
-autosuggestions=( "/usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
- "/usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
- "/usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh" )
-for p in ${autosuggestions}; do
- if [ -f "$p" ]; then
- source "$p"
- fi
-done
-ZSH_AUTOSUGGEST_STRATEGY=('history')
-
-# syntax-highlighting
-syntax_highlighting=( "/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
- "/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
- "/usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" )
-for p in ${syntax_highlighting}; do
- if [ -f "$p" ]; then
- source "$p"
- fi
-done
-
-# history-substring-search
-history_substring=( "/usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh"
- "/usr/share/zsh-history-substring-search/zsh-history-substring-search.zsh"
- "/usr/local/share/zsh-history-substring-search/zsh-history-substring-search.zsh" )
-for p in ${history_substring}; do
- if [ -f "$p" ]; then
- source "$p"
- # Vi
- bindkey -M vicmd "k" history-substring-search-up
- bindkey -M vicmd "j" history-substring-search-down
-
- # Emacs and Vi
- for keymap in 'viins'; do
- bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
- bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
- done
- fi
-done
-
-# includes
-for config_file ($HOME/.config/zsh/includes/*.zsh) source $config_file
-
-# use starship for prompt if it exists
-(( ${+commands[starship]} )) && eval "$(starship init zsh)"