diff options
Diffstat (limited to '.config/shell/.zshrc')
| -rw-r--r-- | .config/shell/.zshrc | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/.config/shell/.zshrc b/.config/shell/.zshrc new file mode 100644 index 0000000..ab33aa5 --- /dev/null +++ b/.config/shell/.zshrc @@ -0,0 +1,120 @@ +# source zsh extensions (order is important) +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source ~/.config/shell/git-prompt.zsh +source ~/.config/shell/git-prompt_examples/kj_sh604.zsh + + +# configure history settings +HISTFILE=~/.local/state/shell/zsh_history +HISTSIZE=9223372036854775804 +SAVEHIST=9223372036854775804 + +# aliases + # personal aliases + alias ls="ls --group-directories-first -h -p --color -F" + alias s="cd ~/.local/bin && ls" + alias d="disown" + alias c="cal" + alias w="curl wttr.in" + alias x="startx" + alias t="timedatectl" + alias p="command yay" + alias pu="command yay -Syyu --answerclean yes --rebuildall --noconfirm" + alias yay="echo" + alias neofetch="alsi" + + # youtube-dl aliases + alias yt-mp4="youtube-dl -cif 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'" + alias yt-webm="youtube-dl -cif 'bestvideo[ext=webm]+bestaudio[ext=webm]/best[ext=webm]/best'" + alias yt-m4a="youtube-dl -cif 'bestaudio[ext=m4a]'" + + # pomodoro timer aliases + alias work="timer 30m && notify-send \ + 'Pomodoro' 'Work Timer is up! Take a Break 😊' -i \ + ~/.cache/pomo/pomo-tomato.png -t 30000 -w -A 'Dismiss'\ + & disown; mpv '/home/kylert/.cache/pomo/pomo-sound.mp3'" + + alias rest="timer 10m && notify-send \ + 'Pomodoro' 'Break is over! Get back to work 😬' -i \ + ~/.cache/pomo/pomo-tomato.png -t 30000 -w -A 'Dismiss'\ + & disown; mpv '/home/kylert/.cache/pomo/pomo-sound.mp3'" + + # experimental rust-uutits substitutions for testing + alias basenc=uu-basenc + alias groups=uu-groups + alias hostname=uu-hostname + alias join=uu-join + alias kill=uu-kill + alias pathchk=uu-pathchk + alias realpath=uu-realpath + alias touch=uu-touch + +# pfetch stuff +export PF_INFO="ascii title os kernel uptime pkgs memory" + +# initiate the prompt configuration with color support +autoload -Uz colors && colors + +# load auto/tab completion and include hidden files +autoload -Uz compinit +zstyle ':completion:*' menu select +zmodload zsh/complist +compinit +_comp_options+=(globdots) + +# opt-in for automatic directory navigation and disallow terminal freeze via ctrl-s +setopt AUTO_CD NO_FLOW_CONTROL +setopt INTERACTIVE_COMMENTS + +# enable vi mode and setup keys for tab completion +bindkey -v +export KEYTIMEOUT=1 +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 +bindkey -v '^?' backward-delete-char + +# edit line in vim with ctrl-e +autoload -Uz edit-command-line; zle -N edit-command-line +bindkey '\ee' edit-command-line +bindkey -M vicmd '^[[P' vi-delete-char +bindkey -M vicmd '\ee' edit-command-line +bindkey -M visual '^[[P' vi-delete + +# cursor shape settings for vi modes +function zle-keymap-select() { + case $KEYMAP in + vicmd) + print -n '\e[2 q' + ;; + viins|main) + print -n '\e[6 q' + ;; + esac +} +zle -N zle-keymap-select + +zle-line-init() { + zle -K viins + print -n "\e[6 q" +} +zle -N zle-line-init +print -n '\e[6 q' + +# disable blinking cursor after each command execution +function disable_blinking_cursor() { + print -n '\e[0 q' +} +precmd_functions+=(disable_blinking_cursor) +disable_blinking_cursor + +# less termcap variables (for colored man pages) +export LESS_TERMCAP_mb=$'\e[1;32m' +export LESS_TERMCAP_md=$'\e[1;32m' +export LESS_TERMCAP_me=$'\e[0m' +export LESS_TERMCAP_se=$'\e[0m' +export LESS_TERMCAP_so=$'\e[01;31m' +export LESS_TERMCAP_ue=$'\e[0m' +export LESS_TERMCAP_us=$'\e[1;4;33m' |
