dotfiles/.zshrc

94 lines
2.8 KiB
Bash

# Path to your oh-my-zsh installation.
export ZSH=/usr/share/oh-my-zsh
# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="true"
# Disable auto-update
zstyle ':omz:update' mode disabled
# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
HIST_STAMPS="dd.mm.yyyy"
# Global history search
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
# acs command → print aliases by group
aliases
colored-man-pages
# cat with colors → ccat or cless
colorize
# commands to copy file content or absolute path to clipboard
copyfile
copypath
# cpv command which uses rsync
cp
# docker autocomplete
docker
# unique command for most archives
extract
# fish-like highlighting as you type
fast-syntax-highlighting
# fuzzy finder for history, files, docker, process, etc (see fzf)
fzf-zsh-plugin
# aliases
git
# password-store autocomplete
pass
# fish-like completion as you type
zsh-autosuggestions
)
# Enable option stacking in autocomplete, i.e. docker run -it <TAB>
zstyle ':completion:*:*:docker:*' option-stacking yes
zstyle ':completion:*:*:docker-*:*' option-stacking yes
# Load ZSH
source $ZSH/oh-my-zsh.sh
# Use Quick Term prompt theme made for Oh My Posh, in zsh
eval "$(oh-my-posh init zsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/quick-term.omp.json)"
# And use Catppuccin Mocha theme for ZSH fast hightlight plugin (LOCAL means searching in /usr/local/fsh)
fast-theme LOCAL:catppuccin-mocha >/dev/null
# Preferred editor for local and remote sessions
export EDITOR=vim
# Do not print user@hostname if user is myself
DEFAULT_USER=`whoami`
# To use when .cfg contains a bare git repo.
# See this https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
config config --local status.showUntrackedFiles no
# Use GPG key for SSH authentication
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
export GPG_TTY="$(tty)"
gpg-connect-agent updatestartuptty /bye >/dev/null
# Source aliases
if [ -f ~/.aliases ]; then
. ~/.aliases
fi
# Source environment variables
if [ -f ~/.env ]; then
. ~/.env
fi