Per-workspace or Per-monitor Layout Configuration (Scrolling Layout) #14029
Replies: 5 comments 1 reply
|
I second that this is crucial for multi-monitor setups with mixed aspect ratios. I currently use a horizontal and a vertical monitor with horizontal and vertical scrolling layouts with 1/2 and 1/3 column widths, respectively. But I have to manually adjust every, single, window I put on the vertical monitor, which gets a bit annoying. It is also natural that since we already have per workspace layouts, and some control over layout options per workspace via The existing The same |
|
I also have a horizontal + vertical setup and found the following to work well for myself as a provisory solution. The downsize is that it uses fixed workspaces per monitor. |
|
Agreed. My thinking is that this feature is a must not only for the scrolling layout, but for all layouts for that matter. I'd like to have a specific workspace where the mfact option is set to 75% (global mfact value is 50%). It should be as easy as setting the option like: hl.workspace_rule({
workspace = "4",
layout = "master",
layout_opts = { mfact = 0.75 },
}) |
|
What you mentioned is fine, but doing it through the workspaces_rule options is a bit dirty in my opinion. To be honest, I've reviewed the Hyprland code and the options already exist; you would just need to add a couple of lines to the layoutopt options to make it work universally. I still don't understand why they don't implement it natively. |
|
Didn't hyprland previously support it? I was using mfact 0.7 on my portrait monitor to a specific workspace (3), which always worked until recently |
Uh oh!
There was an error while loading. Please reload this page.
Currently, Hyprland allows some layout configuration via
layoutoptandwindowrule. However, there is no flexible way to define layout behavior per monitor or per workspace, which is especially useful in mixed-orientation setups.This feature would allow configuring properties like
column_width,direction, and other layout options depending on the active monitor or workspace.In multi-monitor setups, especially with:
A horizontal primary monitor
A vertical secondary monitor
…layout needs differ significantly.
Examples:
Horizontal monitor →
column_width = 0.5Vertical monitor →
column_width = 0.3–0.4Current limitations:
layoutoptis limited in scopewindowruleis too granular and lacks context awarenessNo clean, declarative way to define layout per monitor/workspace
Current Limitations
1. Limited workspace configuration
✔ Supports direction
❌ Does not allow full layout control (e.g. consistent
column_width)2.
windowruleis not enough✔ Works per application
❌ No monitor/workspace context
❌ Not scalable for complex setups
Proposed Solution
✅ 1. Per-monitor configuration
✅ 2. Per-workspace configuration
✅ 3. Optional contextual rules
Benefits
Better use of space on vertical monitors
More declarative and clean configuration
Reduced reliance on
windowruleScales well for advanced multi-monitor setups
Real-world Example
Setup:
DP-1→ horizontal main monitorHDMI-A-1→ vertical monitorDesired behavior:
Alternatives Considered
windowruleonly → too granularlayoutoptonly → too limitedExternal scripts → not elegant
📎 Additional Notes
This would be especially useful for:
Scrolling layouts
Mixed vertical/horizontal setups
Developer workflows (VSCode, browsers, terminals)
Closing
Adding per-monitor and per-workspace layout configuration would significantly improve flexibility and usability in Hyprland, especially for advanced users with custom setups.
All reactions