Linux Journal: Display Resolution Woes… Resolved?

In our last update we followed our hero as he dove back into Linux once again in pursuit of some sort of tradition in computing. Back to basics, stepping away from the overt overrun every single tech company seems to gun for.

As a refresher, I’m using a Framework 13 AMD Ryzen 7040 and it’s a very good machine. It’s still running Linux though and with that comes some rough edges. Even Linux has a myriad of decisions to make when even trying to run Linux, and I feel like I’ve been dabbling in it for so long I have enough of an understanding to recognize that Debian aligns most with my preferences. My preferences consist primarily of stability. I ran Debian on my last machine, a ThinkPad, and it worked well for the most part. Installing it on the Framework however resulted in a glaring issue: the display resolution.

The display resolution is 2256×1504 which is 3:2 and I don’t know whether it’s considered HiDPI or not but that’s beside the point because the problem lies with Gnome which is my preferred desktop environment. If you are new to Linux the idea of being able to choose a desktop environment will seem very strange, but to explain it very poorly: a desktop environment is much more than being able to change the theme of the windows in your operating system, it controls everything you see for the most part. There are many desktop environments to choose from, some of the most popular are:

But there are many more desktop environments out there, and there are forks of the above that have risen in popularity to take over the original project, and much like Linux itself, the choices are virtually endless here and everyone has their preferences.

Note that everything from here on out is a non-issue in KDE as it is terrific at scaling its UI. KDE is also a different experience than Gnome, and I more align with Gnome so I have willingly stepped into this. 🙃

Because the desktop environment is responsible for rendering everything on the screen, it is responsible for adapting to the resolution and pixel density of your monitor. It turns out that this is quite a complex thing to do when it comes to scaling interface elements and fonts which you see quickly on a Framework 13 running Gnome because the interface is obnoxiously small. Windows, fonts, buttons, everything is just minuscule despite everything being sharp.

Unless you enable experimental features, your only other option in Gnome is to go from the default of 100% size to 200% size. Switching to 200% scaling means that everything that once took up the space of one pixel now takes up the space of two pixels, making everything absurdly gigantic to the point of, for example, the Settings screen taking up the entire monitor by default. See for yourself:

Now, let me reiterate that this is a full monitor screenshot when Gnome is set to Scale at 200%. It’s possible to enable experimental features and scale to 125%, 150%, or 175% but doing that results in a lot of fuzziness, and I’m too fussy for fuzzy.

Fixing as much as I can

Scaling at 200% in Gnome is out, as is any experimental-only fractional scaling because it’s fuzzy. A very common solution here is to use the settings to use Gnome Tweaks to change the font size for windows which is an option in Gnome, and a good one for the most part.

I tried to mess with this a bit but found that it just didn’t sit right. I can’t explain why, but because it’s kind of (maybe it very much is) a hack, using the system after changing the font size just always felt ‘off’. I kept poking around and eventually saw the ‘Large Text’ Accessibility feature and boom things started looking a lot better!

Some of the window controls still feel really small, as do the fonts in some places as well, but it’s completely readable and doesn’t instantly feel too small or too big anymore. That’s cool!

Web browsing and code editing

With a tolerable baseline working in Gnome I then set up my development environment. Big changes there I’ll cover in a future journal entry. Gnome was handling its own text scaling well now with Large Text enabled, but websites continued to look super tiny. That’s no good when I’m trying to work, so I set up my old laptop next to the Framework and started messing with the default zoom level in Firefox. Lo and behold, zooming to 120% by default got pretty dang close to what I would expect in my mind.

Now, I understand that the web in and of itself does not have any sort of standard scale to it, but I also know that if I were building websites at 100% zoom in Firefox running in Linux on this monitor, it would look absolutely terrible and huge to 99.999% of anyone viewing that work. Long story short, changing the default zoom in Firefox solved that problem as well.

Which leads me to the next interface issue that needed to be solved. I’m using VS Code as my editor (until Zed officially ships a Linux build (more on that over time)) and one of the benefits here is that VS Code too has its own Zoom setting, which does a fantastic job of scaling everything in the interface. After discovering that setting (which I’ve never needed or used before) I realized it makes total sense; VS Code is an Electron app and the same solution that worked to zoom up Firefox would of course work well here too, so that was a great, easy fix!

Up and running, and working

Finally figuring out how to adapt to the display resolution issue I was facing using Linux on the Framework has me in a spot to fully commit to using this machine, which I started doing a couple of weeks ago. As the days go on I find myself needing to set up little things here and there, and make other accommodations to workflows I was used to in other environments, but I’ll keep the posts going in case you too get sick of the weird triple-monopoly world we find ourselves in between Apple, Microsoft, and Google, and just want to be less reliant on the giants getting bigger every year.