How to Change the Screen Resolution in Ubuntu

Get past issues with the wrong screen resolution.

Change Resolution Ubuntu 00 Featured Image

Although it’s a rare problem, it’s 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. 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 setting 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 Resolution Ubuntu 01 Display Settings Option

From there, click on the “Resolution” option.

Change Resolution Ubuntu 02 Display Settings

Select your monitor’s native resolution.

Change Resolution Ubuntu 03 Display Settings Select

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 Resolution Ubuntu 04 Xrandr Output Sample

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

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 looks like:

xrandr --output LVDS-1 --mode 1024x576
Change Resolution Ubuntu 05 Xrandr Set New Layout

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 vertical resolutions. To calculate the parameters for a non-standard 1500×900 resolution, we entered:

cvt 1500 900
Change Resolution Ubuntu 06 New Vesa Value Cvt

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

Change Resolution Ubuntu 07 Copy Cvt Value

Use it to create a new resolution from scratch with xrandr:

xrandr --newmode CLIPBOARD_CONTENTS

Note that the “1504x900_60.00” in our case refers to the desired resolution and refresh rate of our monitor and is 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 Resolution Ubuntu 08 Create New Screen Mode

That’s not all, as 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"

Following everything until this point, our command looks like:

xrandr --addmode LVDS-1 "MyMode"
Change Resolution Ubuntu 09 Xrandr Add Screen To Monitor Output

Our new resolution is selectable from the Display Settings.

Change Resolution Ubuntu 10 New Resolution Available

If your desktop insists on remaining stuck on the wrong resolution, maybe it’s time you upgrade or optimize your GPU kernel modules by installing a custom kernel.

Lastly, if your issue lies with 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.

Use ARandR

On the other hand, it is also possible to use a Graphical User Interface (GUI) when interacting with XRandR. This is helpful in situations where you want to apply a custom layout without going through menus.

Change Resolution Ubuntu 11 Arandr Prop Window

To install the GUI component of XRandR, run the following command in your terminal:

sudo apt install arandr

From there, you can run the GUI by pressing the Win key and typing “arandr.” Doing this will display a small window that will show all the displays that your system currently detects.

Change Resolution Ubuntu 12 Select Arandr Desktop

Once inside, right-click on the display that you want to modify to bring up a context menu where you can choose a number of options for this specific display.

Change Resolution Ubuntu 13 Arandr Output Menu

To change your screen resolution in Ubuntu, select the “Resolutions” option. This will show all the available XRandR dimensions for your Ubuntu system. In my case, I chose “800×600.”

Change Resolution Ubuntu 14 Arandr Select New Layout

Select “Layout” from ARandR’s menu bar and highlight the “Save As” option. This will also bring up a dialog box where you can write a name for your custom screen layout.

Change Resolution Ubuntu 15 Arandr Save Layout As

Load your custom screen resolution by selecting “Open” under the “Layout” menu and picking your layout file from the dialog box. Once done, press the green checkmark to apply your new resolution.

Change Resolution Ubuntu 16 Arandr Apply New Settings

Frequently Asked Questions

I added a new screen resolution and now my screen is flickering. Is Ubuntu broken?

No! This issue happens when there is a mismatch between the refresh rate that your monitor is producing and what XRandR expects. This is incredibly common with monitors that can display a picture through multiple refresh rates. To fix this, you need to force XRandR to use a cvt value with reduced modelines. This ensures that your monitor’s refresh rate will always agree with what XRandR expects on its end.

XRandR reports an invalid "EDID checksum" when I change my resolution in Ubuntu. How do I fix this?

An invalid EDID checksum happens when either your monitor does not have the correct identifying information or your version of the Linux kernel does not support your monitor. One quick and easy way to fix it is to ensure that your system is currently up to date. You can also turn your monitor off and plug it in to a different machine to ensure that the monitor is able to calibrate itself again and generate the necessary EDID checksum for Linux.

I added XRandR in my .xinitrc, but my resolution did not change after a reboot. Is Ubuntu not working?

No! This happens due to a timing issue between the native Intel video driver for Xorg and Xinit. You can easily fix this by introducing a short delay before you run any XRandR command. For example, you can write sleep 3; xrandr [...] to tell your system to wait for three seconds before running XRandR.

Image credit: Unsplash and Wikimedia Commons All alterations and screenshots by Ramces Red

Ramces Red
Ramces Red

Ramces is a technology writer that lived with computers all his life. A prolific reader and a student of Anthropology, he is an eccentric character that writes articles about Linux and anything *nix.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox