summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-04 22:34:49 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-04 22:34:49 +1000
commitd95c1347171965891fcb24023afbc8c462e1a920 (patch)
tree5b7375af541573fb140e81f78ad98f3089033069
parentfeat: brightness osd (diff)
downloadcaelestia-shell-d95c1347171965891fcb24023afbc8c462e1a920.tar.gz
caelestia-shell-d95c1347171965891fcb24023afbc8c462e1a920.tar.bz2
caelestia-shell-d95c1347171965891fcb24023afbc8c462e1a920.zip
osd: pause hide on hover
-rw-r--r--modules/osd/Osd.qml19
-rw-r--r--services/Hyprland.qml6
2 files changed, 22 insertions, 3 deletions
diff --git a/modules/osd/Osd.qml b/modules/osd/Osd.qml
index 4d6ab7e..33a12ab 100644
--- a/modules/osd/Osd.qml
+++ b/modules/osd/Osd.qml
@@ -13,6 +13,7 @@ Variants {
required property ShellScreen modelData
readonly property Brightness.Monitor monitor: Brightness.getMonitorForScreen(modelData)
property bool osdVisible
+ property bool hovered
function show(): void {
root.osdVisible = true;
@@ -43,7 +44,10 @@ Variants {
id: timer
interval: OsdConfig.hideDelay
- onTriggered: root.osdVisible = false
+ onTriggered: {
+ if (!root.hovered)
+ root.osdVisible = false;
+ }
}
LazyLoader {
@@ -91,6 +95,19 @@ Variants {
monitor: root.monitor
}
}
+
+ HoverHandler {
+ id: hoverHandler
+
+ parent: win
+ onHoveredChanged: {
+ root.hovered = hovered;
+ if (hovered)
+ timer.stop();
+ else
+ root.osdVisible = false;
+ }
+ }
}
}
}
diff --git a/services/Hyprland.qml b/services/Hyprland.qml
index 481ee7c..f0a0a97 100644
--- a/services/Hyprland.qml
+++ b/services/Hyprland.qml
@@ -40,8 +40,9 @@ Singleton {
Process {
id: getClients
- command: ["sh", "-c", "hyprctl -j clients | jq -c"]
+ command: ["hyprctl", "-j", "clients"]
stdout: SplitParser {
+ splitMarker: ""
onRead: data => {
const clients = JSON.parse(data);
const rClients = root.clients;
@@ -69,8 +70,9 @@ Singleton {
Process {
id: getActiveClient
- command: ["sh", "-c", "hyprctl -j activewindow | jq -c"]
+ command: ["hyprctl", "-j", "activewindow"]
stdout: SplitParser {
+ splitMarker: ""
onRead: data => {
const client = JSON.parse(data);
root.activeClient = client.address ? clientComp.createObject(root, {