Responsive Icon

Managing monitors using the XRANDR command on Linux

My main development laptop uses Ubuntu 18.04 LTS, server edition, with a very light weight tiling window manager called i3. This window manager is primarily targeted at advanced users and developers. It’s a very efficient windowing manager but doesn’t come with very many bells and whistles.

Occasionally I need to attach my laptop to a large monitor, via HDMI, to present to a technical team. This article covers how to use the xrandr command on Linux to change the default monitor and set resolutions.

Start by installing xrandr:

sudo apt-get install xrandr

You can then list the attached monitors by running the following command:

xrandr --listmonitors

Monitors: 2
 0: +*LVDS-1 1360/344x768/194+0+0  LVDS-1
 1:   HDMI-1 1280/339x1002/265+0+0 HDMI-1

Sending output to a new monitor & define a resolution

Once you know the device name for the monitor you’re interested in controlling, then you can send the video signal to that monitor by using the output switch. You can also define the screen resolution to use by passing in the resolution dimensions using the mode switch. The screen resolution dimensions are passed using the width x height notation.

xrandr --output HDMI-1 --mode 1024x768

Turning off your laptops display

Once you have the video signal going to your newly plugged in monitor, you might choose to switch off the display on your laptop. You can do this by passing the device name to the output command line option. In this example, LVDS-1 is the device name of my laptops monitor.

xrandr --output LVDS-1 --off

Changing the brightness levels

Rather than switching off your laptops display, you can also decrease the brightness level. The brightness command line option takes a value from off (0) to full brightness (1). So for example, to reduce the brightness of your monitor to one quarter — you’d use a value of 0.25. To reduce the brightness by half you’d use 0.5

xrandr --output LVDS-1 --brightness 0.25

I hope you found this article useful, you can discuss it on Twitter
I create educational content for developers, hoping to inspire and teach with a deep understanding.

Paul Bradley