summaryrefslogtreecommitdiff
path: root/config/essentials/zsh
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-03-12 18:35:36 +0100
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-03-12 18:35:36 +0100
commitdef003a709daac88d91499f50e9d3fd246ee3db2 (patch)
tree6b18eec5e30f300bca47cf3b8bd89cab12627def /config/essentials/zsh
parente1b3f28bb1f8f1f9084ae96aa5ef79d39769049f (diff)
parentfab8d61418e2652881a56b586588f3373df5f971 (diff)
Merge remote-tracking branch 'refs/remotes/origin/main'
Diffstat (limited to 'config/essentials/zsh')
-rw-r--r--config/essentials/zsh/.zshrc99
-rw-r--r--config/essentials/zsh/aliases.zsh23
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"