RandR: Difference between revisions
Appearance
Content deleted Content added
Nominated for deletion; see Wikipedia:Articles for deletion/RandR. (TW) |
fixed redirect Tag: New redirect |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
#REDIRECT [[X.Org_Server#Other_DDX_components]] |
|||
<!-- Please do not remove or change this AfD message until the discussion has been closed. --> |
|||
{{short description|X11 extension to configure screen sizes, orientations, layout and refresh rate}} |
|||
{{Article for deletion/dated|page=RandR|timestamp=20180913094724|year=2018|month=September|day=13|substed=yes|help=off}} |
|||
{{Rcat shell| |
|||
<!-- Once discussion is closed, please place on talk page: {{Old AfD multi|page=RandR|date=13 September 2018|result='''keep'''}} --> |
|||
{{R to related topic}} |
|||
<!-- End of AfD message, feel free to edit beyond this point --> |
|||
{{R from merge}} |
|||
{{distinguish|XRender}} |
|||
{{Infobox software |
|||
|name = RandR |
|||
|logo = |
|||
|screenshot = |
|||
|caption = |
|||
|collapsible = |
|||
|author = [[X.Org Foundation]] |
|||
|developer = |
|||
|released = <!-- {{Start date|YYYY|MM|DD}} --> |
|||
|latest release version = 1.5.0<ref>http://lists.freedesktop.org/archives/xorg/2015-May/057380.html</ref> |
|||
|latest release date = {{Start date and age|2015|05|16}} |
|||
|latest preview version = |
|||
|latest preview date = <!-- {{Start date and age|YYYY|MM|DD}} --> |
|||
|frequently updated = |
|||
|programming language = |
|||
|operating system = |
|||
|platform = [[X Window System]] |
|||
|size = |
|||
|language = |
|||
|status = |
|||
|genre = |
|||
|license = Implementations available under various licenses |
|||
|website = {{URL|http://www.x.org/wiki/Projects/XRandR/}} |
|||
}} |
}} |
||
[[File:Linux AMD graphics stack.svg|thumb|RandR is an extension to X11. The device driver for the [[display controller]], ''CRTC'', sits in the Linux kernel and exposes the [[KMS driver|KMS]] API to userspace.]] |
|||
'''RandR''' ("resize and rotate") is a [[communications protocol]] written as an extension to the [[X Window System core protocol|X11]]<ref>{{cite web|url=http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt|title=The X Resize, Rotate and Reflect Extension Version 1.3.1}}</ref> protocol. XRandR provides the ability to resize, rotate and reflect the root [[Window (computing)|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]].<ref>{{cite web |url=http://cgit.freedesktop.org/xorg/xserver/tree/randr |title=git: xorg-server, RandR}}</ref> |
|||
A user can typically use applications with a graphical front-end provided by the [[desktop environment]] to control RandR, but the additional [[command line interface|command line]] tool '''xrandr''' exists. xrandr tells the [[display controller]] what resolution and refresh rate it should output on which of its outputs (e.g. [[Video Graphics Array|VGA1]], [[High definition multimedia interface|HDMI3]]). The name of the output is determined by the device driver for the display controller (KMS driver). |
|||
* https://github.com/KDE/kscreen |
|||
== History == |
|||
The initial [[X11]] design did not anticipate the need for dynamic resizing and it was necessary to restart the X [[display server]] to bring about the changes. However, [[XFree86]] has, since its first release, allowed the user to change the screen resolution on the fly without changing the desktop size. The RandR extension framework brought the ability to change display characteristics without restarting the X session. The extension framework allows laptops and handheld computers to change their screen size to drive external monitors at different [[Display resolution|resolutions]] than their built in screens.<ref>[http://keithp.com/~keithp/talks/randr/ The X Resize and Rotate Extension] (Jim Gettys and Keith Packard, Usenix Technical Conference 2001)</ref> |
|||
The RandR extension was initially implemented in the [[XFree86]]'s TinyX server,<ref name="XRandR 1.1">{{cite web|last1=Gettys|first1=Jim|last2=Packard|first2=Keith|title=The X Resize, Rotate and Reflect Extension Version 1.1|url=http://keithp.com/~keithp/talks/randr/protocol.txt|accessdate=4 March 2016|date=4 October 2002}}</ref> and partial support for version 1.0 was added to XFree86 4.3.<ref>{{cite web|title=Release Notes for XFree86[tm] 4.3.0|url=http://www.xfree86.org/4.3.0/RELNOTES2.html|website=XFree86 Project|accessdate=4 March 2016}}</ref><ref>{{cite web|title=XFree86 4.3.0 Released|url=http://tech.slashdot.org/story/03/02/28/2212245/xfree86-430-released|website=Slashdot.org|accessdate=4 March 2016|date=28 February 2003}}</ref> |
|||
=== Release history === |
|||
==== RandR 1.1 ==== |
|||
{{expand section|date=December 2016}} |
|||
==== RandR 1.2 ==== |
|||
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 Beeblebrox#Cultural references|"Zaphod" mode]]), or to combine monitors from multiple devices into a single screen.<ref>[http://wiki.debian.org/XStrikeForce/HowToRandR12 Debian XStrikeForce] (documentation and information on Xrandr 1.2)</ref> One practical limiting effect of this is that it is not possible to run a different [[window manager|WM]] on each monitor, since window managers are limited to one per screen. |
|||
Some of these specific issues{{which|date=December 2016}} are resolved in RandR 1.3.<ref>Freedesktop.org GIT Repository Browser - [http://cgit.freedesktop.org/xorg/proto/randrproto/commit/?id=e71912062f3985dd2f4d7b37e415b4a614b51d9b XRandR Protocol Headers - "Add unicode art pictures for panning"]</ref> |
|||
==== RandR 1.3 ==== |
|||
Some of the features in version 1.3:<ref>{{cite web|url=https://www.phoronix.com/scan.php?page=article&item=randr_13|title=RandR 1.3 Explained, Demonstrated }}</ref> |
|||
* Querying state without output probing |
|||
* Multi-monitor panning (still limited to one separate screen per GPU<ref>{{cite web|url=http://permalink.gmane.org/gmane.comp.freedesktop.libdlo/448|title=Overview of the GPU object implementation state}}</ref>) |
|||
* Display transformations (translation, scaling, rotation, projection) |
|||
* Standard outputs |
|||
==== RandR 1.4 ==== |
|||
Some of the features in 1.4:<ref>{{cite web|url=http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.4.0#n122|title= X Resize and Rotate protocol headers 1.4.0}}</ref> |
|||
* Output border adjustment properties |
|||
* Provider objects, which allow configuration of render and output offload for multi-GPU configurations |
|||
==== RandR 1.5 ==== |
|||
Some of the features in 1.5:<ref>{{cite web|url=http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n160|title=X Resize and Rotate protocol headers 1.5.0}}</ref> |
|||
* Introduction of the monitor concept to support, for example, [[Multi-Stream Transport]] devices. |
|||
==== RandR 1.6 ==== |
|||
Some of the features in 1.6:<ref>{{cite web|url=https://gitlab.freedesktop.org/xorg/xserver/commit/e4e3447603b5fd3a38a92c3f972396d1f81168ad|title=X Resize and Rotate git commit 1.6.0}}</ref> |
|||
* Introduction of the lease concept to specify screens that are not to be managed by the window manager. This is useful for [[Head-mounted_display]] devices and gaming for performance reasons. |
|||
== Screenshots == |
|||
There are numerous graphical programs that make use of RandR to change the settings of connected screens. As can be seen in the examples, these offer fewer choices than the available command-line programs. |
|||
<gallery> |
|||
File:GNOME 3.14 settings displays.png|GNOME 3.14 |
|||
File:Xfce settings displays.png|Xfce |
|||
File:Lxrandr.png|lxrandr |
|||
File:Grandr.png|grandr |
|||
</gallery> |
|||
The gnome-display-properties of the [[GNOME Control Center]] does not allow to set the refresh rate of a screen, the corresponding Xfce program allows configuring resolution, refresh rate, rotation and even reflection. |
|||
The lxrandr program only allows to set screen resolution and refresh rate but not rotation nor reflection. |
|||
As can be seen in the example below "[[#Mirroring Laptop screen on Beamer and scaling]]", the command-line tools xrandr enables far more interesting and useful settings. |
|||
arandr is not a graphical program for xrandr, but a graphical front-end for xrandr. It enables the user to configure the monitor in a graphical manner and outputs the corresponding options for xrandr for that particular setup.<ref>{{cite web|url=http://christian.amsuess.com/tools/arandr/|title=ARandR: Another XRandR GUI}}</ref> |
|||
''Clone'' means match largest common resolution between two monitors. ''Overlay'' can show part of other wayport (think presentations, maybe). |
|||
== Examples == |
|||
Calling <code>xrandr</code> without parameters outputs the current state of the output ports: |
|||
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767 |
|||
eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 345mm x 194mm |
|||
1920x1080 60.0*+ |
|||
1400x1050 60.0 |
|||
1280x1024 60.0 |
|||
1280x960 60.0 |
|||
1024x768 60.0 |
|||
800x600 60.3 56.2 |
|||
640x480 59.9 |
|||
VGA1 disconnected (normal left inverted right x axis y axis) |
|||
DP1 disconnected (normal left inverted right x axis y axis) |
|||
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 700mm x 394mm |
|||
1280x720 50.0 + 60.0 59.9 |
|||
1920x1080i 60.1* 50.0 60.0 |
|||
1024x768 60.0 |
|||
800x600 60.3 |
|||
720x576 50.0 |
|||
720x480 60.0 59.9 |
|||
DP2 disconnected (normal left inverted right x axis y axis) |
|||
HDMI2 disconnected (normal left inverted right x axis y axis) |
|||
DP3 disconnected (normal left inverted right x axis y axis) |
|||
HDMI3 disconnected (normal left inverted right x axis y axis) |
|||
VIRTUAL1 disconnected (normal left inverted right x axis y axis) |
|||
In this example, there are two monitors connected: one to "eDP1", which is a [[DisplayPort]]-Connector, and one to "HDMI1", which is a [[HDMI]]-Connector. The other outputs are detected as "disconnected". The current active modes for "eDP1" is a resolution of 1920x1080 at 60 Hz, while "HDMI1" is at 1920x1080 pixels in "[[Interlaced video|interlaced]]" mode (hence the "i" next to the resolution). |
|||
The position of the displays (see next section) is not immediately visible. The current resolution, for example "1920x1080+1920+0" for "eDP1" contains that information. In this example, the monitor's X-Position is shifted to the right by 1920 pixels—the X-resolution of "HDMI1"—which is "left-of" "eDP1". To aid with visualizing, there are tools like [[KRandRTray]] which show a graphical representation of the current setup. The preferred mode is denoted by the "+" sign next to a mode in the above xrandr output and is automatically selected when using "--auto", see the examples below. |
|||
=== Screen position === |
|||
A common setup is to have one screen left or right of another screen. This example assumes that the output named "eDP1" is the primary screen, while VGA1 is a monitor that is placed on the left of "eDP1". |
|||
xrandr --output VGA1 --auto --left-of eDP1 |
|||
The "--auto" parameter enables all connected but disabled outputs with their preferred mode (denoted by the "+" sign in the above xrandr output), because of that it is not always required to explicitly set parameters like resolution or refresh rate. |
|||
=== Disabling an output === |
|||
Disabling an output requires the parameter "--off" |
|||
xrandr --output VGA1 --off |
|||
=== Mirroring Laptop screen on Beamer and scaling === |
|||
xrandr --fb 1600x900 --output LVDS1 --mode 1600x900 --scale 1x1 --output HDMI3 --same-as LVDS1 --mode 1920x1200 --scale-from 1600x900<ref>{{cite web |url=http://blog.schlomo.schapiro.org/2014/03/opening-window-to-wider-world.html |title=Opening a Window to a Wider World}}</ref> |
|||
== References == |
|||
{{Portal|Free software}} |
|||
{{Reflist|30em}} |
|||
== External links == |
|||
*[http://www.x.org/wiki/Projects/XRandR XRandR project page at X.org] |
|||
*[http://www.x.org/releases/current/doc/randrproto/randrproto.txt The X Resize, Rotate and Reflect Extension] |
|||
{{XWinSys}} |
|||
{{DEFAULTSORT:Randr}} |
|||
[[Category:Multi-monitor]] |
|||
[[Category:X Window extensions]] |
Latest revision as of 11:28, 25 November 2018
Redirect to:
This page is a redirect. The following categories are used to track and monitor this redirect:
|