about summary refs log tree commit diff stats
path: root/pkgs/by-name
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-01-25 17:16:11 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-01-25 17:16:11 +0100
commitfe0a8240022fb6c42e8b021d44b49a0e0638281b (patch)
tree8dc9a1a6e81ff9b8cd4490c79712237f74a8cf12 /pkgs/by-name
parentpkgs/mpdpopm: Make the rating centered around 0 (i.e. a i8 instead of u8) (diff)
downloadnixos-config-fe0a8240022fb6c42e8b021d44b49a0e0638281b.zip
pkgs/swallow: Add
This provides swallowing for river.
Diffstat (limited to '')
-rw-r--r--pkgs/by-name/sw/swallow/package.nix25
-rwxr-xr-xpkgs/by-name/sw/swallow/swallow.sh23
2 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/by-name/sw/swallow/package.nix b/pkgs/by-name/sw/swallow/package.nix
new file mode 100644
index 00000000..16608143
--- /dev/null
+++ b/pkgs/by-name/sw/swallow/package.nix
@@ -0,0 +1,25 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{
+  writeShellApplication,
+  # Dependencies
+  river-classic,
+}:
+writeShellApplication {
+  name = "swallow";
+  text = builtins.readFile ./swallow.sh;
+
+  # We need to inherit the path, so that we can spawn stuff in a swallowed mode.
+  inheritPath = true;
+
+  runtimeInputs = [
+    river-classic
+  ];
+}
diff --git a/pkgs/by-name/sw/swallow/swallow.sh b/pkgs/by-name/sw/swallow/swallow.sh
new file mode 100755
index 00000000..922a21b3
--- /dev/null
+++ b/pkgs/by-name/sw/swallow/swallow.sh
@@ -0,0 +1,23 @@
+#!/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"
+else
+    eat && "$@"
+
+    throwup
+fi