From ac4e77bba879c4ae98a4d7c6afeef55f81ed003f Mon Sep 17 00:00:00 2001 From: Uyanide Date: Sun, 16 Nov 2025 14:41:46 +0100 Subject: [PATCH] fix: subprocesses not killed properly when quickshell stopped --- config/niri/.config/niri/config.kdl | 2 +- config/scripts/.local/scripts/quickshell-kill | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 config/scripts/.local/scripts/quickshell-kill diff --git a/config/niri/.config/niri/config.kdl b/config/niri/.config/niri/config.kdl index 2682b39..e83f494 100644 --- a/config/niri/.config/niri/config.kdl +++ b/config/niri/.config/niri/config.kdl @@ -317,7 +317,7 @@ binds { Mod+Space { spawn-sh "qs ipc call panels toggleControlCenter"; } Mod+Shift+D { spawn-sh "qs ipc call panels toggleCalendar"; } Mod+Shift+L { spawn-sh "qs ipc call lyrics toggleBarLyrics"; } - Mod+Shift+K { spawn-sh "pkill -x quickshell || quickshell"; } + Mod+Shift+K { spawn-sh "quickshell-kill || quickshell"; } Mod+I { spawn-sh "qs ipc call idleInhibitor toggleInhibitor"; } Mod+Alt+R { spawn-sh "qs ipc call recording startOrStopRecording"; } diff --git a/config/scripts/.local/scripts/quickshell-kill b/config/scripts/.local/scripts/quickshell-kill new file mode 100755 index 0000000..68587cc --- /dev/null +++ b/config/scripts/.local/scripts/quickshell-kill @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +pid=$(pgrep -x quickshell) +[ -z "$pid" ] && exit 1 + +for child in $(pgrep -P "$pid" 2>/dev/null); do + kill "$child" +done + +kill "$pid" +