From e18da60fbedb61240b4dcead1769415f3704f4b4 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Mon, 6 Jul 2026 22:23:32 +0200 Subject: 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. --- pkgs/by-name/sy/systemd-toggle/package.nix | 23 ++++++++++++ pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh | 46 ++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 pkgs/by-name/sy/systemd-toggle/package.nix create mode 100755 pkgs/by-name/sy/systemd-toggle/systemd-toggle.sh (limited to 'pkgs/by-name/sy/systemd-toggle') 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 +# 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 . +{ + 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 +# 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 . + +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 -- cgit v1.3.1