RandR
RandR ("resize and rotate") is a communications protocol written as an extension to the X11 and Wayland protocols for display servers. Both XRandR and WRandR provide the ability to resize, rotate and reflect the root window of a screen. RandR is also responsible for setting the screen refresh rate.
Implementations of the protocol
An implementation of RandR is part of the X.Org Server.
A user can typically use applications with a graphical front-end provided by the desktop environment to control RandR, but the additional command line tools xrandr and weston-wrandr exist. xrandr tells the display controller what resolution and refresh rate it should output on which of its outputs (e.g. VGA1, HDMI3). The name of the output is determined by the device driver for the display controller (KMS driver).
https://github.com/KDE/kscreen
Limitations and criticisms of RandR
RandR 1.2 permits only one virtual screen per display device. It is not possible to assign each monitor on a device to a different screen (sometimes called "Zaphod" mode), or to combine monitors from multiple devices into a single screen. One practical limiting effect of this is that it is not possible to run a different WM on each monitor, since window managers are limited to one per screen. Some of these specific issues are resolved in RandR 1.3.