diff --git a/shell/plugins/bar/Bar.qml b/shell/plugins/bar/Bar.qml index 0f99803d..2d0dbee1 100644 --- a/shell/plugins/bar/Bar.qml +++ b/shell/plugins/bar/Bar.qml @@ -1257,6 +1257,12 @@ Item { readonly property bool hovered: moduleHover.hovered readonly property bool dragSource: root.barDragSource === slot readonly property bool panelOpen: root.activePopout === slot.activeItem + readonly property real openIndicatorInlineOffset: { + var item = slot.activeItem + if (!item || !("openIndicatorInlineOffset" in item)) return 0 + var offset = Number(item.openIndicatorInlineOffset) + return isFinite(offset) ? offset : 0 + } implicitWidth: activeItem && activeItem.visible ? (root.vertical ? root.barSize : activeItem.implicitWidth) : 0 implicitHeight: activeItem && activeItem.visible ? activeItem.implicitHeight : 0 @@ -1329,8 +1335,12 @@ Item { radius: Math.min(width, height) / 2 width: root.vertical ? Style.space(2) : Math.max(Style.space(10), Math.round(parent.width * 0.55)) height: root.vertical ? Math.max(Style.space(10), Math.round(parent.height * 0.55)) : Style.space(2) - x: root.vertical ? (root.position === "left" ? parent.width - width - inset : inset) : Math.round((parent.width - width) / 2) - y: root.vertical ? Math.round((parent.height - height) / 2) : (root.position === "top" ? parent.height - height - inset : inset) + x: root.vertical + ? (root.position === "left" ? parent.width - width - inset : inset) + : (slot.openIndicatorInlineOffset === 0 ? Math.round((parent.width - width) / 2) : (parent.width - width) / 2 + slot.openIndicatorInlineOffset) + y: root.vertical + ? (slot.openIndicatorInlineOffset === 0 ? Math.round((parent.height - height) / 2) : (parent.height - height) / 2 + slot.openIndicatorInlineOffset) + : (root.position === "top" ? parent.height - height - inset : inset) z: 50 Behavior on opacity { diff --git a/shell/plugins/bar/widgets/Workspaces.qml b/shell/plugins/bar/widgets/Workspaces.qml index a47e2d53..5a829fc0 100644 --- a/shell/plugins/bar/widgets/Workspaces.qml +++ b/shell/plugins/bar/widgets/Workspaces.qml @@ -42,7 +42,7 @@ BarWidget { id: grid anchors.fill: parent columns: root.vertical ? 1 : root.workspaceIds().length - columnSpacing: root.vertical ? 0 : Style.space(2) + columnSpacing: root.vertical ? 0 : Style.space(1) rowSpacing: root.vertical ? Style.space(2) : 0 Repeater { @@ -60,7 +60,7 @@ BarWidget { opacity: occupied || focused ? 1 : 0.5 horizontalMargin: 6 verticalPadding: 6 - fixedWidth: root.vertical ? root.barSize : Style.space(22) + fixedWidth: root.vertical ? root.barSize : Style.space(20) fixedHeight: root.barSize onPressed: function() { root.focusWorkspace(modelData) } } diff --git a/shell/plugins/panels/audio/Panel.qml b/shell/plugins/panels/audio/Panel.qml index 19a56e09..788b7a7e 100644 --- a/shell/plugins/panels/audio/Panel.qml +++ b/shell/plugins/panels/audio/Panel.qml @@ -528,6 +528,8 @@ Panel { bar: root.bar text: root.outputIcon() fontSize: Style.font.body + fixedWidth: root.bar && root.bar.vertical ? -1 : Style.space(27) + fixedHeight: root.bar && root.bar.vertical ? Style.space(26) : -1 onPressed: function(b) { if (b === Qt.RightButton) root.toggleOutputMute() else root.toggle() diff --git a/shell/plugins/panels/bluetooth/Panel.qml b/shell/plugins/panels/bluetooth/Panel.qml index 9a3be5d0..589cc0a9 100644 --- a/shell/plugins/panels/bluetooth/Panel.qml +++ b/shell/plugins/panels/bluetooth/Panel.qml @@ -406,6 +406,8 @@ Panel { anchors.fill: parent bar: root.bar text: root.icon + fixedWidth: root.bar && root.bar.vertical ? -1 : Style.space(27) + fixedHeight: root.bar && root.bar.vertical ? Style.space(26) : -1 onPressed: function(b) { if (b === Qt.RightButton) root.toggleBluetooth() else if (b === Qt.MiddleButton) root.bar.run("omarchy-launch-bluetooth") diff --git a/shell/plugins/panels/dropbox/Panel.qml b/shell/plugins/panels/dropbox/Panel.qml index e5debe14..bb1b23a6 100644 --- a/shell/plugins/panels/dropbox/Panel.qml +++ b/shell/plugins/panels/dropbox/Panel.qml @@ -141,7 +141,7 @@ Panel { Item { id: button anchors.fill: parent - implicitWidth: root.bar && root.bar.vertical ? root.bar.barSize : Style.space(32) + implicitWidth: root.bar && root.bar.vertical ? root.bar.barSize : Style.space(27) implicitHeight: root.bar && root.bar.vertical ? Style.space(26) : (root.bar ? root.bar.barSize : Style.space(26)) property var registeredBar: null diff --git a/shell/plugins/panels/monitor/Panel.qml b/shell/plugins/panels/monitor/Panel.qml index ad23160e..0a1f5972 100644 --- a/shell/plugins/panels/monitor/Panel.qml +++ b/shell/plugins/panels/monitor/Panel.qml @@ -343,6 +343,9 @@ Panel { bar: root.bar text: root.displays.length > 1 ? "󰍺" : "󰍹" fontSize: Style.font.subtitle + fixedWidth: root.bar && root.bar.vertical ? -1 : Style.space(27) + fixedHeight: root.bar && root.bar.vertical ? Style.space(26) : -1 + rightExtraMargin: 4 onPressed: function(b) { root.toggle() } onWheelMoved: function(delta) { if (root.brightnessAvailable) root.setBrightness(root.brightnessPercent + (delta > 0 ? 5 : -5)) diff --git a/shell/plugins/panels/network/Panel.qml b/shell/plugins/panels/network/Panel.qml index 4def7c1c..3a2050a2 100644 --- a/shell/plugins/panels/network/Panel.qml +++ b/shell/plugins/panels/network/Panel.qml @@ -584,8 +584,9 @@ Panel { anchors.fill: parent bar: root.bar text: root.icon - horizontalMargin: 8.5 - rightExtraMargin: 2 + fixedWidth: root.bar && root.bar.vertical ? -1 : Style.space(27) + fixedHeight: root.bar && root.bar.vertical ? Style.space(26) : -1 + rightExtraMargin: 5.5 onPressed: function(b) { if (root.opened) root.close() diff --git a/shell/plugins/panels/power/Panel.qml b/shell/plugins/panels/power/Panel.qml index 08f41ab5..5d8869fb 100644 --- a/shell/plugins/panels/power/Panel.qml +++ b/shell/plugins/panels/power/Panel.qml @@ -252,8 +252,8 @@ Panel { anchors.fill: parent bar: root.bar text: root.batteryIcon() - horizontalMargin: 8.5 - rightExtraMargin: 2 + fixedWidth: root.bar && root.bar.vertical ? -1 : Style.space(27) + fixedHeight: root.bar && root.bar.vertical ? Style.space(26) : -1 active: root.batteryPresent && UPower.displayDevice.percentage <= 0.2 && UPower.onBattery tooltipText: "" onPressed: function(b) { if (root.batteryPresent) root.toggle() } diff --git a/shell/plugins/panels/tailscale/Panel.qml b/shell/plugins/panels/tailscale/Panel.qml index 9626f801..9d3ef11a 100644 --- a/shell/plugins/panels/tailscale/Panel.qml +++ b/shell/plugins/panels/tailscale/Panel.qml @@ -12,6 +12,7 @@ Panel { ipcTarget: "omarchy.tailscale" manageIpc: false + readonly property real openIndicatorInlineOffset: bar && bar.vertical ? 0 : Style.spaceReal(1.5) property string focusSection: "header" property int headerIndex: 0 property int accountIndex: 0 @@ -362,7 +363,7 @@ Panel { Item { id: button anchors.fill: parent - implicitWidth: root.bar && root.bar.vertical ? root.bar.barSize : Style.space(32) + implicitWidth: root.bar && root.bar.vertical ? root.bar.barSize : Style.space(27) implicitHeight: root.bar && root.bar.vertical ? Style.space(26) : (root.bar ? root.bar.barSize : Style.space(26)) property var registeredBar: null @@ -389,6 +390,7 @@ Panel { TailscaleIcon { anchors.centerIn: parent + anchors.horizontalCenterOffset: root.openIndicatorInlineOffset anchors.verticalCenterOffset: -Style.space(1) iconSize: Style.space(12) * 0.85 color: root.barIconColor diff --git a/shell/plugins/panels/weather/BarWidget.qml b/shell/plugins/panels/weather/BarWidget.qml index e02b1925..c50b739c 100644 --- a/shell/plugins/panels/weather/BarWidget.qml +++ b/shell/plugins/panels/weather/BarWidget.qml @@ -49,7 +49,7 @@ BarWidget { bar: root.bar text: panelLoader.item ? panelLoader.item.label : "" active: panelLoader.item && panelLoader.item.klass === "active" - horizontalMargin: 5 + horizontalMargin: 2.5 // Tooltip suppressed because the panel is the detail view. tooltipText: ""