diff options
author | Karel Kočí <cynerd@email.cz> | 2023-03-21 18:19:32 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2023-03-21 20:46:05 +0100 |
commit | 7be0acbb1cd6b6d3c4c3df95611cb86be4b46915 (patch) | |
tree | fcdca6619a05b1e72ebb8b9ddf0d04586b434e94 /shellrc.d/desktop | |
parent | f0eab21bab34beb657059cf5dfe91ca8072edb35 (diff) | |
download | shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.tar.gz shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.tar.bz2 shellrc-7be0acbb1cd6b6d3c4c3df95611cb86be4b46915.zip |
Drop desktop variant and rework nix packages
Diffstat (limited to 'shellrc.d/desktop')
-rw-r--r-- | shellrc.d/desktop | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/shellrc.d/desktop b/shellrc.d/desktop new file mode 100644 index 0000000..f3995d6 --- /dev/null +++ b/shellrc.d/desktop @@ -0,0 +1,59 @@ +# vim: ft=sh: +# This is handy only on desktop and is useless on server + + +# Following section is applicable for any desktop but only for graphics +# The check is for XOrg but thanks to XWayland it works for Wayland as well. +[ -z "$DISPLAY" ] && return + +alias feh='feh --conversion-timeout 10 -.' + +# Clip current HEAD hash to clipboard +# Optionally you can pass commit as argument +gitclip() { + git rev-parse "${1:-HEAD}"| clip +} +# Clip current head message to clipboard +# Optionally you can pass commit as argument +gitmclip() { + git log --format=%B -n 1 "${1:-HEAD}" | clip +} +# NOTE: clip comes either from xorg or sway file + + +# This function should not be called externaly +# It expects PID of surf instace as first argument and all other arguments should +# be command to be called before kill is sent. +__insurf_callback() { + local SPID=$1 + shift + "$@" + echo "kill $SPID SIGHUP" + kill -s SIGHUP "$SPID" || exit 1 +} + +# Same as inrun but it opens first argument it founds in surf and then reloads +# that instance automatically. +insurf() { + ( + set -e + # Run surf + surf "$1" & + local SPID=$! + trap "kill $SPID; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT + # Insert our callback + local ISFIRST=true + for ARG in "$@"; do + if $ISFIRST; then + shift $# + ISFIRST=false + fi + set "$@" "$ARG" + if [ "$ARG" = "--" ]; then + set "$@" "__insurf_callback" "$SPID" + fi + done + # Run inrun + inrun "$@" + ) +} |