This repository has been archived on 2024-03-28. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/shell/funcs

101 lines
2.1 KiB
Bash

#!/usr/bin/env bash
calc() {
tp="$*"
python -c "print(${tp})"
}
export -f calc
stopbar() {
# TODO: get the proper monitor!
BAR_MONITOR="$(polybar --list-monitors | tail -n 1 | sed -n 's/^\s*\(.*\):.*$/\1/p')"
bspc config -m "${BAR_MONITOR}" bottom_padding "0"
bspc config -m "${BAR_MONITOR}" top_padding "0"
killall -q polybar
while pgrep -x polybar >/dev/null; do sleep 1; done
}
export -f stopbar
# wm aliases
startbar() {
bash "${DOTFILES_PATH}/de/bar/bar.bash" &
bg
disown
}
export -f startbar
restartbar() {
stopbar
startbar
}
export -f restartbar
screenshot() {
SCROT_DIR="$NICE_HOME/img/scrots/"
mkdir -p "$SCROT_DIR"
FILENAME="$NICE_HOME/img/scrots/%Y-%m-%d_%H-%M-%S_\$wx\$h.png"
scrot "$@" "${FILENAME}" >/dev/null && echo "Saved screenshot to: ${FILENAME}"
}
export -f screenshot
editscrot() {
SCROT_DIR="$NICE_HOME/img/scrots/"
LATEST_SCROT="$(\ls -Art "${SCROT_DIR}" | tail -n 1)"
krita "${SCROT_DIR}${LATEST_SCROT}"
}
n() {
SUBDIR="${2:-}"
mkdir -p "$NOTES_PATH/$SUBDIR"
"$EDITOR" "$NOTES_PATH/$SUBDIR/$(date +%Y-%m-%d)_$1.md"
}
export -f n
s() {
"$EDITOR" "$NOTES_PATH/_scratch.md"
}
export -f s
# save the current directory for later retrieval
scwd() {
addon=""
if [[ -n $1 ]]; then
addon="-${1}"
fi
echo "${PWD}" > "${DOTFILES_PATH}/.cwd${addon}.tmp"
}
export -f scwd
# bind '"\C-s"':"\"scwd\C-m\""
# go to the saved current directory
gcwd() {
addon=""
if [[ -n $1 ]]; then
addon="-${1}"
fi
cd "$(cat "${DOTFILES_PATH}/.cwd${addon}.tmp")" || return
}
export -f gcwd
# bind '"\C-g"':"\"gcwd\C-m\""
fsw() {
SHELL_COMMAND="${1}"
shift
inotifywait -q -m -e close_write -r "${@}" | while read -r _ _; do
eval "${SHELL_COMMAND}"
done
}
export -f fsw
# tmux session switcher with fzf from https://github.com/junegunn/fzf/issues/997
tmuxswitcher() {
local -r fmt='#{session_id}:|#S|(#{session_attached} attached)'
{ tmux display-message -p -F "$fmt" && tmux list-sessions -F "$fmt"; } \
| awk '!seen[$1]++' \
| column -t -s'|' \
| fzf -q '$' --reverse --prompt 'switch session: ' -1 \
| cut -d':' -f1 \
| xargs tmux switch-client -t
}
export -f tmuxswitcher