Configuring Ubuntu Linux for an Ultrawide 21:9 Screen

 

Monitor Specifications:
Screen size: 34-inch
Aspect ratio: 21:9
Resolution: 3440 x 1440
Refresh Rate: 100Hz
Response time: 1ms

xrandr

tux@FreeLinux:~$ xrandr -q –verbose
Screen 0: minimum 8 x 8, current 3440 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 3440×1440+0+0 (0x1c0) normal (normal left inverted right x axis y axis) 797mm x 334mm
Identifier: 0x1bd
Timestamp: 66332
Subpixel: unknown
Gamma: 1.0:1.0:1.0
Brightness: 1.0
Clones:
CRTC: 0
CRTCs: 0 1 2 3

Graphics Card: Nvidia GTX 1060

lspci | grep VGA

Or under your Setting About page:


tux@FreeLinux:~$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1

Option A:

1.Use cvt (calculate VESA CVT mode lines) or gtf (calculate VESA GTF mode lines) command using this syntax below. I recommend use cvt because is a newer standard.

cvt <X> <Y> <Refresh Rate>

gtf  <X> <Y> <Refresh Rate>

where:
X & Y is monitor resolution

Sample Output:
tux@FreeLinux:~$ cvt 3440 1440 100
# 3440×1440 99.99 Hz (CVT) hsync: 152.68 kHz; pclk: 728.00 MHz
Modeline “3440x1440_100.00” 728.00 3440 3728 4104 4768 1440 1443 1453 1527 -hsync +vsync

tux@FreeLinux:~$ gtf 3440 1440 100
# 3440×1440 @ 100.00 Hz (GTF) hsync: 152.50 kHz; pclk: 729.56 MHz
Modeline “3440x1440_100.00” 729.56 3440 3728 4112 4784 1440 1441 1444 1525 -HSync +Vsync

2. Use “xrandr” command to set the size, orientation and reflection of the outputs for a screen.

xrandr
xrandr –newmode <MODELINE>
xrandr –addmode <OUTPUT> <MODENAME>
xrandr –output <OUTPUT> –mode <MODENAME>

Sample:

tux@FreeLinux:~$ xrandr
Screen 0: minimum 8 x 8, current 3440 x 1440, maximum 32767 x 32767
HDMI-0 connected primary 3440×1440+0+0 (normal left inverted right x axis y axis) 797mm x 334mm
3440×1440 60.00 + 100.00* 50.00
3840×2160 59.94
2560×1440 120.00 60.00
1920×1080 119.88 60.00 59.94 50.00 29.97 25.00 60.00 50.04

tux@FreeLinux:~$ xrandr –newmode “3440x1440_100.00” 728.00 3440 3728 4104 4768 1440 1443 1453 1527 -hsync +vsync

tux@FreeLinux:~$ xrandr –addmode HDMI-0 3440x1440_100.00

tux@FreeLinux:~$ xrandr –output HDMI-0 –mode 3440x1440_100.00

Option B: (If you have Nvidia graphics card, this maybe the easier way)

Update the repository:

sudo add-apt-repository ppa:graphics-drivers/ppa

Installing Nvidia Driver:

sudo apt install nvidia-driver-440

Reboot the desktop and you will see the Nvidia X Server Settings icon/program installed:

Open the program and you will see something like this:

And under Display settings, you will have the correct monitor.

About the author

Free Linux

View all posts

2 Comments

  • Thanks for the tutorial. I have the Lenovo G34w-10 monitor and NVidia GeForce GTX 1060 3GB card on Ubuntu 20.04.3 LTS. When I try the –addmode step, I get the following error:

    X Error of failed request: BadMatch (invalid parameter attributes)
    Major opcode of failed request: 140 (RANDR)
    Minor opcode of failed request: 18 (RRAddOutputMode)
    Serial number of failed request: 43
    Current serial number in output stream: 44

    Just wondering if anyone else worked through a similar issue.

  • I have done the option B with the latest drivers from nvidia but in the server settings i do not see the correct resolution.

Leave a Reply