Parent
#6
What to build
Connect the existing focus watcher to layout selection so the daemon automatically pushes the correct layout when the focused application changes. The daemon loads all YAML files from a layouts directory (not a single file), matches each focused app's AppInfo against the match list in each layout, and pushes the matching layout to all connected clients. Falls back to the default layout when no match is found.
Acceptance criteria
Blocked by
Parent
#6
What to build
Connect the existing focus watcher to layout selection so the daemon automatically pushes the correct layout when the focused application changes. The daemon loads all YAML files from a layouts directory (not a single file), matches each focused app's
AppInfoagainst thematchlist in each layout, and pushes the matching layout to all connected clients. Falls back to thedefaultlayout when no match is found.Acceptance criteria
--layouts-dirargument (or scans alayouts/directory) and loads all YAML files at startupmatchlist contains the app'sapp_idorwm_classmatch: [default]FakeFocusBackenddrives focus changes in tests; assertions verify correctLayoutMessageis pushedjust watch-focusstill works (focus backend unchanged)Blocked by