Replies: 1 comment 1 reply
-
|
Thanks for the detailed proposal! I've been thinking about the same problem -- windows shouldn't overlap, and arranging them manually gets tedious. I thought about adding physics too, but it would add a lot of complexity, make interacting with compositor much less predictable, tuning physics is another thing which needs to be done right, and physics layer introduces idle cost. I'm currently solving this issue with snap-adjacency groups. Snap is deterministic and predictable. On top of that I'm currently addding on-demand calculation of snapped windows graph. The https://github.com/malbiruk/driftwm/tree/window-groups branch has the first two working:
Physics could complement this well in the future as the engine behind placement and resize propagation within groups. Right now those are hand-rolled constraint solvers. A physics settle step could replace them with something simpler and more general. The snap-adjacency group structure would stay the same, physics would just handle the "how do members rearrange" part. Something to explore once the current foundation is solid. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Add optional physics simulation where windows behave as physical objects with repulsion, friction, and collision detection.
Motivation
When opening multiple windows in the same location, they currently overlap completely. With physics enabled, windows would automatically "push away" from each other and settle into an organic layout without manual positioning.
This creates a unique UX that doesn't exist in any other window manager — a middle ground between manual floating and rigid tiling.
Proposed Implementation
Configuration
Add a new [physics] section to config.toml:
Behavior
Use Cases
Technical Considerations
Visual Feedback
Prior Art
Open Questions
Implementation Roadmap
I'm happy to help test this if there's interest!
Beta Was this translation helpful? Give feedback.
All reactions