LLMpediaThe first transparent, open encyclopedia generated by LLMs

RANDR

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: X.Org Hop 4
Expansion Funnel Raw 60 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted60
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
RANDR
NameRANDR
TitleRANDR
DeveloperX.Org Foundation, X.Org Server contributors
Released2004
Operating systemLinux, BSD, OpenBSD, NetBSD, FreeBSD, Solaris
PlatformX Window System
LicenseMIT License

RANDR

RANDR is a window system extension for the X Window System that enables dynamic screen resizing, rotation, reflection, and multi-monitor configuration at runtime. It provides a protocol for clients and compositors to query and modify outputs, modes, and screen layout without restarting the X.Org Server or closing running applications. RANDR has been central to desktop environments, display managers, graphics drivers, and toolkits that manage physical displays across Linux, FreeBSD, and other Unix-like systems.

Overview

RANDR defines a protocol layered on top of the X11 protocol to expose capabilities of display hardware such as connector status, supported video modes, and current mode settings. It allows composition managers, window managers, and display utilities to coordinate changes to outputs exposed by Intel, AMD, and NVIDIA graphics subsystems. Implementations typically interact with kernel-level components like DRM and KMS and with userspace drivers in Mesa 3D to effect changes on hardware. RANDR sessions are commonly orchestrated by desktop environments such as GNOME, KDE Plasma, and Xfce.

History and Development

RANDR originated as an extension drafted by developers working on the X.Org Server and was first widely available in the mid-2000s to address limitations of static X configuration files such as XF86Config and xorg.conf. Early development involved contributors from vendors and open-source projects including Red Hat, Canonical, and Novell. Over time, the protocol evolved through multiple versions (notably RANDR 1.0, 1.2, 1.3, 1.4) with feature additions driven by requirements from projects like GNOME Shell and KWin. Standards and behavior were refined via discussions on the freedesktop.org platform and in conjunction with work on Wayland where independent compositor protocols later superseded some RANDR use cases.

Architecture and Protocol Extensions

RANDR defines objects such as screens, CRTCs, outputs, encoders, and modes that map to hardware resources exposed by the DRM subsystem. Extensions to the base protocol introduced per-output rotation, reflection, and persistent configuration, and later added features like output transformations and panning support. Interoperability relies on the X server implementing RANDR events and requests that clients such as Xlib, XCB, and higher-level toolkits can use. Vendor-specific driver extensions and backends integrate RANDR with technologies like DRI, GLX, and EGL to enable accelerated rendering and seamless mode-switching.

Features and Functionality

RANDR provides functionality for runtime operations such as adding or removing outputs, switching video modes, arranging multiple displays in extended desktop layouts, and applying rotations or reflections per-output. It supports queries for supported resolutions and refresh rates as exposed by hardware, enabling automated layout tools in environments including LXDE and MATE. Advanced features allow for panning (virtual desktop scrolling), per-output gamma adjustments, and clone vs. extended display configurations used in presentations or digital signage deployments by organizations such as Intel Corporation and AMD. Event notifications permit window managers like Metacity and compositors to respond to hotplug events from devices such as DisplayPort monitors or HDMI televisions.

Implementations and Use Cases

RANDR is implemented in major X servers including X.Org Server and historically in XFree86 derivatives, and is supported by compositors such as Compiz and Compton. Use cases span laptop docking station workflows, multi-monitor productivity setups in enterprises like IBM deployments, kiosk systems, and live switching for presentation environments in universities and conference centers. Device manufacturers and driver vendors implement RANDR hooks in backends for integrated graphics in Intel integrated graphics and discrete adapters by NVIDIA Corporation and AMD. Administrators often leverage RANDR to manage hiDPI layouts and fractional scaling scenarios relevant to hardware from manufacturers like Dell, Lenovo, and HP.

Configuration and Tools

Configuration of RANDR is commonly performed via command-line utilities such as xrandr and graphical front-ends in desktop settings panels like those in GNOME Settings and KDE System Settings. Libraries and bindings in languages such as C, Python, and Rust enable programmatic control from projects including Arandr and custom scripts used with systemd sessions. Troubleshooting and diagnostics involve tools like xev for events, kernel logs for DRM messages, and vendor utilities provided by NVIDIA Corporation or the Mesa 3D stack. Third-party projects create layout presets and save/restore scripts for multi-workstation environments in academic and industrial settings.

Compatibility and Limitations

RANDR operates within the constraints of the X Window System architecture and relies on kernel-level cooperation via DRM/KMS for some features; thus, feature parity can vary across drivers and platforms. Complex compositing or remote-display protocols such as VNC and Xpra may interact imperfectly with RANDR events, and modern Wayland compositors have introduced alternative protocols that deprecate certain RANDR responsibilities. Limitations include inconsistent handling of fractional scaling, mixed-DPI setups, and vendor-specific quirks with modesetting that have historically required driver workarounds from projects like Mesa 3D and NVIDIA Corporation.

Category: X Window System