diff --git a/modules/Bar.qml b/modules/Bar.qml index c0ee33b..48cf971 100644 --- a/modules/Bar.qml +++ b/modules/Bar.qml @@ -50,7 +50,7 @@ PanelWindow { anchors.verticalCenter: parent.verticalCenter spacing: M.Theme.barSpacing - M.Workspaces { bar: bar; visible: M.Modules.workspaces } + M.Workspaces { visible: M.Modules.workspaces } M.Tray { bar: bar visible: M.Modules.tray diff --git a/modules/WindowTitle.qml b/modules/WindowTitle.qml index 8f56968..d4e7dca 100644 --- a/modules/WindowTitle.qml +++ b/modules/WindowTitle.qml @@ -1,23 +1,17 @@ import QtQuick -import QtQuick.Effects -import Quickshell import Quickshell.Io -import Quickshell.Widgets import "." as M -M.BarSection { +M.BarLabel { id: root - spacing: M.Theme.moduleSpacing + label: root._title + color: M.Theme.base05 tooltip: root._appId ? root._appId + "\n" + root._title : root._title + elide: Text.ElideRight property string _title: "" property string _appId: "" - readonly property string _iconSource: { - if (!root._appId) return ""; - const entry = DesktopEntries.heuristicLookup(root._appId); - return entry ? Quickshell.iconPath(entry.icon) : ""; - } // Initial state — niri event-stream doesn't replay current focus Process { @@ -62,23 +56,4 @@ M.BarSection { } } } - - IconImage { - visible: root._iconSource !== "" - source: root._iconSource - implicitSize: M.Theme.fontSize + 2 - anchors.verticalCenter: parent.verticalCenter - layer.enabled: true - layer.effect: MultiEffect { - colorization: 1.0 - colorizationColor: M.Theme.base05 - } - } - - M.BarLabel { - label: root._title - color: M.Theme.base05 - elide: Text.ElideRight - anchors.verticalCenter: parent.verticalCenter - } } diff --git a/modules/Workspaces.qml b/modules/Workspaces.qml index e185d6f..6f45225 100644 --- a/modules/Workspaces.qml +++ b/modules/Workspaces.qml @@ -1,5 +1,4 @@ import QtQuick -import Quickshell import Quickshell.Io import "." as M @@ -7,12 +6,8 @@ Row { id: root spacing: 4 - required property var bar - - property var _allWorkspaces: [] + property var _workspaces: [] property int _activeId: -1 - readonly property string _output: bar.screen?.name ?? "" - readonly property var _workspaces: _allWorkspaces.filter(w => w.output === root._output) // Initial state Process { @@ -23,7 +18,7 @@ Row { onStreamFinished: { try { const ws = JSON.parse(text); - root._allWorkspaces = ws.sort((a, b) => a.idx - b.idx); + root._workspaces = ws.sort((a, b) => a.idx - b.idx); for (const w of ws) { if (w.is_focused) root._activeId = w.id; @@ -44,7 +39,7 @@ Row { try { const ev = JSON.parse(line); if (ev.WorkspacesChanged !== undefined) { - root._allWorkspaces = ev.WorkspacesChanged.workspaces + root._workspaces = ev.WorkspacesChanged.workspaces .sort((a, b) => a.idx - b.idx); } else if (ev.WorkspaceActivated !== undefined) { if (ev.WorkspaceActivated.focused)