aboutsummaryrefslogtreecommitdiff
path: root/shellrc.d/desktop
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2023-03-21 18:19:32 +0100
committerKarel Kočí <cynerd@email.cz>2023-03-21 20:46:05 +0100
commit7be0acbb1cd6b6d3c4c3df95611cb86be4b46915 (patch)
treefcdca6619a05b1e72ebb8b9ddf0d04586b434e94 /shellrc.d/desktop
parentf0eab21bab34beb657059cf5dfe91ca8072edb35 (diff)
downloadshellrc-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/desktop59
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 "$@"
+ )
+}