about summary refs log tree commit diff stats
path: root/pkgs/by-name/sw/swallow/swallow.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/sw/swallow/swallow.sh')
-rwxr-xr-xpkgs/by-name/sw/swallow/swallow.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/by-name/sw/swallow/swallow.sh b/pkgs/by-name/sw/swallow/swallow.sh
new file mode 100755
index 00000000..ac1858ea
--- /dev/null
+++ b/pkgs/by-name/sw/swallow/swallow.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env dash
+# Based on: https://codeberg.org/nirodhvana/reservoir/src/commit/2fa8c14877799a03bb927f048c2907dbb418fd68/dot-local/bin/gobble
+
+# Inspired by https://github.com/swindlesmccoop/not-just-dotfiles/blob/master/.local/bin/swallow
+
+swallow_tag=$((1 << 9))
+eat() {
+    riverctl set-view-tags $swallow_tag
+}
+
+throwup() {
+    riverctl set-focused-tags $swallow_tag &&
+        riverctl send-to-previous-tags &&
+        riverctl focus-previous-tags
+}
+
+if [ -z "$*" ]; then
+    printf "ERROR: No arguments supplied\n"
+elif ! command -v "$1" >/dev/null; then
+    printf "ERROR: Command '%s' does not exist\n" "$1"
+else
+    eat && "$@"
+
+    throwup
+fi