summaryrefslogtreecommitdiff
path: root/config/essentials/zsh
diff options
context:
space:
mode:
Diffstat (limited to 'config/essentials/zsh')
-rw-r--r--config/essentials/zsh/.zshrc36
-rw-r--r--config/essentials/zsh/aliases.sh (renamed from config/essentials/zsh/aliases.zsh)140
-rw-r--r--config/essentials/zsh/functions.zsh29
3 files changed, 118 insertions, 87 deletions
diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc
index 83da0f6..d8675d4 100644
--- a/config/essentials/zsh/.zshrc
+++ b/config/essentials/zsh/.zshrc
@@ -3,12 +3,9 @@
if [[ "/dev/tty1" = "$TTY" || "/dev/tty2" = "$TTY" ]] && [[ "$(id -u)" -ne 0 ]]
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
if [ "/dev/tty1" = "$TTY" ]
then
- Hyprland > /dev/null 2>&1
+ startw > /dev/null 2>&1
else
startx > /dev/null 2>&1
fi
@@ -28,7 +25,7 @@ zle -N add-surround surround
zle -N change-surround surround
compinit
-if grep -qi "debian\|ubuntu" /etc/os-release 2>/dev/null
+if grep -qi "debian\|ubuntu" /usr/lib/os-release /etc/os-release 2>/dev/null
then
sfiles=(
/usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
@@ -41,7 +38,7 @@ else
fi
sfiles+=(
~/.config/zsh/functions.zsh
- ~/.config/zsh/aliases.zsh
+ ~/.config/zsh/aliases.sh
)
for f in "${sfiles[@]}"; do
test -f "$f" && source "$f"
@@ -67,17 +64,14 @@ bindkey "^['" quote-line
isTextFile()
{
- if [ ! -f "$1" ]
- then
+ [ -f "$1" ] &&
+ # will execute the file, I'd rather not have an error message
+ [ ${1::2} != "./" ] &&
+ [ ${1::1} != "/" ] &&
+ ! type "$1" > /dev/null &&
+ # is text file?
+ file -b --mime-type "$1" | grep -q "^text/" ||
return 1
- fi
-
- file_type=$(file -b --mime-type "$1")
- if [[ "$file_type" == text/* ]]
- then
- return
- fi
- return 1
}
# rehash hook
@@ -113,17 +107,13 @@ function osc7 {
}
add-zsh-hook -Uz chpwd osc7
command_not_found_handler () {
- isTextFile "$1" ||
- echo "zsh: command not found: $1" >&2
-}
-# open file with file name
-open_file() {
- if [ ${1:0:2} != "./" ] && isTextFile "$1"
+ if [[ -o interactive ]] && isTextFile "$1"
then
"$EDITOR" "$1"
+ else
+ echo "zsh: command not found: $1" >&2
fi
}
-add-zsh-hook -Uz preexec open_file
# prompt
PS1=' %B%(#.%F{1}.%F{13})[%n%b%f@%B%F{6}%m]%b%f %3~ '
diff --git a/config/essentials/zsh/aliases.zsh b/config/essentials/zsh/aliases.sh
index 09215b2..0c7c1ac 100644
--- a/config/essentials/zsh/aliases.zsh
+++ b/config/essentials/zsh/aliases.sh
@@ -1,28 +1,48 @@
#!/bin/zsh
# s/alias \([^-]\)/alias -g \1
-if grep -qi "debian\|ubuntu" /etc/os-release 2> /dev/null
+# Zsh specific aliases
+if [ $SHELL = "/bin/zsh" ]
then
- alias aptup='apt update && apt upgrade -y'
-fi
+ # googoo aliases
+ alias o.='o .'
+ alias go.='go .'
+ alias ogo.='ogo .'
+ alias o/='o /'
+ alias o/s='o /srv'
+ alias go/='go /'
+ alias go/s='go /srv'
+ alias ogo/='ogo /'
+ alias ogo/s='ogo /srv'
-if [ "$WAYLAND_DISPLAY" ]
-then
- alias -g clipp='wl-copy -n'
- alias -g clipo='wl-paste -n'
-else
- if which devour > /dev/null 2>&1
+ if [ "$WAYLAND_DISPLAY" ]
then
- alias mpv='devour mpv'
- alias zathura='devour zathura'
+ alias -g clipp='wl-copy -n'
+ alias -g clipo='wl-paste -n'
+ else
+ if which devour > /dev/null 2>&1
+ then
+ alias mpv='devour mpv'
+ alias zathura='devour zathura'
+ fi
+ alias -g clipp='xclip -selection clipboard -r'
+ alias -g clipo='xclip -o -selection clipboard -r'
fi
- alias -g clipp='xclip -selection clipboard -r'
- alias -g clipo='xclip -o -selection clipboard -r'
+ alias clipic='clipo > /tmp/pic.png'
+
+ alias -g '...'='../..'
+ alias -g '....'='../../..'
+ alias -g bg='&; disown'
+ alias -g hl='--help |& less -r'
+fi
+
+
+if grep -qi "debian\|ubuntu" /etc/os-release 2> /dev/null
+then
+ alias aptup='apt update && apt upgrade -y'
fi
-alias clipic='clipo > /tmp/pic.png'
# Programs
-alias vi='nvim'
alias nb='newsboat'
alias sr='surfraw'
alias ccu='calcurse'
@@ -72,6 +92,8 @@ alias dopacs='dopac -S'
alias dopacc='dopac -Sc'
alias doprm='dopac -Rns'
+alias mpkg='makepkg -si'
+
which pikaur > /dev/null 2>&1 &&
alias yay='pikaur'
alias yup='yay -Syu'
@@ -84,6 +106,12 @@ alias yrm='yay -Rns'
alias pkb='pkgfile -b'
+# transmission
+alias trr='transmission-remote debuc.com'
+alias trls='transmission-remote debuc.com -t all -l'
+alias tradd='transmission-remote debuc.com -a'
+alias trclipo='transmission-remote debuc.com -a "$(clipo)"'
+
alias grub-update='doas grub-mkconfig -o /boot/grub/grub.cfg'
# vim
@@ -107,7 +135,8 @@ alias fif='find . -type "f" | grep'
alias fid='find . -type "d" | grep'
alias sxt='sxiv -t'
alias wgsh='wget --quiet --show-progress'
-alias ss4='ss -tln4p | cut -f1 -d,'
+alias wgc='wgsh "$(clipo)"'
+alias ss4='ss -tln4p'
alias mdbw='mariadb -h 0.0.0.0 -u padmin -pbulbizarre padmindb'
alias mdbwa='mariadb -h 10.3.50.5 -u padmin -pbulbizarre padmindb'
@@ -124,11 +153,6 @@ alias qrclipo='qrencode -s 16 "$(clipo)" -o - | imv -w "imv - $(clipo)" -'
alias airpods='bluetoothctl connect 60:93:16:24:00:10'
alias hotpsot='nmcli dev wifi hotspot ifname wlan0 ssid wiefie password "peepeepoopoo"'
alias wtip='wt ip -c -brief addr'
-alias muttmail='echo -n "email set: " >&2
-ls $HOME/.config/mutt/configs |
-fzf |
-tee /dev/stderr |
-xargs -I {} ln -sf "$HOME/.config/mutt/configs/{}" $HOME/.config/mutt/muttrc'
alias fusephone='sshfs myphone: /media/phone'
alias ttyper='ttyper -l english1000 -w 100'
@@ -143,17 +167,12 @@ alias penv='python3 -m venv env'
alias phttp='python3 -m http.server'
alias pipreq='pip install -r requirements.txt'
-alias -g '...'='../..'
-alias -g '....'='../../..'
-alias -g bg='&; disown'
-alias cx='chmod +x'
alias ch='chown ${USER}:${USER} -R'
-alias -g hl='--help |& less -r'
alias kll='killall'
alias pi='ping archlinux.org -c4'
alias sba='source env/bin/activate || source bin/activate'
alias smc='systemctl'
-alias ssc='doas smc'
+alias ssc='doas systemctl'
alias smcu='smc --user'
alias zsr='source ${ZDOTDIR:-$HOME}/.zshrc && rehash'
alias rh='rehash'
@@ -162,6 +181,7 @@ alias dmci="doas make clean install"
alias rmd='rm -f *.{orig,rej}'
alias cdzot='mkdir -p /tmp/zottesite && cd /tmp/zottesite'
alias gdate="date +%y%m%d_%H%M%S"
+alias tpid='tail -f /dev/null --pid'
alias vbm='vboxmanage'
alias vbls='vbm list vms'
@@ -170,59 +190,55 @@ alias vb='vbm startvm'
# quick config
alias ez='$EDITOR ${ZDOTDIR:-$HOME}/.zshrc'
-alias eza='$EDITOR ${ZDOTDIR}/aliases.zsh'
+alias eza='$EDITOR ${ZDOTDIR}/aliases.sh'
alias ezf='$EDITOR ${ZDOTDIR}/functions.zsh'
alias eto='$EDITOR ~/sync/TODO'
-alias edw='$EDITOR ~/src/dwm/config.def.h'
-alias edm='$EDITOR ~/src/dmenu/config.def.h'
+alias edw='$EDITOR ~/proj/suckless/dwm/config.def.h'
+alias edm='$EDITOR ~/proj/suckless/dmenu/config.def.h'
alias ehst='$EDITOR $ZDOTDIR/histfile'
alias ezh=' $EDITOR $HISTFILE'
-alias est='$EDITOR ~/src/st/config.def.h'
-alias esl='$EDITOR ~/src/slock/config.def.h'
-alias esls='$EDITOR ~/src/slstatus/config.def.h'
+alias est='$EDITOR ~/proj/suckless/st/config.def.h'
+alias esl='$EDITOR ~/proj/suckless/slock/config.def.h'
+alias esls='$EDITOR ~/proj/suckless/slstatus/config.def.h'
alias ehy='$EDITOR ~/.config/hypr/hyprland.conf'
alias cfd='$EDITOR config.def.h'
-# quick cd
+# /# quick cd jV}k:!sort -t "'" -k 2
+alias cdl='cd $HOME/dl'
+alias cdoc='cd $HOME/docs'
alias cda='cd $HOME/docs/android/projects'
+alias cdm='cd $HOME/music'
+alias cdp='cd $HOME/pics'
+alias cdpa='cd $HOME/pics/ai-outputs/'
+alias cdpp='cd $HOME/proj/personal/'
+alias chom='cd $HOME/proj/personal/homepage'
+alias lov='cd $HOME/proj/personal/lola'
+alias cdsw='cd $HOME/proj/personal/WheelAdvisor'
+alias cddm='cd $HOME/proj/suckless/dmenu'
+alias cdw='cd $HOME/proj/suckless/dwm'
+alias cdslo='cd $HOME/proj/suckless/slock'
+alias cdsl='cd $HOME/proj/suckless/slstatus'
+alias cdst='cd $HOME/proj/suckless/st'
+alias cdsta='cd $HOME/proj/suckless/stable-diffusion-webui'
+alias cdsu='cd $HOME/proj/suckless/surf'
alias cds='cd $HOME/src/'
-alias cdsw='cd $HOME/src/WheelAdvisor'
-alias cdw='cd $HOME/src/dwm'
-alias cddm='cd $HOME/src/dmenu'
-alias cdslo='cd $HOME/src/slock'
-alias cdsl='cd $HOME/src/slstatus'
-alias cdst='cd $HOME/src/st'
-alias cdsta='cd $HOME/src/stable-diffusion-webui'
-alias cdl='cd $HOME/dl'
+alias cdsb='cd $HOME/src/build'
+alias cdsc='cd $HOME/src/comfyui/'
alias cdo='cd $HOME/src/dotfiles'
-alias cdoc='cd $HOME/docs'
alias cdi='cd $HOME/src/installdrier'
alias cdia='cd $HOME/src/installdrier/arch'
alias cdib='cd $HOME/src/installdrier/deb'
-alias cdm='cd $HOME/music'
-alias cdd='cd $HOME/dl'
-alias cdp='cd $HOME/pics'
-alias cdrs='cd /srv/'
-alias cdng='cd /etc/nginx'
alias czo='cd $HOME/zot/'
+alias cdpw='cd ${PASSWORD_STORE_DIR:-$HOME/.password-store}'
+alias cdng='cd /etc/nginx'
+alias cdrs='cd /srv/'
-# googoo aliases
-alias o.='o .'
-alias go.='go .'
-alias ogo.='ogo .'
-alias o/='o /'
-alias o/s='o /srv'
-alias go/='go /'
-alias go/s='go /srv'
-alias ogo/='ogo /'
-alias ogo/s='ogo /srv'
-
+# fzf aliases
alias fzps='ps aux | tail +2 | fzf | tee /dev/stderr | awk '\''{print $2}'\'' | clipp'
alias asf='alias | fzf'
alias fzh="tac $HISTFILE | fzf | tee /dev/stderr | clipp"
+alias ffwin='hyprctl clients -j | jq '\''.[].pid'\'' | fzf --preview "hyprctl clients -j | jq '\''.[] | select(.pid == {}) | {class, title, workspace, xwayland}'\''"'
alias pff='find ${PASSWORD_STORE_DIR:=$HOME/src/password-store/} -name "*.gpg" | sed -e "s@$PASSWORD_STORE_DIR/@@" -e '\''s/\.gpg$//'\'' | fzf | xargs pass show -c'
-
-alias -s zip='unzip -l'
-alias -s tar='tar tf'
+alias fzps='fzf --print0 | xargs -0I{}'
alias dcb='docker build'
alias dcbt='docker build -t'
diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh
index 487c247..671e6fb 100644
--- a/config/essentials/zsh/functions.zsh
+++ b/config/essentials/zsh/functions.zsh
@@ -2,7 +2,7 @@
die ()
{
- echo "$1" >&2
+ echo "$@" >&2
}
awnk() {
@@ -72,7 +72,8 @@ ipc ()
calc () { echo "$@" | bc -l }
unique () {
- f="/tmp/$(uuidgen)"
+ local f
+ f="$(mktemp)"
awk '!x[$0]++' "$1" > "$f"
mv "$f" "$1"
}
@@ -261,3 +262,27 @@ sms ()
{
ssh phone sendmsg "$1" "'$2'"
}
+
+trcp ()
+{
+ scp "$1" db:/media/basilisk/downloads/transmission/torrents/
+}
+
+muttmail ()
+{
+ die -n "email set: "
+ ls $HOME/.config/mutt/configs |
+ fzf |
+ tee /dev/stderr |
+ xargs -I {} ln -sf "$HOME/.config/mutt/configs/{}" $HOME/.config/mutt/muttrc
+ die -n 'Press [Enter to login]'
+ read && mutt
+}
+
+resize ()
+{
+ test $# -lt 2 &&
+ printf "usage: %s <format> <file> [out]\n" "$0" >&2 &&
+ return 1
+ convert -resize $1^ -gravity center -crop $1+0+0 -- "$2" "${3:-$1}"
+}