# 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 "$@" ) }