diff --git a/nix/hm-module.nix b/nix/hm-module.nix index 6f169b1..ae72e18 100644 --- a/nix/hm-module.nix +++ b/nix/hm-module.nix @@ -281,7 +281,6 @@ in config = lib.mkIf cfg.enable { home.packages = [ - cfg.package self.packages.${pkgs.stdenv.hostPlatform.system}.nova-shell-cli pkgs.nerd-fonts.symbols-only ] diff --git a/shell/modules/Bar.qml b/shell/modules/Bar.qml index 8f02163..5ca2c26 100644 --- a/shell/modules/Bar.qml +++ b/shell/modules/Bar.qml @@ -135,11 +135,15 @@ PanelWindow { M.BarGroup { id: workspacesGroup leftEdge: true - M.WorkspacesModule {} + M.WorkspacesModule { + bar: bar + } } M.BarGroup { leftEdge: !workspacesGroup.visible - M.TrayModule {} + M.TrayModule { + bar: bar + } } M.BarGroup { id: _windowTitleGroup @@ -170,7 +174,9 @@ PanelWindow { // Media M.BarGroup { - M.MprisModule {} + M.MprisModule { + bar: bar + } M.VolumeModule {} } diff --git a/shell/modules/MprisModule.qml b/shell/modules/MprisModule.qml index 7a46d7c..dcd5553 100644 --- a/shell/modules/MprisModule.qml +++ b/shell/modules/MprisModule.qml @@ -55,6 +55,8 @@ M.BarModule { } } + required property var bar + M.BarIcon { icon: S.MprisService.playing ? "\uF04B" : (S.MprisService.player?.playbackState === MprisPlaybackState.Paused ? "\uDB80\uDFE4" : "\uDB81\uDCDB") anchors.verticalCenter: parent.verticalCenter diff --git a/shell/modules/TrayModule.qml b/shell/modules/TrayModule.qml index 7d6e3fa..85cddf4 100644 --- a/shell/modules/TrayModule.qml +++ b/shell/modules/TrayModule.qml @@ -14,8 +14,13 @@ M.BarModule { active: S.Modules.tray.enable && _trayRepeater.count > 0 + required property var bar property var _activeMenu: null + // --- debug logging (remove once tray is confirmed working) --- + onActiveChanged: console.log("[TrayModule] active:", active, "count:", _trayRepeater.count) + onVisibleChanged: console.log("[TrayModule] visible:", visible) + Repeater { id: _trayRepeater model: SystemTray.items @@ -99,7 +104,7 @@ M.BarModule { M.TrayMenu { accentColor: root.accentColor handle: iconItem.modelData.menu - screen: QsWindow.window?.screen ?? null + screen: root.bar.screen anchorX: iconItem.mapToGlobal(iconItem.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0) onDismissed: { menuLoader.active = false; diff --git a/shell/modules/WorkspacesModule.qml b/shell/modules/WorkspacesModule.qml index ad099a4..978460e 100644 --- a/shell/modules/WorkspacesModule.qml +++ b/shell/modules/WorkspacesModule.qml @@ -10,9 +10,11 @@ M.BarModule { spacing: 4 cursorShape: Qt.ArrowCursor + required property var bar + property var _allWorkspaces: [] property int _activeId: -1 - readonly property string _output: QsWindow.window?.screen?.name ?? "" + readonly property string _output: bar.screen?.name ?? "" readonly property var _workspaces: _allWorkspaces.filter(w => w.output === root._output) // Initial state