「RandR」- Resize and Rotate | 通信协议 | 标准 | ……

认识

在 RandR 出现之前(X11R6.8 版本以前),配置显示器是一场噩梦:

  • 静态配置:所有的显示设置(如分辨率、刷新率)都必须在启动 X 服务器之前,在庞大的 xorg.conf 配置文件中静态写好。
  • 需要重启:任何更改(比如插上投影仪)都需要重启整个 X 会话。这意味着你必须关闭所有正在运行的应用程序,改配置,再重新登录,效率极低。
  • 功能匮乏:对多显示器的支持非常原始和困难。

RandR,Resize and Rotate,作为 X11 协议的扩展的通信协议。RandR 还负责设置屏幕刷新率。RandR 的引入实现了动态、实时、无需中断工作流程的显示配置。

改进

Wayland

Wayland 协议本身不包含 RandR 协议。在 Wayland 体系中,显示管理功能由合成器(Compositor,例如,GNOME Mutter、KDE KWin、……)直接负责。它们会提供自己的 API 和工具(例如 KDE 的 kscreen 框架,或通用的 wlr-randr 工具),但其实现的思想和最终效果与 RandR 非常相似。

参考

Wikipedia/RandR
DeepSeek / RandR 与 XRandR 的区别
DeepSeek / 介绍 RandR