Screen Resolution Option Missing on Linux – Fixed
Can't change screen resolution in Linux? Missing options usually mean the driver isn't loaded. Here's exactly how to fix it.
You've got Linux running, but the screen looks terrible – stuck at 800x600 or 1024x768. You open Display Settings, and the resolution dropdown shows only one or two crappy options. Frustrating, right?
I've seen this on Ubuntu 22.04, Linux Mint 21, and even Fedora 38. The fix isn't always the same, but I'll walk you through the most common cause first.
Quick Fix: Force Your Monitor's Resolution with xrandr
Open a terminal. Press Ctrl+Alt+T if you're on Ubuntu or Mint. Run this command:
xrandrYou should see a list of connected outputs. Something like HDMI-1, DP-1, or eDP-1 (for laptops). Look for the resolution you want – for example, 1920x1080. If it's not listed, your driver isn't sending the right data.
If you do see the right resolution but it's not selectable in settings, try this:
xrandr --output HDMI-1 --mode 1920x1080Replace HDMI-1 with your actual output name, and 1920x1080 with whatever resolution you want. After running that, your screen should change immediately. If it works, you're done. But it won't survive a reboot. To make it permanent, you'll need to edit your display manager config or add that xrandr command to startup – I'll show both below.
What If xrandr Doesn't Have Your Resolution?
If the resolution isn't listed at all, you can create it manually. First, figure out the timing model – that's a bunch of numbers your monitor needs. Use this command to calculate it:
cvt 1920 1080 60That should output something like:
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsyncTake that whole line after "Modeline" and use it:
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsyncThen add it to your output:
xrandr --addmode HDMI-1 1920x1080_60.00Now run xrandr again – you should see your new resolution listed. Apply it with the earlier command. This is a hack, but it works when the display doesn't report its modes correctly. I've used this on old monitors and projectors that act dumb.
Why This Happens – The Real Cause
The most common reason missing resolutions is your graphics driver. If you have an NVIDIA or AMD card, Linux often falls back to the open-source nouveau or amdgpu driver, which might not know your monitor's full capabilities. On laptops with Intel integrated graphics, it's usually the modesetting driver – and that's fine for most screens. But if you have a high-res monitor (like 4K) or weird refresh rates, the driver can choke.
Another big one: missing xrandr or the X.Org configuration doesn't have a Display section for your monitor. Some Linux distros ship without a proper /etc/X11/xorg.conf file. That causes the system to guess your monitor specs – and it guesses low.
Big Fix – Reinstall or Switch Your Graphics Driver
If you have an NVIDIA card, the real solution is installing the proprietary driver. For Ubuntu users:
ubuntu-drivers devicesThat lists recommended drivers. Then:
sudo apt install nvidia-driver-535(Pick the version it recommends – 535 is common for 2024 systems.) Reboot. After that, you'll likely have all resolutions available in settings.
For AMD cards, the open-source amdgpu driver is already solid. But if you're running an old kernel, upgrade it:
sudo apt update && sudo apt upgrade linux-genericReboot. If it's still broken, try the firmware package:
sudo apt install linux-firmwareReboot again. I've fixed four AMD cards this way – the firmware adds monitor EDID data that tells the driver what resolutions exist.
Less Common Variations
Wayland vs X11
Some Linux distros now default to Wayland (Fedora 39, Ubuntu 22.10+). Wayland has different tools. xrandr won't work. Instead, use wlr-randr or the settings UI. For Fedora, I've found switching to the X11 session at login (gear icon) fixes resolution issues instantly – Wayland's fractional scaling still has bugs.
Dual Monitor – One Monitor Shows Wrong Resolutions
This usually happens when one monitor is cloned from the other. Check xrandr output for --same-as or --auto flags. Detach the second monitor, set the first one, then attach the second. Or use the GUI to uncheck "Mirror Displays".
Virtual Machines – Like VMware or VirtualBox
Guest resolution missing? Install Guest Additions or VMware Tools. On Ubuntu VM, run:
sudo apt install open-vm-tools desktopReboot. For VirtualBox, go to Devices > Insert Guest Additions CD, then run the installer in the VM terminal. After that, resolutions appear.
Old Monitors (VGA connectors)
Analog VGA sometimes doesn't report EDID correctly. Buy a cheap DisplayPort-to-VGA adapter if possible. Or use the cvt method above. I've done this with a 2005 Dell monitor – the cvt hack was the only way.
Prevention – Keep This From Happening Again
- Stick to the recommended driver for your GPU. For NVIDIA, use the proprietary driver – don't let Ubuntu pick nouveau. For AMD, keep kernel and firmware updated.
- Don't blindly update kernels without checking if your GPU is supported. I once updated to a new kernel and lost all resolutions because the NVIDIA module hadn't been built for it yet.
- Back up your /etc/X11/xorg.conf if you have one. If you don't, create a minimal one that includes your monitor's HorizSync and VertRefresh – this forces the driver to take you seriously. Example:
Section "Monitor"
Identifier "Monitor0"
HorizSync 30-83
VertRefresh 56-75
EndSection
Section "Device"
Identifier "Device0"
Driver "modesetting"
EndSectionFinal tip: If you screw up and lose your display, press Ctrl+Alt+F2 to get a text console, log in, and undo your changes. Then press Ctrl+Alt+F1 or F7 to get back to the GUI. I've done this more times than I'll admit.
That's it. You should have your proper resolution back now. If not, your monitor might be dying – but that's a different problem.
Was this solution helpful?