diff options
| -rw-r--r-- | docs/TODO.md | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/TODO.md b/docs/TODO.md index 785e799..2593728 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,5 +1,11 @@ # TODO / planned features - master checklist +## Monitor scale: investigated a live path, parked rather than built (2026-08-28) + +`srd.monitor.split` got a live IPC path this session; `srd.monitor.scale` was the obvious next candidate, also flagged PARTIAL in the earlier AGS-capability survey. Investigated what a live path would actually require: `WindowManager::monitor_scale` is read by exactly two functions, `disable_connector_by_name`/`enable_connector_by_name` (`udev/outputs.rs`) - the only two places that ever bring a head up or down at all. There is no third, lighter-weight "just reconfigure the mode in place" path; applying a changed scale live means calling both, back to back, which is a real disable-then-re-enable cycle on the actual physical connector - the same real screen blank a genuine unplug/replug already causes, not a silent in-place change. + +Parked rather than built (`nightshift questions`): this is a real, disruptive side effect on the user's live session, not a design detail to decide alone. `srd.monitor.split`'s own live path was safe to build without asking because it's purely a placement computation with no hardware effect at all - this is a different kind of change. Left `monitor.scale` as Lua-config/restart-only for now; a live path is real, buildable work whenever the user says a brief blank is an acceptable cost for it. + ## Tiling: master/stack ratio is now live, and interactive resize actually does something (2026-08-28) Investigated "what happened to tiling" directly. `MasterStackLayout` itself (dwm/i3-style master+stack columns) was already real, tested and correct - gaps live-adjustable, directional swap working, floating/fullscreen correctly excluded. The actual gap: dragging or resizing a tiled window did nothing durable. `start_resize`/`update_resize` had zero tiling awareness - grabbing and dragging a tiled window's border wrote raw geometry exactly like a floating window, which the very next `arrange_workspace` call (triggered by almost anything: a window closing, a focus change) silently discarded, since tiling always fully recomputes every non-floating window's geometry from the master/stack math. On top of that, `master_ratio`/`master_count` were config-file-only - no keybind, no `srd set`, no way to adjust either live the way dwm/i3/Hyprland all let you drag the master/stack boundary or bump master count with a key. |