From b28306573004c1538eacc55328e672aa8d101230 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sat, 11 Nov 2023 10:48:37 +0100 Subject: added choosing when no argument provided --- config/essentials/zsh/functions.zsh | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'config/essentials/zsh/functions.zsh') diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 4145813..8d464e3 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -242,7 +242,14 @@ pacsize() mime-default () { + local mime + [ "${mime:=$1}" ] || + mime="$(find /usr/share/applications/ -iname '*.desktop' -printf '%f\n' | + sed 's/\.desktop$//' | + fzf)" + logn "Setting '$1' as default for its mimetypes" + [ "$mime" ] || exit 1 grep "MimeType=" /usr/share/applications/"$1".desktop | cut -d '=' -f 2- | tr ';' '\0' | xargs -0I{} xdg-mime default "$1".desktop "{}" -- cgit v1.2.3 From d6d5aa0577e1cdf9ab924b8c3f0241e17831540e Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:21:59 +0100 Subject: use an intermediate variable --- config/essentials/zsh/functions.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'config/essentials/zsh/functions.zsh') diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 8d464e3..da8bf12 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -248,11 +248,11 @@ mime-default () sed 's/\.desktop$//' | fzf)" - logn "Setting '$1' as default for its mimetypes" + logn "Setting '$mime' as default for its mimetypes" [ "$mime" ] || exit 1 - grep "MimeType=" /usr/share/applications/"$1".desktop | + grep "MimeType=" /usr/share/applications/"$mime".desktop | cut -d '=' -f 2- | tr ';' '\0' | - xargs -0I{} xdg-mime default "$1".desktop "{}" + xargs -0I{} xdg-mime default "$mime".desktop "{}" logn "Done." } -- cgit v1.2.3 From f09beaf5fd4d0d1912e25c7fadeaf2e7bc0d7137 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 15 Nov 2023 01:44:02 +0100 Subject: added to_webm function --- config/essentials/zsh/functions.zsh | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'config/essentials/zsh/functions.zsh') diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index da8bf12..8bf6c43 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -299,3 +299,8 @@ edit_in_dir() { [ -f "$file" ] || return 1 $EDITOR "$file" } + +to_webm() +{ + ffmpeg -y -i "$1" -vcodec libvpx -cpu-used -12 -deadline realtime "${1%.*}".webm +} -- cgit v1.2.3 From 78bced8de90cc65b897f7f9b7c7987bddc87f51c Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 26 Nov 2023 12:54:31 +0100 Subject: use nvf from anywhere --- config/essentials/zsh/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config/essentials/zsh/functions.zsh') diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 8bf6c43..98cca08 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -14,7 +14,7 @@ nvf() { if test ! -f "$match" then logn "resetting cache..." - match="$(goo | tee "$cache" | grep -m 1 "$1$" 2> /dev/null)" + match="$(goo f "$HOME" | tee "$cache" | grep -m 1 "$1$" 2> /dev/null)" # # Alternative: # match="$(goo | grep -m 1 "$1" 2> /dev/null | tee -a | "$cache")" fi -- cgit v1.2.3 From 9dbc981d781dac4ddd96e50f598fb0a267e8a299 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 12 Dec 2023 00:13:46 +0100 Subject: renamed functions.zsh --- config/essentials/zsh/.zshrc | 2 +- config/essentials/zsh/functions.sh | 306 ++++++++++++++++++++++++++++++++++++ config/essentials/zsh/functions.zsh | 306 ------------------------------------ 3 files changed, 307 insertions(+), 307 deletions(-) create mode 100644 config/essentials/zsh/functions.sh delete mode 100644 config/essentials/zsh/functions.zsh (limited to 'config/essentials/zsh/functions.zsh') diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index c590d54..7b1f7a0 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -67,7 +67,7 @@ zle -N add-surround surround zle -N change-surround surround # Source files -. $ZDOTDIR/functions.zsh +. $ZDOTDIR/functions.sh . $ZDOTDIR/aliases.sh for file in /{etc,usr/lib}/os-release diff --git a/config/essentials/zsh/functions.sh b/config/essentials/zsh/functions.sh new file mode 100644 index 0000000..b285e05 --- /dev/null +++ b/config/essentials/zsh/functions.sh @@ -0,0 +1,306 @@ +#!/bin/sh + +log() { >&2 printf '%s' "$@"; } +logn() { >&2 printf '%s\n' "$@"; } + +vmp() { + col -b | \ + vim -MR \ + -c 'set ft=man nolist nonu nornu' +} +nvf() { + cache="$HOME/.cache/nvf" + match="$(grep -m1 "$1$" "$cache" 2> /dev/null)" + if test ! -f "$match" + then + logn "resetting cache..." + match="$(goo f "$HOME" | tee "$cache" | grep -m 1 "$1$" 2> /dev/null)" + # # Alternative: + # match="$(goo | grep -m 1 "$1" 2> /dev/null | tee -a | "$cache")" + fi + if test -f "$match" + then + $EDITOR "$match" && return + else + logn "no match." && return 1 + fi +} + +nnn() { test -z "$NNNLVL" && /usr/bin/nnn "$@" || exit; } +ranger() { test -z "$RANGER_LEVEL" && /usr/bin/ranger "$@" || exit; } + +# googoo aliases +_googoo_fzf_opt() +{ + unset dest opt + if [ "$1" ] + then + [ -d "$1" ] && dest="$1" || opt="-q $1" + fi +} +o() +{ + _googoo_fzf_opt "$1" + f="$(goo f "$dest" | fzf $opt)" + test "$1" && shift + test -f "$f" && $EDITOR $@ "$f" +} +go() +{ + _googoo_fzf_opt "$1" + cd "$(goo d "$dest" | fzf $opt)" +} +ogo() +{ + _googoo_fzf_opt "$1" + cd "$(dirname "$(goo f "$dest" | fzf $opt)")" +} + +# Onelineres +awnk() { awk "{print \$$1}"; } +vimh() { vi -c "help $1" -c 'call feedkeys("\o")'; } +dgo() { cd "$(goo d ~ | fzf --filter "$@" | head -n 1)"; } +open() { $EDITOR "$(goo f ~ | fzf --filter "$@" | head -n 1)"; } +pkbs() { doas pacman -Sy "$(pkgfile -b "$1" | tee /dev/stderr)"; } +oclip() { printf "\033]52;c;$(printf '%s' "$@" | base64)\a"; } +sms() { ssh -t phone sendmsg "$1" "'$2'"; } +trcp() { scp "$1" db:/media/basilisk/downloads/transmission/torrents/; } +rln() { ln -s "$(readlink -f "$1")" "$2"; } +getgit() { git clone git@db:"$1"; } + +ipc() +{ + if [ "$(ip link show eno1 | awk -F, 'NR=1 {print $3}')" = "UP" ] + then + doas ip link set eno1 down + else + doas ip link set eno1 up + fi +} + +psgrep() +{ + [ $# -eq 0 ] && return 1 + pgrep "$@" | xargs ps +} + +unique() { + f="$(mktemp)" + awk '!x[$0]++' "$1" > "$f" + mv "$f" "$1" +} + +clip() { + if [ "$WAYLAND_DISPLAY" ] + then + echo -n "$@" | wl-copy + else + echo -n "$@" | xclip -selection clipboard -rmlastnl + fi +} + +unzipp() { + unzip -- "$(readlink -f -- "$1")" || return 1 + rm -- "$1" +} + +# fix long waiting time +__git_files() { + _wanted files expl 'local files' _files +} + +esc() { + $EDITOR "$(which $1)" +} + +delfile() { + curl "${2:-https://upfast.cronyakatsuki.xyz/delete/$1}" +} +upfile() { + curl -F "file=@\"$1\"" ${2:-https://0x0.st} +} + +# git +sgd() { + d="$PWD" + find $HOME/src -maxdepth 1 -mindepth 1 -type d | + while read -r dir + do + cd "$dir" + git status > /dev/null 2>&1 || continue + git fetch > /dev/null 2>&1 + printf "$PWD" + test "$(git status --short 2>/dev/null | grep -v "??" | head -1)" && + printf " \e[1;31m*changes\e[0m" | sed "s#$HOME#~#" >&2 + test "$(parse_git_remote)" && + printf " \e[0;32m*push/pull\e[0m" | sed "s#$HOME#~#" >&2 + printf "\n" + done + cd "$d" + unset d +} + +ginit() +{ + [ "$1" ] || return 1 + ssh db /var/git/initdir.sh "$1" + git remote add origin git@db:"$1.git" + git push --set-upstream origin $(git_current_branch) +} + +# Returns current branch +git_current_branch() +{ + command git rev-parse --git-dir > /dev/null 2>&1 || return + git branch --show-current +} + +# Check if main exists and use instead of master +git_main_branch() +{ + command git rev-parse --git-dir > /dev/null 2>&1 || return + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default} + do + if command git show-ref -q --verify $ref; then + echo ${ref:t} + return + fi + done + echo master +} + +# Check for develop and similarly named branches +function git_develop_branch() { + command git rev-parse --git-dir > /dev/null 2>&1 || return + for branch in dev devel development + do + if command git show-ref -q --verify refs/heads/$branch + then + echo $branch + return + fi + done + echo develop +} + +# gpg backup +gpg_backup() +{ + # $1: option + # $2: output file (without .asc) + gpg_command() {gpg "$1" --armor > "$2".asc ; } + gpg_command --export-secret-keys "private" + gpg_command --export "public" + gpg_command --export-ownertrust "trust" + tar -czvf gpg_backup.tar.gz public.asc private.asc trust.asc + shred -uz public.asc private.asc trust.asc +} + +gpg_import() +{ + tar xf $1 + shred -uz $1 + gpg --import public.asc + gpg --import-ownertrust trust.asc + gpg --import private.asc + shred -uz public.asc private.asc trust.asc +} + +ngenable() +{ + ln -sf /etc/nginx/sites-available/$1 /etc/nginx/sites-enabled/ +} + +vbsr() +{ + vboxmanage snapshot "$1" restore "$2" && + vboxmanage startvm "$1" || + vboxmanage controlvm "$1" poweroff +} +vbsrr() +{ + vbsr "$1" "$2" + sleep 3 + vbsr "$1" "$2" +} +vbst() +{ + vboxmanage snapshot "$1" take "$2" +} + +pacsize() +{ + if test -n "$1"; then + packages="$@" + elif test ! -t 0; then + packages="$(cat)" + else + echo "No data provided..." + return 1 + fi + echo $packages | + expac '%m %n' - | + numfmt --to=iec-i --suffix=B --format="%.2f" +} + +mime-default () +{ + [ "${mime:=$1}" ] || + mime="$(find /usr/share/applications/ -iname '*.desktop' -printf '%f\n' | + sed 's/\.desktop$//' | + fzf)" + + logn "Setting '$mime' as default for its mimetypes" + [ "$mime" ] || exit 1 + grep "MimeType=" /usr/share/applications/"$mime".desktop | + cut -d '=' -f 2- | tr ';' '\0' | + xargs -0I{} xdg-mime default "$mime".desktop "{}" + logn "Done." +} + +addedkeys() { + find ~/.ssh -iname "*.pub" | while read key + do + fingerprint="$(ssh-keygen -lf "$key" 2>/dev/null)" + if ssh-add -l | grep -q "$fingerprint" + then + echo "$key" + fi + done | sed "s,$HOME/.ssh/,," +} + +fpass() { + find $HOME/.password-store -type f -not -path ".git" | + grep "\.gpg$" | + sed "s,$HOME/.password-store/,,;s,\.gpg$,," | + fzf | + xargs pass show -c +} + +muttmail() +{ + config="$HOME/.config/mutt" + mail="$(find "$config"/configs -type f -printf '%f\n' | fzf)" + [ "$mail" ] || return 1 + ln -sf "$config/configs/$mail" "$config"/muttrc + mutt +} + +resize() +{ + test $# -lt 2 && + printf "usage: %s [out]\n" "$0" >&2 && + return 1 + convert -resize $1^ -gravity center -crop $1+0+0 -- "$2" "${3:-$1}" +} + +edit_in_dir() { + file="$1/$(goo f "$1" | sed "s@^$1@@" | fzf)" + [ -f "$file" ] || return 1 + $EDITOR "$file" +} + +to_webm() +{ + ffmpeg -y -i "$1" -vcodec libvpx -cpu-used -12 -deadline realtime "${1%.*}".webm +} diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh deleted file mode 100644 index 98cca08..0000000 --- a/config/essentials/zsh/functions.zsh +++ /dev/null @@ -1,306 +0,0 @@ -#!/bin/zsh - -log() { >&2 printf '%s' "$@"; } -logn() { >&2 printf '%s\n' "$@"; } - -vmp() { - col -b | \ - vim -MR \ - -c 'set ft=man nolist nonu nornu' -} -nvf() { - local cache="$HOME/.cache/nvf" - local match="$(grep -m1 "$1$" "$cache" 2> /dev/null)" - if test ! -f "$match" - then - logn "resetting cache..." - match="$(goo f "$HOME" | tee "$cache" | grep -m 1 "$1$" 2> /dev/null)" - # # Alternative: - # match="$(goo | grep -m 1 "$1" 2> /dev/null | tee -a | "$cache")" - fi - if test -f "$match" - then - $EDITOR "$match" && return - else - logn "no match." && return 1 - fi -} - -nnn() { test -z "$NNNLVL" && /usr/bin/nnn "$@" || exit } -ranger() { test -z "$RANGER_LEVEL" && /usr/bin/ranger "$@" || exit } - -# googoo aliases -_googoo_fzf_opt() -{ - unset dest opt - if [ "$1" ] - then - [ -d "$1" ] && dest="$1" || opt="-q $1" - fi -} -o() -{ - _googoo_fzf_opt "$1" - f="$(goo f "$dest" | fzf $opt)" - test "$1" && shift - test -f "$f" && $EDITOR $@ "$f" -} -go() -{ - _googoo_fzf_opt "$1" - cd "$(goo d "$dest" | fzf $opt)" -} -ogo() -{ - _googoo_fzf_opt "$1" - cd "$(dirname "$(goo f "$dest" | fzf $opt)")" -} - -# Onelineres -awnk() { awk "{print \$$1}"; } -vimh() { vi -c "help $1" -c 'call feedkeys("\o")'; } -dgo() { cd "$(goo d ~ | fzf --filter "$@" | head -n 1)"; } -open() { $EDITOR "$(goo f ~ | fzf --filter "$@" | head -n 1)"; } -pkbs() { doas pacman -Sy "$(pkgfile -b "$1" | tee /dev/stderr)"; } -oclip() { printf "\033]52;c;$(echo -n "$@" | base64)\a"; } -sms() { ssh -t phone sendmsg "$1" "'$2'"; } -trcp() { scp "$1" db:/media/basilisk/downloads/transmission/torrents/; } -rln() { ln -s "$(readlink -f "$1")" "$2"; } -getgit() { git clone git@db:"$1"; } - -ipc() -{ - if [[ "$(ip link show eno1 | awk -F, 'NR=1 {print $3}')" == "UP" ]] - then - doas ip link set eno1 down - else - doas ip link set eno1 up - fi -} - -psgrep() -{ - [ $# -eq 0 ] && return 1 - pgrep "$@" | xargs ps -} - -unique() { - local f - f="$(mktemp)" - awk '!x[$0]++' "$1" > "$f" - mv "$f" "$1" -} - -clip() { - if [ "$WAYLAND_DISPLAY" ] - then - echo -n "$@" | wl-copy - else - echo -n "$@" | xclip -selection clipboard -rmlastnl - fi -} - -unzipp() { - unzip -- "$(readlink -f -- "$1")" || return 1 - rm -- "$1" -} - -# fix long waiting time -__git_files() { - _wanted files expl 'local files' _files -} - -esc() { - $EDITOR "$(which $1)" -} - -delfile() { - curl "${2:-https://upfast.cronyakatsuki.xyz/delete/$1}" -} -upfile() { - curl -F "file=@\"$1\"" ${2:-https://0x0.st} -} - -# git -sgd() { - d="$PWD" - find $HOME/src -maxdepth 1 -mindepth 1 -type d | - while read -r dir - do - cd "$dir" - git status > /dev/null 2>&1 || continue - git fetch > /dev/null 2>&1 - printf "$PWD" - test "$(git status --short 2>/dev/null | grep -v "??" | head -1)" && - printf " \e[1;31m*changes\e[0m" | sed "s#$HOME#~#" >&2 - test "$(parse_git_remote)" && - printf " \e[0;32m*push/pull\e[0m" | sed "s#$HOME#~#" >&2 - printf "\n" - done - cd "$d" - unset d -} - -ginit() -{ - [ "$1" ] || return 1 - ssh db /var/git/initdir.sh "$1" - git remote add origin git@db:"$1.git" - git push --set-upstream origin $(git_current_branch) -} - -# Returns current branch -git_current_branch() -{ - command git rev-parse --git-dir &>/dev/null || return - git branch --show-current -} - -# Check if main exists and use instead of master -git_main_branch() -{ - command git rev-parse --git-dir &>/dev/null || return - local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do - if command git show-ref -q --verify $ref; then - echo ${ref:t} - return - fi - done - echo master -} - -# Check for develop and similarly named branches -function git_develop_branch() { - command git rev-parse --git-dir &>/dev/null || return - local branch - for branch in dev devel development; do - if command git show-ref -q --verify refs/heads/$branch; then - echo $branch - return - fi - done - echo develop -} - -# gpg backup -gpg_backup() -{ - gpg --export-secret-keys --armor > private.asc - gpg --export --armor > public.asc - gpg --export-ownertrust --armor > trust.asc - tar czf gpg_backup.tar.gz {public,private,trust}.asc - shred -uz {public,private,trust}.asc -} - -gpg_import() -{ - tar xf $1 - shred -uz $1 - gpg --import public.asc - gpg --import-ownertrust trust.asc - gpg --import private.asc - shred -uz {public,private,trust}.asc -} - -ngenable() -{ - ln -sf /etc/nginx/sites-available/$1 /etc/nginx/sites-enabled/ -} - -vbsr() -{ - vboxmanage snapshot "$1" restore "$2" && - vboxmanage startvm "$1" || - vboxmanage controlvm "$1" poweroff -} -vbsrr() -{ - vbsr "$1" "$2" - sleep 3 - vbsr "$1" "$2" -} -vbst() -{ - vboxmanage snapshot "$1" take "$2" -} - -pacsize() -{ - if test -n "$1"; then - packages="$@" - elif test ! -t 0; then - packages="$(cat)" - else - echo "No data provided..." - return 1 - fi - echo $packages | - expac '%m %n' - | - numfmt --to=iec-i --suffix=B --format="%.2f" -} - -mime-default () -{ - local mime - [ "${mime:=$1}" ] || - mime="$(find /usr/share/applications/ -iname '*.desktop' -printf '%f\n' | - sed 's/\.desktop$//' | - fzf)" - - logn "Setting '$mime' as default for its mimetypes" - [ "$mime" ] || exit 1 - grep "MimeType=" /usr/share/applications/"$mime".desktop | - cut -d '=' -f 2- | tr ';' '\0' | - xargs -0I{} xdg-mime default "$mime".desktop "{}" - logn "Done." -} - -addedkeys() { - find ~/.ssh -iname "*.pub" | while read key - do - local fingerprint="$(ssh-keygen -lf "$key" 2>/dev/null)" - if ssh-add -l | grep -q "$fingerprint" - then - echo "$key" - fi - done | sed "s,$HOME/.ssh/,," -} - -fpass() { - find $HOME/.password-store -type f -not -path ".git" | - grep "\.gpg$" | - sed "s,$HOME/.password-store/,,;s,\.gpg$,," | - fzf | - xargs pass show -c -} - -muttmail() -{ - local config - local mail - config="$HOME/.config/mutt" - mail="$(find "$config"/configs -type f -printf '%f\n' | fzf)" - [ "$mail" ] || return 1 - ln -sf "$config/configs/$mail" "$config"/muttrc - mutt -} - -resize() -{ - test $# -lt 2 && - printf "usage: %s [out]\n" "$0" >&2 && - return 1 - convert -resize $1^ -gravity center -crop $1+0+0 -- "$2" "${3:-$1}" -} - -edit_in_dir() { - file="$1/$(goo f "$1" | sed "s@^$1@@" | fzf)" - [ -f "$file" ] || return 1 - $EDITOR "$file" -} - -to_webm() -{ - ffmpeg -y -i "$1" -vcodec libvpx -cpu-used -12 -deadline realtime "${1%.*}".webm -} -- cgit v1.2.3