From a55cffa8b3cbc02e2b021ed25e67203d337c36bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Sun, 12 Aug 2018 18:37:31 +0200 Subject: Move some definitions around and add --desktop option --- shellrc.d-desktop/desktop | 49 +++++++++++++++++++++++++++++++++++++++++++++++ shellrc.d-desktop/xorg | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 shellrc.d-desktop/desktop create mode 100644 shellrc.d-desktop/xorg (limited to 'shellrc.d-desktop') diff --git a/shellrc.d-desktop/desktop b/shellrc.d-desktop/desktop new file mode 100644 index 0000000..52ca258 --- /dev/null +++ b/shellrc.d-desktop/desktop @@ -0,0 +1,49 @@ +# vim: ft=sh: +# This is handy only on desktop and is useless on server + +alias mutt='neomutt' +alias sdcv='sdcv -c' + +# Following section is applicable for any desktop but only for graphics########## +# TODO add check for wayland +[ -z "$DISPLAY" ] && return + +alias feh='feh --magick-timeout 10 -.' + + +# 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 "$@" + ) +} diff --git a/shellrc.d-desktop/xorg b/shellrc.d-desktop/xorg new file mode 100644 index 0000000..be9ef69 --- /dev/null +++ b/shellrc.d-desktop/xorg @@ -0,0 +1,34 @@ +# vim: ft=sh: +# These are utility functions loaded when we are running in Xserver + +[ -z "$DISPLAY" ] && return # Ignore if there is no display set + +alias i='i3-msg' + + +# Clip stdin to clipboard +clip() { + # Note: printf as magic to remove trailing new lines + printf %s "$(cat)" | xclip -selection clipboard +} + +# Clip current HEAD hash to clipboard +# Optionally you can pass commit as argument +gitclip() { + [ -n "$1" ] && local CMT="$1" || local CMT=HEAD + git rev-parse "$CMT"| clip +} +# Clip current head message to clipboard +# Optionally you can pass commit as argument +gitmclip() { + [ -n "$1" ] && local CMT="$1" || local CMT=HEAD + git log --format=%B -n 1 "$CMT" | clip +} + +# Make screenshot +xshot() { + import ~/xshot_$(date +%F_%H%M%S_%N).png +} +xshot-screen() { + import -screen ~/xshot_$(date +%F_%H%M%S_%N).png +} -- cgit v1.2.3