Ultrawide monitors - back at it now that AI coding agents are much better #2055
Replies: 1 comment
-
|
in case its interesting, here is my design doc Design: Ultrawide Zone Layout for AeroSpaceGenerated by /office-hours Problem StatementAeroSpace's flat tiling model doesn't work well on ultrawide monitors (21:9+). Windows tile Constraints
Premises
Approaches ConsideredApproach A: Zones as named TilingContainers (chosen)
Approach B: Zones as fake monitors
Approach C: Config-only workspace pinning
Recommended Approach2Approach A — Zones as named TilingContainers. The existing tree model is already the right abstraction. Tree structureCRITICAL: Zone containers are children of On non-ultrawide: zones are removed and Implementation planPhase 1: Zone engine (core, start here)
Phase 2: Layout memory per monitor profile
Phase 3: Float rules (note — mostly already works) Float support via Key files to touch
Open Questions
Success Criteria
Distribution PlanThis is a personal fork. No distribution needed. Build with Test PlanFile:
File:
File:
Next Steps
Design Decisions (from /plan-design-review)Zone Visual Identity (Pass 1 — decided)Zones are structurally invisible in the window layout (no special borders or gaps vs. normal tiling). Visual feedback comes from the menu bar zone indicator, shown only when ultrawide is active. Menu bar zone indicator spec:
Files to add to Phase 1 (Key files table):
Update
Hotkey Bindings (Pass 3 — decided)Personal config bindings for # In aerospace.toml, add to [mode.main.binding]:
alt-shift-h = 'move-node-to-zone left' # ⚠ conflicts with default 'move left'
alt-shift-a = 'move-node-to-zone center' # ⚠ conflicts with default 'move-node-to-workspace A'
alt-shift-e = 'move-node-to-zone right' # ⚠ conflicts with default 'move-node-to-workspace E'
# focus-zone (switch active zone without moving a window):
alt-ctrl-h = 'focus-zone left'
alt-ctrl-a = 'focus-zone center'
alt-ctrl-e = 'focus-zone right'Note: All three conflict with Interaction States (Pass 2 — decided)Follows AeroSpace command conventions: silent on success, stderr on failure.
GSTACK REVIEW REPORT
OUTSIDE VOICE (Claude subagent): Found normalizeContainers() conflict — zones destroyed when empty. Fixed via VERDICT: ENG + DESIGN CLEARED — ready to implement. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I previously asked about this - i.e. the ability to have aerospace work better with ultrawide monitors. I thought - having 3 zones (left/center/right) makes more sense than tiling across huge screens.
In the past, I tried (and failed) with AI coding to make something work. Now that AI coding agents are much better, I decided to give it another crack. Bottom line - I have something working quite well. It is designed for me and my setup, so no promises that it is good for anything else.
What it does:
auto-detects wide screens
sets up 3 zones (left/center/right) with user-configurable ratios (defaults to 33/33/33)
when starting, if a window is in, or mostly in, a zone, puts the window into that zone
floating windows are not bound by zones
user-configurable default layout per zone
move-to-zone and focus-zone commands
probably some other stuff that i cant remember right now
if useful, happy to share (its a fork at the moment)
Beta Was this translation helpful? Give feedback.
All reactions