diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-03-12 18:35:36 +0100 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-03-12 18:35:36 +0100 |
commit | def003a709daac88d91499f50e9d3fd246ee3db2 (patch) | |
tree | 6b18eec5e30f300bca47cf3b8bd89cab12627def /config/essentials/zsh | |
parent | e1b3f28bb1f8f1f9084ae96aa5ef79d39769049f (diff) | |
parent | fab8d61418e2652881a56b586588f3373df5f971 (diff) |
Merge remote-tracking branch 'refs/remotes/origin/main'
Diffstat (limited to 'config/essentials/zsh')
-rw-r--r-- | config/essentials/zsh/.zshrc | 99 | ||||
-rw-r--r-- | config/essentials/zsh/aliases.zsh | 23 |
2 files changed, 115 insertions, 7 deletions
diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc new file mode 100644 index 0000000..dd52e5e --- /dev/null +++ b/config/essentials/zsh/.zshrc @@ -0,0 +1,99 @@ +#!/bin/zsh + +if [ ! $(pgrep Xorg) ] && [ "tty1" = "$(basename $(tty))" ] +then + clear + eval "$(keychain --dir "$XDG_CONFIG_HOME/keychain" --eval --quiet --agents gpg 3A626DD20A32EB2E5DD9CE71CFD9ABC97158CD5D 2> /dev/null)" + eval "$(keychain --dir "$XDG_CONFIG_HOME/keychain" --noask --eval --quiet --agents ssh 2> /dev/null)" + clear + startx 2&> /dev/null + exit +fi + +autoload -U select-word-style +autoload -z edit-command-line +zle -N edit-command-line +zstyle ':compinstall' filename '/home/aluc/.zshrc' +zstyle ':completion:*' menu select +autoload -Uz compinit +compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION +autoload -Uz surround +zle -N delete-surround surround +zle -N add-surround surround +zle -N change-surround surround +compinit + +for f in \ + /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh \ + /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh \ + ~/.config/zsh/functions.zsh \ + ~/.config/zsh/aliases.zsh +do + test -f $f && source $f +done + +bindkey -v +bindkey -a cs change-surround +bindkey -a ds delete-surround +bindkey -a ys add-surround +bindkey -M visual S add-surround +bindkey "^A" beginning-of-line +bindkey "^E" end-of-line +bindkey '^I' expand-or-complete-prefix # necessary for completeinword +bindkey '^Y' autosuggest-accept +bindkey "^K" kill-line +bindkey "^P" up-line-or-history +bindkey "^N" down-line-or-history +bindkey "^V" quoted-insert +bindkey "^Xa" _expand_alias +bindkey "^Xe" edit-command-line +bindkey "^[." insert-last-word +bindkey "^['" quote-line + +# pacman synced rehash +zshcache_time="$(date +%s%N)" +autoload -Uz add-zsh-hook +rehash_precmd() { + if [[ -a /var/cache/zsh/pacman ]]; then + local paccache_time="$(date -r /var/cache/zsh/pacman +%s%N)" + if (( zshcache_time < paccache_time )); then + rehash + zshcache_time="$paccache_time" + fi + fi +} +add-zsh-hook -Uz precmd rehash_precmd + +# prompt +PS1=' %B%(#.%F{1}.%F{13})[%n%b%f@%B%F{6}%m]%b%f %3~ ' +RPROMPT='%F{blue}$(parse_git_remote)%f%F{red}$(parse_git_status)%f%F{green}$(parse_git_branch)%f%(?.. %?)' + +setopt prompt_subst +parse_git_remote() { + b="$(git branch -v 2> /dev/null | grep "^*" | sed 's/.\+\[\([^ ]\+\).*$/\1/')" + if [ "$b" = "behind" ] + then + echo -n "↓ " + elif [ "$b" = "ahead" ] + then + echo -n "↑ " + fi +} +parse_git_branch() { + git symbolic-ref --short HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null +} +parse_git_status() { + git status --short 2> /dev/null | head -n1 | awk '{print $1 " "}' +} + +# Options +setopt correct +setopt nonomatch +setopt autocd +setopt completeinword +setopt extendedglob +setopt histignorealldups +setopt histreduceblanks +setopt interactivecomments +setopt notify +setopt cdablevars diff --git a/config/essentials/zsh/aliases.zsh b/config/essentials/zsh/aliases.zsh index 01a7fec..a45a684 100644 --- a/config/essentials/zsh/aliases.zsh +++ b/config/essentials/zsh/aliases.zsh @@ -7,6 +7,8 @@ alias -g nb='newsboat' alias -g sr='surfraw' alias -g ccu='calcurse' +alias arduino-cli='arduino-cli --config-file $XDG_CONFIG_HOME/arduino15/arduino-cli.yaml' + if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" # alias ls='ls -h --color --group-directories-first' @@ -20,6 +22,7 @@ if [ -x /usr/bin/dircolors ]; then fi alias -g l='ls -l' +alias -g l1='ls -1' alias -g ll='ls -la' alias -g la='ls -aF' alias -g lst='ls --tree' @@ -89,7 +92,6 @@ alias vidlen='ffprobe -show_entries format=duration -v quiet -of csv="p=0" -i' alias whatsmyip='curl "ifconfig.me"' alias icognito='unset HISTFILE' alias penv='python -m venv' -alias ytclipo='yt-dlp "$(xclip -sel c -o)" -f "b" -S "res:720" -P $HOME/movies -o "%(title)s.%(ext)s"' alias -g '...'='../..' alias -g '....'='../../..' @@ -101,23 +103,30 @@ alias -g pi='ping archlinux.org -c4' alias -g sba='source bin/activate' alias -g smc='systemctl' alias -g smcu='systemctl --user' -alias zsr='source ~/.zshrc && rehash' +alias zsr='source ${ZDOTDIR:-$HOME}/.zshrc && rehash' alias -g wf='doas wipefs -a' alias -g dmci="doas make clean install" # quick config -alias -g ez='$EDITOR ~/.zshrc' -alias -g eza='$EDITOR ~/.config/zsh/aliases.zsh' +alias -g ez='$EDITOR ${ZDOTDIR:-$HOME}/.zshrc' +alias -g eza='$EDITOR ${ZDOTDIR}/aliases.zsh' alias -g eto='$EDITOR ~/sync/TODO' alias -g edw='$EDITOR ~/src/dwm/config.def.h' alias -g edm='$EDITOR ~/src/dmenu/config.def.h' alias -g est='$EDITOR ~/src/st/config.def.h' alias -g esl='$EDITOR ~/src/slock/config.def.h' alias -g cfdef='$EDITOR config.def.h' +alias -g cdo='$HOME/src/dotfiles' -alias -g ff='`fzffile`' -alias -g fd='`fzfdir`' -alias -g fdf='`fzfdirfile`' +alias -g ff='"`fzffile`"' +alias -g fd='"`fzfdir`"' +alias -g fdf='"`fzfdirfile`"' +alias fzps='ps aux | tail +2 | fzf --bind \ +"1:execute(echo -n {} | awk '\''{print \$1}'\'' | xclip -sel c -r),\ +2:execute(echo -n {} | awk '\''{print \$2}'\'' | xclip -sel c -r),\ +3:execute(echo -n {} | awk '\''{print \$7}'\'' | xclip -sel c -r),\ +4:execute(echo -n {} | awk '\''{print \$9}'\'' | xclip -sel c -r),\ +5:execute(echo -n {} | tr -s '\'' '\'' | cut -f 11- -d '\'' '\'' | xclip -sel c -r)"' alias -s conf="$EDITOR" alias -s txt="$EDITOR" |