# Automatic floating-window stacking Enable `wm-actions/keep_floating_above=true`. This covers existing and newly mapped floating application windows, untile/unmaximize, fullscreen exit, and minimize/restore. Automatic flags are removed when tiled, maximized or fullscreen. Manual Super+T choices last until the floating state changes; explicit manual on-top choices are preserved. Disable the older `simple-tile/float_on_top` and remove generic floating window-rules when using this policy to avoid competing owners of the same flag. Application-specific rules can remain. `all-floating-on-top.py` runs a private headless Wayfire with three stitched monitors and a fourth separate output. It never uses the active desktop sockets. Run it as a regular user with `WCM_TEST_STAGE` pointing at a directory containing: - `plugins/libwm-actions.so`: candidate library. - `metadata/wm-actions.xml`: candidate metadata. - `old-wm-actions.so`: pre-upgrade library, for resident-library reload coverage. - `scope-client`: the Wayland fixture built from `all-floating-client.c` with generated xdg-shell and wlr-layer-shell client headers/protocol sources named `xdg-shell-client.h`, `wlr-layer-shell-client.h`, `xdg-shell.c`, `wlr-layer-shell.c`. The runner uses installed Wayfire unless `WCM_TEST_COMPOSITOR` is set. It needs `stipc`, `ipc-rules`, `output-control`, `simple-tile`, `grid`, `grim`, and Pillow. Pixel checks verify floating windows remain above maximized/tiled windows even when those underlying windows gain focus. State checks cover startup, live plugin replacement, new windows, keyboard and IPC retiling, maximize/fullscreen, minimize/restore, manual override, and configuration reload.