Steve September 16, 2020

Although it’s a rare problem, it’s also possible for your desktop to get stuck on the wrong resolution. This could happen because, for example, a bug in your GPU’s drivers doesn’t identify your monitor correctly. So if your desktop looks like a thumbnail in the center of your monitor, or you have to scroll around to see everything, you could try to set the resolution manually. Let’s see how you can change the resolution in Ubuntu.

The Display Settings

The resolution settings are found in the Display Settings. To access the Display Settings, right-click on the desktop and select “Display Settings.”

Change Ubuntu Res Right Click

From there, click on the “Resolution” option and select your monitor’s native resolution.

Change Ubuntu Res Display Settings
Change Ubuntu Res Resolutions Pulldown

Use XRandR

You can also set your resolution through the xrandr command, which is included in most modern Linux distributions. Try typing xrandr into your favorite terminal, press enter, and a bunch of information about your monitor and its resolutions will appear. The active resolution will have an asterisk next to it.

Change Ubuntu Res Xrandr

Note your monitor’s alias in the information appearing directly after the command but before the resolutions list. In our case, since we used VMware to capture the screenshots in our article, this was “Virtual1.”

To choose a different resolution, you can tell xrandr which monitor to target and what resolution to apply with:

xrandr --output MONITOR_ALIAS --mode SUPPORTED_RESOLUTION

You can choose any of the supported resolutions, even if it isn’t native to your monitor. Our command looked like:

xrandr --output Virtual1 --mode 1440x900
Change Ubuntu Res Xrandr Set Res

If the correct resolution wasn’t detected or you want to use a custom one for any reason, xrandr can help with that, too. You shouldn’t deviate from VESA standards, though, and cvt is here to lend a helping hand.

Also available by default in most distributions, cvt can calculate VESA Coordinated Video Timing modes. Its use is simple: type cvt followed by the desired horizontal and then vertical resolution. To calculate the parameters for a non-standard 1500×900 resolution, we entered:

Change Ubuntu Res Cvt Add Res

Select and copy to the clipboard everything from “Modeline” up to the end.

Change Ubuntu Res Cvt Copy Info

Then, use it to create a new resolution from scratch with xrandr:

xrandr --newmode CLIPBOARD_CONTENTS

Note that the “1504x900_60.00” in our case referred to the desired resolution and refresh rate of our (virtual) monitor but was a name that cvt generated automatically. You are free to change it to anything you wish for the sake of convenience. We used:

xrandr --newmode "MyMode" 111.00 1504 1592 1744 1984 900 903 913 934 -hsync +vsync
Change Ubuntu Res Xrandr Cvt Info

That’s not all since you also have to add the new mode as an option to the specific monitor. You can do that with:

xrandr --addmode MONITOR_ALIAS "NAME_OF_XRANDR-CREATED_MODE"

So, following on everything we saw up until now, our command looks like:

xrandr --addmode Virtual1 "MyMode"
Change Ubuntu Res Xrandr Add Mode

After that, our new revolution is now selectable from the Display Settings.

Change Ubuntu Res New Res In Pulldown

If your desktop insists on remaining stuck on the wrong resolution, maybe it’s time you upgraded your GPU’s drivers.

Lastly, if your issue lies with the the text on the screen becoming very tiny on a high-resolution monitor, then you probably need to do a fractional scaling instead of changing the resolution.

Related:

Odysseas Kourafalos
Odysseas Kourafalos

OK’s real life started at around 10, when he got his first computer – a Commodore 128. Since then, he’s been melting keycaps by typing 24/7, trying to spread The Word Of Tech to anyone interested enough to listen. Or, rather, read.

Is this article useful?

Read More