aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/ri/river/keymap.nix2
-rw-r--r--pkgs/by-name/sy/systemd-toggle/package.nix23
-rwxr-xr-xpkgs/by-name/sy/systemd-toggle/systemd-toggle.sh46
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