Initial version of the shells' dotfiles
- add config files for both bash and zsh - as some utilities regard git to be present, git's config files are included as well
This commit is contained in:
parent
c90d4825a7
commit
9c4ea2ecfe
17 changed files with 2855 additions and 0 deletions
177
.zshrc
Normal file
177
.zshrc
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
# Executed by zsg when a non-login shell starts
|
||||
|
||||
|
||||
# Ensure zsh is running interactively
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
|
||||
# Check if a command can be found on the $PATH
|
||||
command_exists() {
|
||||
command -v "$1" 1>/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
|
||||
# ==================
|
||||
# Base Configuration
|
||||
# ==================
|
||||
|
||||
|
||||
# Enable Powerlevel10k instant prompt
|
||||
if [ -r "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/p10k-instant-prompt-${(%):-%n}.zsh" ]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
|
||||
# Enable colors and change prompt
|
||||
autoload -Uz colors
|
||||
colors
|
||||
|
||||
# Enable VI mode
|
||||
bindkey -v
|
||||
|
||||
# If an entered command does not exist per se
|
||||
# but is the name of a folder instead, go there.
|
||||
setopt AUTO_CD
|
||||
|
||||
# Treat "#", "~", and "^" as part of patterns for filename generation
|
||||
setopt EXTENDEDGLOB
|
||||
# Warn if there are no matches
|
||||
setopt NOMATCH
|
||||
|
||||
# Silence the shell
|
||||
setopt NO_BEEP
|
||||
|
||||
# Report status of background jobs immediately
|
||||
setopt NOTIFY
|
||||
|
||||
# Remove all "built-in" aliases
|
||||
unalias -a
|
||||
|
||||
|
||||
|
||||
# =======
|
||||
# History
|
||||
# =======
|
||||
|
||||
|
||||
# Cannot be set in `~/.profile` due to conflict with `bash` (same env variable)
|
||||
export HISTFILE="$HOME/.zsh_history"
|
||||
|
||||
|
||||
|
||||
# =========================
|
||||
# Shell Utilities & Aliases
|
||||
# =========================
|
||||
|
||||
|
||||
source "$HOME/.config/shell/utils.sh"
|
||||
source "$HOME/.config/shell/aliases.sh"
|
||||
|
||||
|
||||
# Defined here as it cannot be in `aliases.sh` due to a dependency with `~/.bashrc`
|
||||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
||||
|
||||
|
||||
|
||||
# ===============
|
||||
# zplug & Plugins
|
||||
# ===============
|
||||
|
||||
|
||||
source "$ZSH/oh-my-zsh.sh"
|
||||
source "$HOME/.zplug/init.zsh" # config in `~/.zshenv`
|
||||
|
||||
|
||||
# Load all zsh plugins with `zplug`
|
||||
|
||||
# Must use double quotes in this section
|
||||
# Source: https://github.com/zplug/zplug#example
|
||||
|
||||
# Make zplug manage itself like a plugin
|
||||
# Source: https://github.com/zplug/zplug#let-zplug-manage-zplug
|
||||
zplug "zplug/zplug", hook-build:"zplug --self-manage"
|
||||
|
||||
zplug "MichaelAquilina/zsh-you-should-use" # config in `~/.zshenv`
|
||||
|
||||
zplug "zsh-users/zsh-autosuggestions" # config in `~/.zshenv`
|
||||
zplug "zsh-users/zsh-history-substring-search" # config in `~/.zshenv`; there are key bindings below
|
||||
zplug "zsh-users/zsh-syntax-highlighting"
|
||||
|
||||
zplug "plugins/command-not-found", from:oh-my-zsh
|
||||
zplug "plugins/dotenv", from:oh-my-zsh
|
||||
zplug "plugins/dirhistory", from:oh-my-zsh
|
||||
zplug "plugins/git-escape-magic", from:oh-my-zsh
|
||||
zplug "plugins/jsontools", from:oh-my-zsh
|
||||
zplug "plugins/z", from:oh-my-zsh
|
||||
|
||||
zplug "romkatv/powerlevel10k", as:theme, depth:1
|
||||
|
||||
zplug load
|
||||
|
||||
|
||||
|
||||
# ===============
|
||||
# Zsh Completions
|
||||
# ===============
|
||||
|
||||
|
||||
# Initialize zsh's completions
|
||||
# NOTE: This is already done with `~/.oh-my-zsh.sh` above
|
||||
# autoload -Uz compinit
|
||||
# compinit -u -d "$ZSH_COMPDUMP"
|
||||
|
||||
# Enable match highlighting and scrolling through long lists,
|
||||
# and provide a different style of menu completion
|
||||
zmodload zsh/complist
|
||||
|
||||
# Include hidden files in tab completion
|
||||
_comp_options+=(GLOB_DOTS)
|
||||
|
||||
# Enable arrow-key driven interface
|
||||
zstyle ':completion:*' menu select
|
||||
|
||||
# Make compinit find new executables right away
|
||||
zstyle ':completion:*' rehash true
|
||||
|
||||
# Enable grouping and group headers
|
||||
zstyle ':completion:*:descriptions' format '%B%d%b'
|
||||
zstyle ':completion:*:messages' format '%d'
|
||||
zstyle ':completion:*:warnings' format 'No matches for: %d'
|
||||
zstyle ':completion:*' group-name ''
|
||||
|
||||
|
||||
|
||||
# ============
|
||||
# Key Bindings
|
||||
# ============
|
||||
|
||||
# zsh-autosuggestions plugin
|
||||
bindkey "^ " autosuggest-accept
|
||||
|
||||
# Enable Ctrl-R
|
||||
bindkey "^R" history-incremental-search-backward
|
||||
|
||||
# Use VI keys to navigate the completions in the menu
|
||||
bindkey -M menuselect 'h' vi-backward-char
|
||||
bindkey -M menuselect 'k' vi-up-line-or-history
|
||||
bindkey -M menuselect 'l' vi-forward-char
|
||||
bindkey -M menuselect 'j' vi-down-line-or-history
|
||||
|
||||
# history-substring-search plugin
|
||||
# Source: https://github.com/zsh-users/zsh-history-substring-search#usage
|
||||
# Normal mode
|
||||
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
||||
bindkey "$terminfo[kcud1]" history-substring-search-down
|
||||
# VI mode
|
||||
bindkey -M vicmd 'k' history-substring-search-up
|
||||
bindkey -M vicmd 'j' history-substring-search-down
|
||||
|
||||
|
||||
|
||||
# =====
|
||||
# Other
|
||||
# =====
|
||||
|
||||
# Enable Powerlevel10k "full" prompt
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
Loading…
Add table
Add a link
Reference in a new issue