From 1e7b0c158024e1645b1dc096ce0bd44dd8c40a45 Mon Sep 17 00:00:00 2001 From: Jason Perlow Date: Sun, 20 Sep 2026 18:37:44 -0400 Subject: [PATCH] fix(sidebar): bound keyboard backlight scale marks High-resolution LED drivers can expose thousands of raw brightness levels. Creating one GtkScale mark per raw level makes the sidebar request a surface wider than GPU limits. Assisted-by: Claude Code:claude-sonnet-5 AI-Scope: Diagnosed an oversized sidebar surface from crash analysis on real T2 hardware and bounded keyboard-backlight tick marks while preserving all real brightness increments. --- src/components/sidebar/views/system_view.vala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/sidebar/views/system_view.vala b/src/components/sidebar/views/system_view.vala index e67f2ee..8155fcb 100644 --- a/src/components/sidebar/views/system_view.vala +++ b/src/components/sidebar/views/system_view.vala @@ -556,8 +556,10 @@ namespace Singularity { // Snap to discrete hardware levels double kbd_step = 100.0 / kbd_brightness.levels; kbd_scale.set_increments(kbd_step, kbd_step); - for (int i = 0; i <= kbd_brightness.levels; i++) { - double v = (i * 100.0) / kbd_brightness.levels; + // Bound decorative marks; one per raw level can exceed GPU surface limits. + int mark_intervals = int.min(kbd_brightness.levels, 10); + for (int i = 0; i <= mark_intervals; i++) { + double v = (i * 100.0) / mark_intervals; kbd_scale.add_mark(v, PositionType.BOTTOM, null); } kbd_scale.set_value(kbd_brightness.brightness);