cosmic-epoch icon indicating copy to clipboard operation
cosmic-epoch copied to clipboard

Tiling on very large/ultra wide monitors

Open Theaninova opened this issue 8 months ago • 1 comments

I'm blown away by the pre-alpha so far, however the one thing that I'm really missing is how tiling behaves on very large (>40") or ultra wide monitors (I'll refer to these just as "very large" for simplicity).

The issue with normal (auto-)tiling on very large screens

Text tends to remain legible up to around 16-20cm or so in width at standard sizes, and apps are designed around that.

For example

  • Code formatters will usually cap line lengths at 80-120 characters max, leaving the rest of the space blank
  • Text on websites rarely goes beyond that width
  • Non-limited apps tend to be even worse, as it is close to impossible to keep track to where you were looking when a line is a meter long

It's not just an app issue, there's only so much content you can put in side bars.

Traditional (auto-)tiling places content in two columns, in case there's only a single window that one will span the entire monitor.

This however creates a significant issue with large monitors.

  • A single window spans the entire monitor This not just leaves most of the content blank, it also puts focus on the left most part of the screen, making you turn your head uncomfortably to that direction. Even apps and sites you'd usually associate with being optimized for large monitors tend to fall apart, web browsers, IDEs, etc.
  • A two column layout has no central focus for your eyes you need to turn your head left or right to actually see the content and interact with it. This is fine on small monitors, but on very large ones it's a significant ergonomic problem to have your main content off to the sides. Imagine having a dual monitor setup, with the seam right in the middle.

In essence, it requires you to always have your head turned to one direction.

What I did so far in other tiling WMs

The solution for me so far was the "master stack" layout with three columns and keeping gaps if there's only one window. Main content is kept at optimal reading width, while also remaining centered and comfortable to look at.

I'd probably be really happy with that as well, but why settle for something good when you can have something better :)

Hyprland config
general {
  layout = master
}

master {
  orientation = center
  always_center_master = true
  mfact = 0.4
}
For reference this is how my Hyprland layout looks like

My dream solution

This would probably be "virtual monitors"

  • Virtual monitors would be edited with something akin to KDE's tiling editor. The bar, wallpaper and dock would span all virtual monitors. In case you don't know what KDE's tiling editor looks like:
  • Each virtual monitor can then switch workspaces independently from the others, just like a physical monitor (or as you set in the settings)
  • Fullscreen would span all virtual monitors, but still belong to one of the virtual monitors. Switching workspaces would switch workspaces on the virtual monitor and subsequently hide the fullscreen window.

Bonus

  • A workspace would ideally have the option to push away new windows to different monitors if there's already an active oneMaybe as part of a window being full-screen or maximized? This would be beneficial for keeping your central virtual monitor clean and maybe even to avoid hiding windows behind fullscreen/maximized windows?
  • Each workspace on a virtual monitor would have the option to be either tiling or floating, just like it is now.This could be used for example to dedicate a small area somewhere as a scratchpad with floating windows.

Theaninova avatar Jul 03 '24 10:07 Theaninova