From 16486ba05478f4e47711d8fec99a6177a9da44c8 Mon Sep 17 00:00:00 2001 From: loner <2788892716@qq.com> Date: Mon, 24 Nov 2025 00:15:53 +0800 Subject: [PATCH] Fix: Prevent lockkey OSD from showing at startup --- Services/Keyboard/LockKeysService.qml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Services/Keyboard/LockKeysService.qml b/Services/Keyboard/LockKeysService.qml index e7dafd1bf..32958e8a6 100644 --- a/Services/Keyboard/LockKeysService.qml +++ b/Services/Keyboard/LockKeysService.qml @@ -16,6 +16,9 @@ Singleton { signal numLockChanged(bool active) signal scrollLockChanged(bool active) + // Flag to track if this is the initial check to avoid OSD triggers + property bool initialCheckDone: false + Process { id: stateCheckProcess @@ -38,24 +41,34 @@ scroll=0; cat /sys/class/leds/input*::scrolllock/brightness 2>/dev/null | grep - if (key === "caps") { if (root.capsLockOn !== newState) { root.capsLockOn = newState; - root.capsLockChanged(newState); + if (root.initialCheckDone) { + root.capsLockChanged(newState); + } Logger.i("LockKeysService", "Caps Lock:", capsLockOn); } } else if (key === "num") { if (root.numLockOn !== newState) { root.numLockOn = newState; - root.numLockChanged(newState); + if (root.initialCheckDone) { + root.numLockChanged(newState); + } Logger.i("LockKeysService", "Num Lock:", numLockOn); } } else if (key === "scroll") { if (root.scrollLockOn !== newState) { root.scrollLockOn = newState; - root.scrollLockChanged(newState); + if (root.initialCheckDone) { + root.scrollLockChanged(newState); + } Logger.i("LockKeysService", "Scroll Lock:", scrollLockOn); } } } } + // Set initialCheckDone to true after the first check is complete + if (!root.initialCheckDone) { + root.initialCheckDone = true; + } } } stderr: StdioCollector {