diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-06 22:23:32 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-06 22:26:36 +0200 |
| commit | e18da60fbedb61240b4dcead1769415f3704f4b4 (patch) | |
| tree | 9feb452a60af808b509669a6d0d06fe843ee8270 | |
| parent | modules/backup: Explicitly enable fuse (diff) | |
| download | nixos-config-e18da60fbedb61240b4dcead1769415f3704f4b4.zip | |
modules/river/keymap: Toggle the systemd service for i3bar-river for restarts
Using the built-in version via signals kinda just fails to show
i3bar-river again, if it has been hidden for a longer time.
| -rw-r--r-- | modules/by-name/ri/river/keymap.nix | 2 | ||||
| -rw-r--r-- | pkgs/by-name/sy/systemd-toggle/package.nix | 23 | ||||
| -rwxr-xr-x | pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh | 46 |
3 files changed, 70 insertions, 1 deletions
diff --git a/modules/by-name/ri/river/keymap.nix b/modules/by-name/ri/river/keymap.nix index 1d4b8c3e..897d11df 100644 --- a/modules/by-name/ri/river/keymap.nix +++ b/modules/by-name/ri/river/keymap.nix @@ -69,7 +69,7 @@ in { "x" = { "q" = ["exit"]; "l" = mkSpawn pkgs.lock "" {once = true;}; - "h" = mkSpawn' pkgs.procps "pkill" "--signal USR1 i3bar-river" {once = true;}; + "h" = mkSpawn pkgs.systemd-toggle "--user i3bar-river.service" {once = true;}; }; # Media control diff --git a/pkgs/by-name/sy/systemd-toggle/package.nix b/pkgs/by-name/sy/systemd-toggle/package.nix new file mode 100644 index 00000000..04ed576f --- /dev/null +++ b/pkgs/by-name/sy/systemd-toggle/package.nix @@ -0,0 +1,23 @@ +# 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, + systemd, +}: +writeShellApplication { + name = "systemd-toggle"; + text = builtins.readFile ./systemd-toggle.sh; + runtimeInputs = [ + systemd + ]; + meta = { + mainProgram = "systemd-toggle"; + }; +} diff --git a/pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh b/pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh new file mode 100755 index 00000000..a8290238 --- /dev/null +++ b/pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env sh + +# 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>. + +use_user=false +service="" +while [ "$#" -ne 0 ]; do + case "$1" in + "--user") + use_user=true + ;; + *) + if [ -n "$service" ]; then + echo "Service was already specified as: '$service'" + exit 2 + else + service="$1" + fi + ;; + esac + + shift 1 +done + +user_str="" +if [ "$use_user" = "true" ]; then + user_str="--user" +fi + +service_status="$(systemctl $user_str show "$service" | grep ActiveState | sed 's/ActiveState=//')" + +if [ "$service_status" = "inactive" ]; then + systemctl $user_str start "$service" +else + systemctl $user_str stop "$service" +fi + +# vim: ft=sh |
