Dotfiles/desktopenvs/hyprlua
Amir Alexander Abdelbaki 68b3f2bdd0 fix(astro-menu): stop the taskbar poll resetting the window list's scroll
The workspace/window panel couldn't be scrolled: it snapped back to the top
about once a second. Nothing to do with the hologram overlay (a DrawingArea
with can_target=False that only ever queue_draw()s itself) — it was the 1 Hz
refresh that start_polling() runs while the menu is open. Both of its
callbacks called _rebuild_panel(), which did _clear(self._panel) and rebuilt
every widget, including a fresh Gtk.ScrolledWindow for the list. Emptying
scrolled content collapses the scroll adjustment's upper bound, so its value
is clamped back to 0 and the viewport jumps to the top.

The panel scaffolding (header, layout stack + switcher, list scroller) is now
built once in _build_panel_scaffold() and refreshed in place by _update_panel:

  * The layout tabs are the same for every workspace — only the selection is
    per-workspace, and _sync_layout_controls() already refreshes that — so
    they no longer get torn down either.
  * _update_window_list() compares the sorted window addresses with the last
    set. Unchanged: row contents (title, ws N, icon) are updated in place, so
    a retitled window can't move the viewport. Changed: only the rows are
    rebuilt, and both scrollers' offsets are saved and restored on idle, once
    the new rows are allocated and the adjustment's upper is no longer stale.
  * _rebuild_strip() gets the same signature guard, so the poll stops
    resetting the compact strip's horizontal scroll and no longer tears down a
    grouped app's instance popover while it's open. It keys on addresses only:
    strip titles are tooltip/popover-only and refresh on the next real change.

Applied identically to hyprlua and hyprdrive.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:15:34 +02:00
..
CRT feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
Vencord feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
alacritty feat(terminals): deploy CyberQueer palette across kitty/alacritty everywhere 2026-07-20 10:01:35 +02:00
astal-menu fix(astro-menu): stop the taskbar poll resetting the window list's scroll 2026-08-05 23:15:34 +02:00
audio-panel fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
audio-panel-theme fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
btop feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
config-updater feat(hyprdrive,hyprlua): add supersonic-booster/audio-panel PipeWire mixer panel 2026-07-29 15:41:57 +02:00
dunst fix(niri): correct window opacity rules and align theming to CyberQueer palette 2026-06-01 17:37:11 +02:00
eww fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
eww-nobattery feat(hyprdrive,hyprlua): add supersonic-booster/audio-panel PipeWire mixer panel 2026-07-29 15:41:57 +02:00
eww-touch fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
greetd-regreet fix(greetd): give hyprlua its own plain greeter skin, separate from hyprdrive 2026-07-30 20:03:43 +02:00
greetd-tuigreet feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
gtk-3.0 feat(qt,gtk): overhaul theming — qt6ct style plugin, dark palette, GTK color-scheme 2026-05-19 13:43:13 +02:00
hypr feat(binds): thunar on Super+F, mixer panel on Super+S, ssh on Super+Ctrl+S 2026-08-05 23:15:20 +02:00
kitty feat(hyprlua/kitty): finish the CyberQueer kitty theme 2026-07-20 08:56:52 +02:00
mnotifd fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
mnotifd-theme fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
mnotifhist fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
mnotifhist-theme fix(hyprlua): match notif/audio-panel theming to eww's violet/magenta look 2026-07-30 20:03:18 +02:00
nwg-dock-hyprland feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
nwg-drawer feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
nwg-panel feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
scripts fix(hyprlua): fix the touchpad toggle keybind 2026-07-30 20:15:37 +02:00
spicetify feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
ulauncher feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
vicinae fix(hyprlua): theme and position vicinae correctly 2026-05-19 11:48:14 +02:00
walker feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
waybar chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
wofi chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
xfce4 feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
mimeapps.list feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00