chezmoi/dot_zshrc.tmpl
2023-08-23 09:44:16 +02:00

161 lines
5.6 KiB
Cheetah
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# set wayland specific settings
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
# make firefox work
export MOZ_ENABLE_WAYLAND=1
# make idea work
wmname LG3D
fi
# To check
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Path to your oh-my-zsh installation.
# WSL2 would be Ubuntu, ohmyzsh is installed in userfolder
{{ if or (contains "WSL2" .chezmoi.kernel.osrelease) (contains "microsoft-standard" .chezmoi.kernel.osrelease) }}
ZSH=~/.oh-my-zsh/
{{ else }}
ZSH=/usr/share/oh-my-zsh/
{{ end }}
# Zsh history
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=100000
# Zsh options
# Use invalid command as a directory if applicable and cd to it
setopt autocd
# Treat the #, ~ and ^ characters as part of patterns for filename generation, etc. (An initial unquoted ~ always produces named directory expansion.)
setopt extendedglob
# If a pattern for filename generation has no matches, print an error, instead of leaving it unchanged in the argument list. This also applies to file expansion of an initial ~ or =.
setopt nomatch
# Report the status of background jobs immediately, rather than waiting until just before printing a prompt.
setopt notify
# Beep on error
unsetopt beep
# The following lines were added by compinstall
zstyle :compinstall filename '/home/joachim/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
# load zgenom
source "${HOME}/.zgenom/zgenom.zsh"
# Check for plugin and zgenom updates every 7 days
# This does not increase the startup time.
zgenom autoupdate
# if the init script doesn't exist
if ! zgenom saved; then
# specify plugins here
zgenom ohmyzsh
zgenom ohmyzsh plugins/git
zgenom ohmyzsh plugins/sudo
zgenom ohmyzsh plugins/docker
zgenom ohmyzsh plugins/docker-compose
zgenom load zsh-users/zsh-syntax-highlighting
# load powerlevel10k
zgenom load romkatv/powerlevel10k powerlevel10k
# Provide tips about aliases, give hint when using a command that has one
zgenom load djui/alias-tips
# This ZSH plugin enables using fzf to search your command history and do file searches.
zgenom load unixorn/fzf-zsh-plugin
# search in zsh history
zgenom load zsh-users/zsh-history-substring-search
# generate the init script from plugins above
zgenom save
fi
# Aliases
alias rm="rm -v"
alias vi="vim"
alias cp="cp -v"
alias mv="mv -v"
alias ls="ls $LS_OPTIONS -hFtr"
alias ll="ls $LS_OPTIONS -lAhFtr"
alias ccat="pygmentize -O style=monokai -f 256 -g"
alias dig="dig +nocmd any +multiline +noall +answer"
alias prettyjson='python -m json.tool'
# aliases to quickly switch between two keyboard layouts
#alias aoeu="setxkbmap us"
#alias asdf="setxkbmap dvorak"
disable -r time # disable shell reserved word
alias time='time -p ' # -p for POSIX output
# git shortcuts - probably supplanted by the zsh git plugin, to check
# alias gac="git add -A && git commit -a"
# check for the docker plugin of zsh?
# alias dddu="docker-compose down && docker-compose up -d"
# yank the last command from history into the clipboard
alias yk="cat ~/.zsh_history | tail -n 2 | head -n 1 | cut -d ';' -f 2- | xclip -selection clipboard"
# add space after sudo to make it consider aliases, other 'sudo vi' would fail for not aliasing to vim
alias sudo="sudo "
# PATH modifications
export PATH=$HOME/.config/emacs/bin:$PATH
export PATH=/home/joachim/.local/share/gem/ruby/3.0.0/bin:$PATH
# add my own scripts to the path
export PATH=$HOME/scripts:$PATH
# set firefox as default browser
xdg-settings set default-web-browser firefox.desktop
# Bindings
bindkey -v
# This fixed "can't backspace after switching from normal to insert mode"
bindkey -v '^?' backward-delete-char
# must be after -v
# enable backwards search with ctrl-r
bindkey '^R' history-incremental-search-backward
bindkey "^R" history-incremental-pattern-search-backward
bindkey "^F" history-incremental-pattern-search-forward
# sway fixes for screensharing
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/%22It-doesn't-work%22-Troubleshooting-Checklist
export XDG_CURRENT_DESKTOP=sway
export MOZ_ENABLE_WAYLAND=1
# doing this in sway config now
#dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
# this supposedly fixes the slow pasting into shell
# zstyle ':bracketed-paste-magic' active-widgets '.self-*'
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
# If we're in graphical environment, run full flavour. Otherwise, 8-bit ASCII.
#if [[ -n $DISPLAY ]]; then
# [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
#else
# [[ ! -f ~/.p10k.console.zsh ]] || source ~/.p10k.console.zsh
#fi
# got to source this fzf file manually?
[[ ! -f ~/.fzf/fzf.zsh ]] || source ~/.fzf/fzf.zsh
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh