Unable to set my screen resolution higher

Ubuntu or the other versions of it like (k,l,x,edu,etc.,) are required to add the resolution we want to set on some monitors.

So follow my steps:-

  1. Open a Terminal by CTRL+ALT+T

  2. Type xrandr and ENTER

  3. Note the display name usually VGA-1 or HDMI-1 or DP-1

  4. Type cvt 1920 1080 (to get the --newmode args for the next step) and ENTER

  5. Type sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync and ENTER

  6. Type sudo xrandr --addmode VGA-1 "1920x1080_60.00" and ENTER (replace VGA-1 with your display type (step 3) like HDMI-1 or DP-1)

  7. Now close the terminal and go to Settings >> Display settings and change it to 1920x1080

  8. Enjoy FHD.

To make the above settings stick when you restart your computer, do the following.

For integrated displays

  • goto your terminal and type vim ~/.profile ENTER
  • Paste in the shell command from step 5 and 6, then save.

For external displays

  • create a script called external_monitor_resolution.sh in the directory /etc/profile.d/. using sudo vim /etc/profile.d/external_monitor_resol.sh.

  • Paste in the shell command from step 5 and 6, then save.

(Note: if using sudo would require you typing a password, your system might freeze on startup while waiting for you to input a password. So when pasting do away with the sudo) Something like this:

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode VGA-1 "1920x1080_60.00"` and <kbd>ENTER</kbd> *(replace **VGA-1** with your display type (step 3) like **HDMI-1** or **DP-1**)*

Answer from @ARTube perfect and guys who are facing the problem after editing .profile please follow the comment from Christopher.L

Then add the 5th and 6th line to your .profile without sudo command and save then restart it will work fine.

eg:

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync 
xrandr --addmode VGA-1 "1920x1080_60.00"

A better way than creating a script would be to configure X properly.

  1. Reboot in recovery mode
  2. Create a new xorg.conf file Xorg -configure
  3. Reboot in graphical mode.
  4. From a terminal, generate the proper settings for your desired resolution using gtf command gtf 1600 1200 60.
  5. Copy the output and using your favorite editor add it to the section Monitor of the file we create step 2 Ex: sudo vi /root/xorg.conf.new
  6. Move the file to /etc/X11 folder sudo mv /root/xorg.conf.new /etc/X11/xorg.conf
  7. Reboot.

And that's it should now be able see your new resolution in your display settings.

The full procedure is described here