speedie-zsh/.config/zsh/dotfiles/.zsh_func
2023-01-23 22:20:43 +01:00

105 lines
4 KiB
Plaintext

# cd into project dir and list files and directories
pro() {
[ -z "$PROJECTDIR" ] && PROJECTDIR="$HOME/Projects"; [ -z "$TOOL" ] && TOOL=fzf
clear; cd "$PROJECTDIR/$($LIST $PROJECTDIR | $TOOL)"
clear; $LIST -lah
}
# cd into dotdir and list files and directories
cdot() {
[ -z "$DOTDIR" ] && DOTDIR="$HOME/.config"; [ -z "$TOOL" ] && TOOL=fzf
command -v "$TOOL" > /dev/null || return
clear; cd "$DOTDIR/$($LIST -a $PROJECTDIR | $TOOL)"
clear; $LIST -lah
}
# list dotfiles
edot() {
command -v fzf > /dev/null || return
DOT="$(printf "nvim config\nnvim init.vim\n.vimrc\n.Xresources\nspeedwmrc\nstatusrc\nspeedwm autostart.sh\nspeedwm options.h\nspeedwm speedwm.c\nspeedwm bar.h\nspeedwm keybinds.h\ndmenu options.h\nmuttrc\nnewsboat urls\nnewsboat config\nvifmrc\nalacritty.yml\n.zsh_alias\n.zsh_export\n.zsh_func\n.zsh_ps\n.zsh_starship\n.zshrc\nsfeedrc\n.mbsyncrc\n" \
| sort | fzf)"
case "$DOT" in
"nvim config") "$EDITOR" "$HOME/.config/nvim/config" ;;
"nvim init.vim") "$EDITOR" "$HOME/.config/nvim/init.vim" ;;
".vimrc") "$EDITOR" "$HOME/.vimrc" ;;
".Xresources") "$EDITOR" "$HOME/.config/.Xresources" ;;
"speedwmrc") "$EDITOR" "$HOME/.config/speedwm/speedwmrc" ;;
"statusrc") "$EDITOR" "$HOME/.config/speedwm/statusrc" ;;
"muttrc") "$EDITOR" "$HOME/.config/mutt/muttrc" ;;
"newsboat urls") "$EDITOR" "$HOME/.config/newsboat/urls" ;;
"newsboat config") "$EDITOR" "$HOME/.config/newsboat/config" ;;
"speedwm autostart.sh") "$EDITOR" "$HOME/.config/speedwm/autostart.sh" ;;
"speedwm options.h") "$EDITOR" "$HOME/Projects/speedwm/options.h" ;;
"speedwm speedwm.c") "$EDITOR" "$HOME/Projects/speedwm/speedwm.c" ;;
"speedwm bar.h") "$EDITOR" "$HOME/Projects/speedwm/bar.h" ;;
"speedwm keybinds.h") "$EDITOR" "$HOME/Projects/speedwm/keybinds.h" ;;
"dmenu options.h") "$EDITOR" "$HOME/Projects/dmenu/options.h" ;;
"vifmrc") "$EDITOR" "$HOME/.config/vifm/vifmrc" ;;
"alacritty.yml") "$EDITOR" "$HOME/.config/alacritty/alacritty.yml" ;;
".zsh_alias") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zsh_alias" ;;
".zsh_export") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zsh_export" ;;
".zsh_func") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zsh_func" ;;
".zsh_ps") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zsh_ps" ;;
".zsh_starship") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zsh_starship" ;;
".zshrc") "$EDITOR" "$HOME/.config/zsh/dotfiles/.zshrc" ;;
"sfeedrc") "$EDITOR" "$HOME/.sfeed/sfeedrc" ;;
".mbsyncrc") "$EDITOR" "$HOME/.mbsyncrc" ;;
*) return 0 ;;
esac
}
# list scripts
escr() {
cdir="$(pwd)"
command -v fzf > /dev/null || return
cd "$HOME"
nvim "$(find "$SCRIPTDIR" -type f -perm /111 -executable | grep -v "[.]git" | sort | fzf)"
cd "$cdir"
}
# list passwords and copy to xclip
lspass() {
command -v pass > /dev/null || exit 1
val="$(/bin/ls $HOME/.password-store | sed "s/[.]gpg//g" | grep -v "\-id" | fzf)"
[ -z "$val" ] && return
echo "$val" | grep -q otp && otp="otp" || otp=nootp
case "$otp" in
"otp") pass otp $val | xclip -selection clipboard && printf "Copied OTP code to clipboard\n" || printf "Failed to copy OTP code to clipboard.\n"; return ;;
"nootp") pass $val | xclip -selection clipboard && printf "Copied password to clipboard\n" || printf "Failed to copy password to clipboard.\n"; return ;;
esac
}
# clear clipboard
clearboard() {
echo "" | xclip -selection clipboard
}
# update starship prompt
update_starship() {
[ "$STARSHIP" != "true" ] && return
clear
curl -sS https://starship.rs/install.sh | $PERM sh
}
# write starship config
write_starship_config() {
[ -z "$PRESETNAME" ] && PRESETNAME="nerd-font-symbols"
starship preset "$PRESETNAME" > "$STARSHIP_CONFIG"
}
# ssh into the server
ssh_server() {
USER="$(head -n 1 ${SERVERDATA})"
IP="$(tail -n 1 ${SERVERDATA})"
ssh ${USER}@${IP}
}
..() {
[ -z "$1" ] && cd .. && return
for i in $(seq $1); do
cd ..
done
}