I was noticing that I was only using 1-2 tiles at a time and I could easily emulate that by just side-by-siding windows in KDE.
I think if I ever have the chance to use a Linux machine professionally, especially with multiple monitors, I'll definitely reach for i3 again.
My success with it with KDE was a little mixed, but I also didn't make any effort to resolve the little issues. With MATE though, it works flawlessly with no downsides or really any config needed. It's fantastic.
Here is how I set it up with MATE: https://www.mattgreer.org/articles/mate-and-i3/
Also, got any pictures of the desktop?
Yes setup is fiddly at first but on my daily driver I haven't touched the config file in months.
I'm now on i3 (actually Sway), but when I was still using KDE Plasma, I extensively used the "quick tile" global shortcuts for KWin. They're not all bound by default, but you can set them up in System Settings (Global Shortcuts > KWin). I had it set up so that Win+S maximizes the current window (which by itself is quirky), and then every key around S is for a quick tile. For example, Win+Q moves the current window to the upper left quadrant. Win+D has the window occupy the right half of the screen, and so forth.
The only thing that I do miss from KDE times is the full KDE Connect integration. I have kdeconnectd running through some clever trickery, and the sshfs and MPRIS integrations work fine, but e.g. clipboard sharing doesn't work with Sway yet.
Not particularly[0]. It's more about the workflow and representation of data needed to work. To change this would require fundamentally changing the way this work is done, which I'm not sure is possible to the degree where it would make sense.
All of the applications are capable of being used on a single monitor. Windows can be docked, tabbed, hidden, workspaces arranged and saved, etc. It's just that it's not as efficient to work on a single monitor as it'll require significantly more scrolling, panning, zooming in and out, and switching tabs/windows/applications than having another screen to offload and dedicate windows to with the provided real estate. Once you experience having multiple monitors for these kinds of workflows, it becomes a real bother only having access to one. It sounds superficial, but when that's what a large portion of the job entails every little bit helps.
Even when I had multiple monitors, I combined that with virtual desktops to great affect to help focus what each workspace was used for (one for main 3D, one for compositing, one for texturing, etc). They work really well together. If one wished to stick with a single monitor, then using an ultra-wide would be my best recommendation.
[0] There are some areas, where UI's and viewers are written with 8-bit support only, so a 10-bit secondary reference monitor to use with a dedicated output card is required when working with this kind of material 'properly' (accurately, correctly, without dithering, etc). Even when this isn't required, a second monitor is often used as a dedicated full screen viewer anyways so that an image is viewed at 1:1 in its entirety with no scaling artifacts introduced so the artist knows exactly how an image looks.
True, but peripheral vision is a thing. I have Slack and stuff on a separate monitor, so I can see from the corner of my eye if there are any unreads.
My desktop, i only use 1 workspace per monitor. and i3wm is there just for tiling across large monitors.
My laptop, I only have 1 monitor so I basically mimic a multi monitor setup with workspaces, but tile less since the screen is smaller.
So what you want is already supported. Just don't switch over to monitor B and switch it to a different workspace.
workspace $ws1 output DisplayPort-0
workspace $ws2 output DisplayPort-1
workspace $ws3 output DisplayPort-0
workspace $ws4 output DisplayPort-1
workspace $ws5 output DisplayPort-0
workspace $ws6 output DisplayPort-1
workspace $ws7 output DisplayPort-0
workspace $ws8 output DisplayPort-1
workspace $ws9 output DisplayPort-0
workspace $ws10 output DisplayPort-1 set $monL DP-1.3
set $monR DP-2
set $ws1L "1L"
set $ws2L "2L"
...
set $ws1R "1R"
set $ws2R "2R"
...
workspace $ws1L output $monL
workspace $ws1R output $monR
workspace $ws2L output $monL
workspace $ws2R output $monR
...
and upidate bindsyms (maybe add a modifier to switch right workspaces..?) bindsym $mod+1 workspace $ws1L
bindsym $mod+2 workspace $ws2L
...