I have the weirdest computer problems
They’re so weird that even the explaining the context will cause many listeners to lose patience.
So at work I have a docking station for my laptop with two external 27″ 4K vertical screens. Due to various technical limitations with my operating system, I’ve been running them at a non-native resolution of 1440×2560, which worked fine, but with the new release of KDE Plasma 6 with its prime-time Wayland compositing and fractional scaling being basically a solved problem – I decided to give 4K a go.
Running both vertical screen at true 4K resolution at 100% scaling (non-fractional) was a bit too small, but 150% (what Plasma recommends, and also – coincidentally? – what MS-Windows defaults to) things are much larger than on my laptop screen, so that dragging things between the external screens and the laptop screens gets really weird. So I settled on 120% scale – it matches the window sizes properly with the laptop screen so that I can even have a window spanning the gap between the laptop and the external screen and it doesn’t look weird, though the text is a bit small. But I got used to it.
All that worked fine. But when I get home, where I have a 24″ external screen in standard resolution (but 10:16, it is also vertical) the external screen text is now too large for me. So I decided to scale that down a bit. Setting the scale to 90% looks great1.
Then I encountered the problem: I use the keyboard to move windows around the screen, and specifically between screens – applications often start not on the screen that I want them, to holding Meta/Win key and fiddling with the arrow keys a bit, solves all the problems promptly. I then discovered that at 90% scaling, I cannot move windows between screens – they hit the screen border and stay there. Trying 80% scaling – it works well. 😠💢
It looks like the problem is that my scaled screen is to the left of the laptop screen, so when positioning the laptop screen to the right of a 1200 pixels wide screen, scaled at 90%, it needs to be positioned at 1200 / 0.9 = 1333.333...
– which is not possible, so it is positioned at 1334 pixels to the right of left edge of the workspace. This causes a gap of ⅔ of a pixel between the screens, which the “move window” command cannot jump over! 😧
With 80% scaling, it is 1200 / 0.8 = 1500
which works fine. but that is a bit too small for me. If I had a more standard 9:16 screen, that is 1080 pixels wide, then both 90% scaling (1080 / 0.9 = 1200
) and 80% scaling (1080 / 0.8 = 1350
) would have worked.
More annoyingly – if I set the scaling to 85%, that would put the right screen at 1200 / 0.85 = 1411.7647...
, rounded up to 1412 – that also works well‼️ Apparently the problem isn’t sub-pixel gaps, the problem is sub-pixel gaps that are larger than 0.5 pixels (which actually makes sense because “round half-up” is a default arithmetic rounding mechanism in a lot of math libraries).
All that was put into a bug report and now I’m just here annoyed at the world that was choosing arbitrary numbers in a way that suddenly made my life difficult🤔
- If you only know how Windows does scaling and you hate the blurriness of fractional scaling, know that on Plasma it is definitely a lot better – there’s still some sub-pixel shenanigans going on, but it is much less noticeable [↩]
Wait… vertical?
Vertical is the best for any computing that isn’t games or videos (watching or creating).
Reading and writing is a lot easier when you have narrower columns and most scanning is done up-down – human are much better at scanning mostly up-down with a bit of sideways than a lot of side-to-side with a bit of up-down. This is probably because you can more easily capture an entire sentence with one look, and you don’t have to read every word one-after-the-other, but you can’t capture partial sentences on multiple lines and make sense of that.