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 01/12] 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 02/12] 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 03/12] 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 04/12] 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 05/12] 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 9a3bb5e59ef739d7c1f59fa957b375ee01f2be6e Mon Sep 17 00:00:00 2001 From: GokuPlay609 Date: Wed, 25 Feb 2026 13:16:46 +0530 Subject: [PATCH 06/12] fix: sudo keepalive cleanup leaking exit code 143 wait on a SIGTERM-killed process returns 143 (128+15). With set -e active in the setup script, this overrides the script's exit code, making a successful install appear failed. Amp-Thread-ID: https://ampcode.com/threads/T-019c93b6-b135-743f-8844-6a1ca8875506 Co-authored-by: Amp --- sdata/lib/functions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdata/lib/functions.sh b/sdata/lib/functions.sh index 423f45b81..bc8f08400 100644 --- a/sdata/lib/functions.sh +++ b/sdata/lib/functions.sh @@ -119,8 +119,8 @@ function sudo_init_keepalive(){ # Stop the sudo keepalive background process function sudo_stop_keepalive(){ if [[ -n "$SUDO_KEEPALIVE_PID" ]] && kill -0 "$SUDO_KEEPALIVE_PID" 2>/dev/null; then - kill "$SUDO_KEEPALIVE_PID" 2>/dev/null - wait "$SUDO_KEEPALIVE_PID" 2>/dev/null + kill "$SUDO_KEEPALIVE_PID" 2>/dev/null || true + wait "$SUDO_KEEPALIVE_PID" 2>/dev/null || true SUDO_KEEPALIVE_PID="" fi } 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 07/12] 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); } } From 060b8693efac2ffaa423470489c5beb2736550e3 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 27 Feb 2026 22:48:23 +0100 Subject: [PATCH 08/12] hyprland: adjust some effects --- dots/.config/hypr/hyprland/general.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dots/.config/hypr/hyprland/general.conf b/dots/.config/hypr/hyprland/general.conf index 44160ed0d..7748a1327 100644 --- a/dots/.config/hypr/hyprland/general.conf +++ b/dots/.config/hypr/hyprland/general.conf @@ -48,7 +48,7 @@ dwindle { decoration { # 2 = circle, higher = squircle, 4 = very obvious squircle # Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous - rounding_power = 2.4 + rounding_power = 2 rounding = 18 blur { @@ -81,7 +81,7 @@ decoration { # Dim dim_inactive = true dim_strength = 0.05 - dim_special = 0.07 + dim_special = 0.2 } animations { @@ -116,7 +116,7 @@ animations { animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert # zoom - animation = zoomFactor, 1, 3, emphasizedDecel + animation = zoomFactor, 1, 3, standardDecel } input { From 48fec445ade24508ac289b2bc82c5e0142104894 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Fri, 27 Feb 2026 22:49:34 +0100 Subject: [PATCH 09/12] hyprland: nuke unused plugin config to fix error on 0.54 --- dots/.config/hypr/hyprland/general.conf | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/dots/.config/hypr/hyprland/general.conf b/dots/.config/hypr/hyprland/general.conf index 7748a1327..071515e4c 100644 --- a/dots/.config/hypr/hyprland/general.conf +++ b/dots/.config/hypr/hyprland/general.conf @@ -166,16 +166,3 @@ cursor { hotspot_padding = 1 } -# Overview -plugin { - hyprexpo { - columns = 3 - gap_size = 5 - bg_col = rgb(000000) - workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1 - - enable_gesture = false # laptop touchpad, 4 fingers - gesture_distance = 300 # how far is the "max" - gesture_positive = false - } -} From 57b78135a668dbbe10797823f049d715acf763d4 Mon Sep 17 00:00:00 2001 From: Jay Turner Date: Sat, 28 Feb 2026 01:01:29 +0000 Subject: [PATCH 10/12] Fix extra whitespace that was mildly annoying me --- dots/.config/hypr/hyprland/keybinds.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/hypr/hyprland/keybinds.conf b/dots/.config/hypr/hyprland/keybinds.conf index c4454db16..c5357abbe 100644 --- a/dots/.config/hypr/hyprland/keybinds.conf +++ b/dots/.config/hypr/hyprland/keybinds.conf @@ -251,7 +251,7 @@ bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden] ##! Apps bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal -bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) +bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser From 77dd8393205d64df64410f4595da2e1cd6930dc1 Mon Sep 17 00:00:00 2001 From: Furkan <77557433+MematiBas42@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:06:06 +0300 Subject: [PATCH 11/12] Fix escape character in network strength command --- dots/.config/quickshell/ii/services/Network.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/services/Network.qml b/dots/.config/quickshell/ii/services/Network.qml index 8c3e5a9d1..12cecd303 100644 --- a/dots/.config/quickshell/ii/services/Network.qml +++ b/dots/.config/quickshell/ii/services/Network.qml @@ -233,7 +233,7 @@ Singleton { Process { id: updateNetworkStrength running: true - command: ["sh", "-c", "nmcli -f IN-USE,SIGNAL,SSID device wifi | awk '/^\*/{if (NR!=1) {print $2}}'"] + command: ["sh", "-c", "nmcli -f IN-USE,SIGNAL,SSID device wifi | awk '/^\\*/{if (NR!=1) {print $2}}'"] stdout: SplitParser { onRead: data => { root.networkStrength = parseInt(data); From 2554fc7d61658517d3b429d5c91054c0f6708db8 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 2 Mar 2026 21:58:47 +0100 Subject: [PATCH 12/12] waffles: more readable calendar months when scrolling --- .../ii/modules/waffle/notificationCenter/CalendarWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dots/.config/quickshell/ii/modules/waffle/notificationCenter/CalendarWidget.qml b/dots/.config/quickshell/ii/modules/waffle/notificationCenter/CalendarWidget.qml index 7c01a0b01..16dc831e1 100644 --- a/dots/.config/quickshell/ii/modules/waffle/notificationCenter/CalendarWidget.qml +++ b/dots/.config/quickshell/ii/modules/waffle/notificationCenter/CalendarWidget.qml @@ -79,7 +79,7 @@ BodyRectangle { id: dayButton required property var model checked: model.today - enabled: hovered || calendarView.scrolling || checked || model.month === calendarView.focusedMonth + enabled: hovered || checked || model.month === calendarView.focusedMonth implicitWidth: calendarView.buttonSize implicitHeight: calendarView.buttonSize radius: height / 2