Dotfiles/desktopenvs/hyprlua
Amir Alexander Abdelbaki dc0436136b fix(astal-menu): fix layout-tab sync race across workspace switches
_sync_layout_controls() fires 3 concurrent hyprctl calls, and refresh()
can trigger it twice per open (once from the clients query, once from
the activeworkspace one) — each rebuilding a fresh set of layout
widgets. Two bugs followed:

1. The 3 callbacks each toggled the shared self._syncing flag
   independently (True at start, False at end). Whichever resolved
   first dropped the guard while the others — notably the tab-
   selection one, which programmatically flips the visible stack
   child — were still in flight. That let _on_tab_switch/_on_opt_change
   misfire as if the user had clicked, re-applying stale layout data
   via layouts.set() to whatever workspace was active by the time the
   callback landed.

2. A second _sync_layout_controls() call (from the redundant rebuild)
   could land mid-flight of the first, so a stale callback from sync
   #1 could decrement sync #2's guard or write sync #1's data into
   sync #2's freshly built widgets.

Fixed with a generation token: any sync superseded by a newer one is
invalidated outright, and self._syncing only lifts once the *current*
generation's 3 calls have all resolved. This is what "query the
current workspace's layout when opened, so it doesn't break switching
workspaces" needed — refresh() already re-queried on open, the gap was
in trusting stale in-flight results.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TLz6HWsXCwzQ97LrLt2em6
2026-07-09 16:48:42 +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: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
astal-menu fix(astal-menu): fix layout-tab sync race across workspace switches 2026-07-09 16:48:42 +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(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
dunst fix(niri): correct window opacity rules and align theming to CyberQueer palette 2026-06-01 17:37:11 +02:00
eww feat(hyprlua): per-file layout registry (default scrolling↓); menu layout+window controls 2026-07-06 11:52:46 +02:00
eww-nobattery feat(hyprlua): per-file layout registry (default scrolling↓); menu layout+window controls 2026-07-06 11:52:46 +02:00
eww-touch fix(eww-touch): use nobattery bar's astal-menu launcher button 2026-07-09 08:34:41 +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(hyprlua): default to columns, special:magic to scrolling 2026-07-09 16:48:12 +02:00
kitty feat(archiso+branding): rebrand to m-archy, ship fastfetch logo and os-release 2026-06-26 09:50:39 +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 perf(astal-menu): use gdbus Activate fast path in menu-toggle.sh 2026-07-09 09:18:34 +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