summary refs log tree commit diff
path: root/bin/screenrec
diff options
context:
space:
mode:
Diffstat (limited to 'bin/screenrec')
-rwxr-xr-xbin/screenrec28
1 files changed, 28 insertions, 0 deletions
diff --git a/bin/screenrec b/bin/screenrec
new file mode 100755
index 0000000..5324ead
--- /dev/null
+++ b/bin/screenrec
@@ -0,0 +1,28 @@
+#!/bin/sh
+set -eu
+
+update_waybar() {
+	sleep .5
+	pkill -RTMIN+1 -x waybar
+}
+
+trap '{ update_waybar & disown; }' SIGCHLD EXIT
+
+if [ "${1:-}" = "stop" ]; then
+	exec pkill -HUP -x wl-screenrec
+fi
+
+screengrab_dir=$XDG_VIDEOS_DIR/screengrabs
+screengrab_path=$screengrab_dir/"$(date --iso-8601=seconds).mkv"
+
+mkdir -p $screengrab_dir || exit 1
+
+output=$(slurp -b '#000000aa' -c '#4E437188' -w 50 -f '%o' -or)
+
+update_waybar & disown
+
+wl-screenrec --filename="$screengrab_path" --output="$output" $@ || true
+
+wl-copy "$screengrab_path"
+
+fyi -a screenrec "screenrec" "$screengrab_path"