diff options
Diffstat (limited to '')
| -rw-r--r-- | modules/by-name/ri/river/module.nix | 1 | ||||
| -rw-r--r-- | pkgs/by-name/sw/swallow/package.nix | 25 | ||||
| -rwxr-xr-x | pkgs/by-name/sw/swallow/swallow.sh | 23 |
3 files changed, 49 insertions, 0 deletions
diff --git a/modules/by-name/ri/river/module.nix b/modules/by-name/ri/river/module.nix index 75725a8d..893fdc77 100644 --- a/modules/by-name/ri/river/module.nix +++ b/modules/by-name/ri/river/module.nix @@ -212,6 +212,7 @@ in { home.packages = [ (pkgs.callPackage ./river-start/package.nix {}) + pkgs.swallow ]; xdg.configFile."river/init" = { 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 |
