From 4fbd238a908ab4b37f22023cbf731d2e91b6f5a6 Mon Sep 17 00:00:00 2001 From: Akash <145587932+Itsmeakash248@users.noreply.github.com> Date: Sun, 1 Feb 2026 10:54:40 +0530 Subject: [PATCH 1/6] fix(dock): add robust retry mechanism for desktop entry lookup Resolves an issue where dock buttons would fail to function on startup if the system's application database wasn't fully loaded. Adds a self-healing timer to DockAppButton. --- .../quickshell/ii/modules/ii/dock/DockAppButton.qml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml index 8d2d270ae..297d363af 100644 --- a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml +++ b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml @@ -18,7 +18,18 @@ DockButton { property bool appIsActive: appToplevel.toplevels.find(t => (t.activated == true)) !== undefined readonly property bool isSeparator: appToplevel.appId === "SEPARATOR" - readonly property var desktopEntry: DesktopEntries.heuristicLookup(appToplevel.appId) + property var desktopEntry: DesktopEntries.heuristicLookup(appToplevel.appId) + + Timer { + // Retry looking up the desktop entry if it failed (e.g. database not loaded yet) + interval: 500 + running: !root.isSeparator && root.desktopEntry === null + repeat: true + onTriggered: { + root.desktopEntry = DesktopEntries.heuristicLookup(root.appToplevel.appId); + } + } + enabled: !isSeparator implicitWidth: isSeparator ? 1 : implicitHeight - topInset - bottomInset From feeb0bba8c985735da544404f3599ad12c885ab3 Mon Sep 17 00:00:00 2001 From: Akash <145587932+Itsmeakash248@users.noreply.github.com> Date: Sat, 7 Feb 2026 17:27:55 +0530 Subject: [PATCH 2/6] Modify touchpad settings in general.conf --- dots/.config/hypr/hyprland/general.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/hypr/hyprland/general.conf b/dots/.config/hypr/hyprland/general.conf index 44160ed0d..cfb77a778 100644 --- a/dots/.config/hypr/hyprland/general.conf +++ b/dots/.config/hypr/hyprland/general.conf @@ -130,9 +130,9 @@ input { touchpad { natural_scroll = yes - disable_while_typing = true + disable_while_typing = false clickfinger_behavior = true - scroll_factor = 0.7 + scroll_factor = 1 } } From 8d52e83a595f3fdd17ea60a9c2c22159f9cfee00 Mon Sep 17 00:00:00 2001 From: Akash <145587932+Itsmeakash248@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:46:10 +0530 Subject: [PATCH 3/6] Update touchpad settings in general.conf --- dots/.config/hypr/hyprland/general.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dots/.config/hypr/hyprland/general.conf b/dots/.config/hypr/hyprland/general.conf index cfb77a778..44160ed0d 100644 --- a/dots/.config/hypr/hyprland/general.conf +++ b/dots/.config/hypr/hyprland/general.conf @@ -130,9 +130,9 @@ input { touchpad { natural_scroll = yes - disable_while_typing = false + disable_while_typing = true clickfinger_behavior = true - scroll_factor = 1 + scroll_factor = 0.7 } } From fb1b674a302e5150d95efd3ff1ee5df4a1a1d621 Mon Sep 17 00:00:00 2001 From: Akash <145587932+Itsmeakash248@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:44:13 +0530 Subject: [PATCH 4/6] fix: Implement a limited retry mechanism for desktop entry lookups in app buttons. --- .../ii/modules/ii/dock/DockAppButton.qml | 4 +++- .../ii/modules/waffle/bar/tasks/TaskAppButton.qml | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml index 297d363af..290ce2d42 100644 --- a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml +++ b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml @@ -22,10 +22,12 @@ DockButton { Timer { // Retry looking up the desktop entry if it failed (e.g. database not loaded yet) + property int retryCount: 0 interval: 500 - running: !root.isSeparator && root.desktopEntry === null + running: !root.isSeparator && root.desktopEntry === null && retryCount < 30 repeat: true onTriggered: { + retryCount++; root.desktopEntry = DesktopEntries.heuristicLookup(root.appToplevel.appId); } } diff --git a/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml b/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml index 51e6b61a1..3374e5512 100644 --- a/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml +++ b/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml @@ -12,7 +12,20 @@ AppButton { required property var appEntry readonly property bool isSeparator: appEntry.appId === "SEPARATOR" - readonly property var desktopEntry: DesktopEntries.heuristicLookup(appEntry.appId) + property var desktopEntry: DesktopEntries.heuristicLookup(appEntry.appId) + + Timer { + // Retry looking up the desktop entry if it failed (e.g. database not loaded yet) + property int retryCount: 0 + interval: 500 + running: !root.isSeparator && root.desktopEntry === null && retryCount < 30 + repeat: true + onTriggered: { + retryCount++; + root.desktopEntry = DesktopEntries.heuristicLookup(root.appEntry.appId); + } + } + property bool active: root.appEntry.toplevels.some(t => t.activated) property bool hasWindows: appEntry.toplevels.length > 0 From cea0acafff6180be382e613f7f29ee0cef03d491 Mon Sep 17 00:00:00 2001 From: Akash <145587932+Itsmeakash248@users.noreply.github.com> Date: Tue, 17 Feb 2026 14:47:08 +0530 Subject: [PATCH 5/6] fix: refine desktop entry lookup retry logic --- .../quickshell/ii/modules/ii/dock/DockAppButton.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml index 290ce2d42..bf199b0ae 100644 --- a/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml +++ b/dots/.config/quickshell/ii/modules/ii/dock/DockAppButton.qml @@ -22,12 +22,12 @@ DockButton { Timer { // Retry looking up the desktop entry if it failed (e.g. database not loaded yet) - property int retryCount: 0 - interval: 500 - running: !root.isSeparator && root.desktopEntry === null && retryCount < 30 + property int retryCount: 5 + interval: 1000 + running: !root.isSeparator && root.desktopEntry === null && retryCount > 0 repeat: true onTriggered: { - retryCount++; + retryCount--; root.desktopEntry = DesktopEntries.heuristicLookup(root.appToplevel.appId); } } From 577fab457fef55ced75d986a0f105d079f77eee9 Mon Sep 17 00:00:00 2001 From: Minh <97237370+end-4@users.noreply.github.com> Date: Thu, 26 Feb 2026 21:02:21 +0100 Subject: [PATCH 6/6] waffle: bar: adjust desktop entry lookup interval & timeout --- .../ii/modules/waffle/bar/tasks/TaskAppButton.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml b/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml index 3374e5512..d4d7c072b 100644 --- a/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml +++ b/dots/.config/quickshell/ii/modules/waffle/bar/tasks/TaskAppButton.qml @@ -16,12 +16,12 @@ AppButton { Timer { // Retry looking up the desktop entry if it failed (e.g. database not loaded yet) - property int retryCount: 0 - interval: 500 - running: !root.isSeparator && root.desktopEntry === null && retryCount < 30 + property int retryCount: 5 + interval: 1000 + running: !root.isSeparator && root.desktopEntry === null && retryCount > 0 repeat: true onTriggered: { - retryCount++; + retryCount--; root.desktopEntry = DesktopEntries.heuristicLookup(root.appEntry.appId); } }