From da12f0944ec59ef78529a196e09e13180a620d19 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:37:46 +0200 Subject: [PATCH 01/11] Add left margin to OSD value indicator text --- src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml index c6fc7838..073f5427 100644 --- a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml +++ b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml @@ -86,6 +86,7 @@ Item { color: Appearance.colors.colOnLayer0 font.pixelSize: Appearance.font.pixelSize.small Layout.fillWidth: false + Layout.leftMargin: 75 text: Math.round(root.value * 100) } } @@ -98,4 +99,4 @@ Item { } } } -} \ No newline at end of file +} From 3c72352cf77e713d8410266971139d212e6e9544 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:46:43 +0200 Subject: [PATCH 02/11] Add fullscreen value indicators toggle to settings --- src/share/sleex/modules/settings/Interface.qml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/share/sleex/modules/settings/Interface.qml b/src/share/sleex/modules/settings/Interface.qml index 84e3a801..780907fc 100644 --- a/src/share/sleex/modules/settings/Interface.qml +++ b/src/share/sleex/modules/settings/Interface.qml @@ -19,6 +19,14 @@ ContentPage { onCheckedChanged: Config.options.appearance.transparency = checked; } + ConfigSwitch { + text: "Fullscreen Value Indicators" + checked: Config.options.appearance.fullscreenIndicator + onClicked: checked = !checked; + StyledToolTip { text: "Show brightness/volume indicators while in fullscreen." } + onCheckedChanged: Config.options.appearance.fullscreenIndicator = checked; + } + ConfigSpinBox { text: "Opacity" value: Config.options.appearance.opacity @@ -361,4 +369,4 @@ ContentPage { } } } -} \ No newline at end of file +} From 1ffe96e9b6a29abf6727633eafae44b7aacdc9fb Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:51:34 +0200 Subject: [PATCH 03/11] Bind visibility to focused workspace fullscreen state Bind the 'visible' property to the 'hasFullscreen' property of the focused workspace to control visibility based on fullscreen state. --- .../sleex/modules/onScreenDisplay/OsdValueIndicator.qml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml index 073f5427..fe43665b 100644 --- a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml +++ b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml @@ -8,6 +8,7 @@ import QtQuick.Layouts import Quickshell import Quickshell.Widgets // import Qt5Compat.GraphicalEffects +import Quickshell.Hyprland Item { id: root @@ -21,6 +22,12 @@ Item { property real valueIndicatorLeftPadding: 10 property real valueIndicatorRightPadding: 20 // An icon is circle ish, a column isn't, hence the extra padding + // --- ADD THIS LINE --- + // Bind 'visible' to the 'hasFullscreen' property of the focused workspace. + // The '&&' acts as a null-check in case focusedWorkspace is not immediately available. + visible: Hyprland.focusedWorkspace && Hyprland.focusedWorkspace.hasFullscreen + // --------------------- + Layout.margins: Appearance.sizes.elevationMargin implicitWidth: Appearance.sizes.osdWidth implicitHeight: valueIndicator.implicitHeight From ab25b1cc5275ea7d7e5f5b218d8b8c0b210cdfed Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:53:24 +0200 Subject: [PATCH 04/11] Bind visibility to focused workspace's fullscreen state --- src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml index fe43665b..5052bfd9 100644 --- a/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml +++ b/src/share/sleex/modules/onScreenDisplay/OsdValueIndicator.qml @@ -22,11 +22,7 @@ Item { property real valueIndicatorLeftPadding: 10 property real valueIndicatorRightPadding: 20 // An icon is circle ish, a column isn't, hence the extra padding - // --- ADD THIS LINE --- - // Bind 'visible' to the 'hasFullscreen' property of the focused workspace. - // The '&&' acts as a null-check in case focusedWorkspace is not immediately available. visible: Hyprland.focusedWorkspace && Hyprland.focusedWorkspace.hasFullscreen - // --------------------- Layout.margins: Appearance.sizes.elevationMargin implicitWidth: Appearance.sizes.osdWidth From 6c69761e3030c5fe5035a73b1a9fcca1b2bde476 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:55:21 +0200 Subject: [PATCH 05/11] Add fullscreenIndicator property to appearance --- src/share/sleex/modules/common/Config.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/share/sleex/modules/common/Config.qml b/src/share/sleex/modules/common/Config.qml index 905afe4c..e4918c6c 100644 --- a/src/share/sleex/modules/common/Config.qml +++ b/src/share/sleex/modules/common/Config.qml @@ -78,6 +78,7 @@ Singleton { property JsonObject appearance: JsonObject { property bool transparency: false + property bool fullscreenIndicator: false property int opacity: 50 property JsonObject palette: JsonObject { property string type: "auto" // Allowed: auto, scheme-content, scheme-expressive, scheme-fidelity, scheme-fruit-salad, scheme-monochrome, scheme-neutral, scheme-rainbow, scheme-tonal-spot From 5347561db6a97649b2abf921dc9c5e83ec8637af Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Sun, 9 Nov 2025 16:56:28 +0200 Subject: [PATCH 06/11] Update on-screen display properties to use config --- src/share/sleex/shell.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/share/sleex/shell.qml b/src/share/sleex/shell.qml index b008bb60..fb1b62ea 100644 --- a/src/share/sleex/shell.qml +++ b/src/share/sleex/shell.qml @@ -35,8 +35,8 @@ ShellRoot { property bool enableDock: true property bool enableMediaControls: true property bool enableNotificationPopup: true - property bool enableOnScreenDisplayBrightness: false - property bool enableOnScreenDisplayVolume: false + property bool enableOnScreenDisplayBrightness: Config.options.appearance.fullscreenIndicator + property bool enableOnScreenDisplayVolume: Config.options.appearance.fullscreenIndicator property bool enableOverview: true property bool enablePolkit: true property bool enableReloadPopup: true From 8b01a69cca4fc41e878505e695f7a5d36b7eae67 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:25:15 +0200 Subject: [PATCH 07/11] Add overlay property with fullscreenIndicator --- src/share/sleex/modules/common/Config.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/share/sleex/modules/common/Config.qml b/src/share/sleex/modules/common/Config.qml index e4918c6c..a51c17fe 100644 --- a/src/share/sleex/modules/common/Config.qml +++ b/src/share/sleex/modules/common/Config.qml @@ -76,9 +76,12 @@ Singleton { ] } + property JsonObject overlay: JsonObject { + property bool fullscreenIndicator: false + } + property JsonObject appearance: JsonObject { property bool transparency: false - property bool fullscreenIndicator: false property int opacity: 50 property JsonObject palette: JsonObject { property string type: "auto" // Allowed: auto, scheme-content, scheme-expressive, scheme-fidelity, scheme-fruit-salad, scheme-monochrome, scheme-neutral, scheme-rainbow, scheme-tonal-spot From 2e31d847630ec76cb1fc65e228297200aeb8bf71 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:36:27 +0200 Subject: [PATCH 08/11] Update on-screen display properties for fullscreen indicator --- src/share/sleex/shell.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/share/sleex/shell.qml b/src/share/sleex/shell.qml index fb1b62ea..7f268931 100644 --- a/src/share/sleex/shell.qml +++ b/src/share/sleex/shell.qml @@ -35,8 +35,8 @@ ShellRoot { property bool enableDock: true property bool enableMediaControls: true property bool enableNotificationPopup: true - property bool enableOnScreenDisplayBrightness: Config.options.appearance.fullscreenIndicator - property bool enableOnScreenDisplayVolume: Config.options.appearance.fullscreenIndicator + property bool enableOnScreenDisplayBrightness: true + property bool enableOnScreenDisplayVolume: true property bool enableOverview: true property bool enablePolkit: true property bool enableReloadPopup: true @@ -60,8 +60,8 @@ ShellRoot { LazyLoader { active: enableDock && Config.options.dock.enabled; component: Dock {} } LazyLoader { active: enableMediaControls; component: MediaControls {} } LazyLoader { active: enableNotificationPopup; component: NotificationPopup {} } - LazyLoader { active: enableOnScreenDisplayBrightness; component: OnScreenDisplayBrightness {} } - LazyLoader { active: enableOnScreenDisplayVolume; component: OnScreenDisplayVolume {} } + LazyLoader { active: enableOnScreenDisplayBrightness && Config.options.overlay.fullscreenIndicator; component: OnScreenDisplayBrightness {} } + LazyLoader { active: enableOnScreenDisplayVolume && Config.options.overlay.fullscreenIndicator; component: OnScreenDisplayVolume {} } LazyLoader { active: enableOverview; component: Overview {} } LazyLoader { active: enablePolkit; component: Polkit {} } LazyLoader { active: enableReloadPopup; component: ReloadPopup {} } From 28cce834b3050f41c6e45b64d53035c98f0e26a9 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:05:43 +0200 Subject: [PATCH 09/11] Update OnScreenDisplayBrightness.qml Adjusted implicitWidth calculation to include elevation margin. --- .../modules/onScreenDisplay/OnScreenDisplayBrightness.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayBrightness.qml b/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayBrightness.qml index af6115cb..b3c4d2ac 100644 --- a/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayBrightness.qml +++ b/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayBrightness.qml @@ -82,9 +82,9 @@ Scope { anchors.horizontalCenter: parent.horizontalCenter Item { id: osdValuesWrapper - // Extra space for shadow + // Include extra space for shadow around all sides + implicitWidth: osdValues.implicitWidth + Appearance.sizes.elevationMargin * 2 implicitHeight: osdValues.implicitHeight + Appearance.sizes.elevationMargin * 2 - implicitWidth: osdValues.implicitWidth clip: true MouseArea { @@ -149,4 +149,4 @@ Scope { } } -} \ No newline at end of file +} From 11602fe2f942c47be254fc8bf1605f6646e01078 Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:06:05 +0200 Subject: [PATCH 10/11] Update OnScreenDisplayVolume.qml --- .../onScreenDisplay/OnScreenDisplayVolume.qml | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayVolume.qml b/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayVolume.qml index 5598f2ef..230ade2d 100644 --- a/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayVolume.qml +++ b/src/share/sleex/modules/onScreenDisplay/OnScreenDisplayVolume.qml @@ -81,7 +81,7 @@ Scope { top: true right: true } - + mask: Region { item: osdValuesWrapper } @@ -95,9 +95,9 @@ Scope { anchors.horizontalCenter: parent.horizontalCenter Item { id: osdValuesWrapper - // Extra space for shadow + // Include extra space for shadow around all sides + implicitWidth: contentColumnLayout.implicitWidth + Appearance.sizes.elevationMargin * 2 implicitHeight: contentColumnLayout.implicitHeight + Appearance.sizes.elevationMargin * 2 - implicitWidth: contentColumnLayout.implicitWidth clip: true MouseArea { @@ -147,6 +147,7 @@ Scope { RowLayout { id: protectionMessageRowLayout anchors.centerIn: parent + spacing: 5 MaterialSymbol { id: protectionMessageIcon text: "dangerous" @@ -184,21 +185,16 @@ Scope { showOsdValues = !showOsdValues } } + GlobalShortcut { name: "osdVolumeTrigger" description: qsTr("Triggers volume OSD on press") - - onPressed: { - root.triggerOsd() - } + onPressed: root.triggerOsd() } + GlobalShortcut { name: "osdVolumeHide" description: qsTr("Hides volume OSD on press") - - onPressed: { - root.showOsdValues = false - } + onPressed: root.showOsdValues = false } - -} \ No newline at end of file +} From 47acb103184d9c75e5375001b4bd7b6844c7258f Mon Sep 17 00:00:00 2001 From: Armiel <125122987+Abscissa24@users.noreply.github.com> Date: Mon, 17 Nov 2025 17:06:31 +0200 Subject: [PATCH 11/11] Update OsdValueIndicator.qml