feat: auto-disable niri-dependent components when NIRI_SOCKET is absent

This commit is contained in:
Damocles 2026-04-15 21:08:44 +02:00
parent dd854a2f7f
commit 9cf6853742
4 changed files with 9 additions and 5 deletions

View file

@ -11,12 +11,14 @@ QtObject {
signal windowFocusChanged(var windowId)
signal windowOpenedOrChanged(var window)
readonly property bool available: Quickshell.env("NIRI_SOCKET") !== ""
property string focusedTitle: ""
property string focusedAppId: ""
property bool overviewOpen: false
property var _focusedProc: Process {
running: true
running: root.available
command: ["niri", "msg", "--json", "focused-window"]
stdout: StdioCollector {
onStreamFinished: {
@ -35,7 +37,7 @@ QtObject {
}
property var _eventStream: Process {
running: true
running: root.available
command: ["niri", "msg", "--json", "event-stream"]
stdout: SplitParser {
splitMarker: "\n"

View file

@ -7,7 +7,7 @@ import "." as M
M.BarSection {
id: root
spacing: M.Theme.moduleSpacing
visible: M.Modules.windowTitle.enable && M.NiriIpc.focusedTitle !== ""
visible: M.Modules.windowTitle.enable && M.NiriIpc.available && M.NiriIpc.focusedTitle !== ""
tooltip: M.NiriIpc.focusedAppId ? M.NiriIpc.focusedAppId + "\n" + M.NiriIpc.focusedTitle : M.NiriIpc.focusedTitle

View file

@ -14,10 +14,12 @@ Row {
readonly property string _output: bar.screen?.name ?? ""
readonly property var _workspaces: _allWorkspaces.filter(w => w.output === root._output)
visible: M.NiriIpc.available
// Initial state
Process {
id: initProc
running: true
running: M.NiriIpc.available
command: ["niri", "msg", "--json", "workspaces"]
stdout: StdioCollector {
onStreamFinished: {