xrandr - RandR 扩展的原始命令行界面
概要
xrandr [--help] [--display display] [-q] [-v] [--verbose] [--dryrun] [--screen snum] [--q1]
[--q12] [--current] [--noprimary] [--panning widthxheight[+x+y[/track_widthxtrack_height+track_x+track_y[/border_left/border_top/border_right/border_bottom]]]] [--scale
x[xy]] [--scale-from wxh] [--transform a,b,c,d,e,f,g,h,i] [--primary] [--prop] [--fb widthxheight] [--fbmm widthxheight] [--dpi dpi] [--dpi from-output] [--newmode name mode] [--rmmode
name] [--addmode output name] [--delmode output name] [--output output] [--auto] [--mode mode]
[--preferred] [--pos xxy] [--rate rate] [--reflect reflection] [--rotate orientation] [--left-of
output] [--right-of output] [--above output] [--below output] [--same-as output] [--set property
value] [--off] [--crtc crtc] [--gamma red[:green:blue]] [--brightness brightness] [-o orientation] [-s size] [-r rate] [-x] [-y] [--listproviders] [--setprovideroutputsource provider source]
[--setprovideroffloadsink provider sink] [--listmonitors] [--listactivemonitors] [--setmonitor
name geometry outputs] [--delmonitor name]
描述
Xrandr 用于设置屏幕的输出的大小、方向和/或镜像。它还可以设置屏幕大小。
如果没有选项被调用,它将转储输出的状态,显示每个输出的现有模式,在首选模式之后附加一个“+”,在当前模式之后附加一个“*”。
有一些全局选项。其他选项修改命令行中先前参数中指定的最后一个输出。可以通过传递多个 --output 选项,然后立即跟上相应的修改选项,同时修改多个输出。
--help 打印使用方法的摘要并退出。
-v, --version
打印 X 服务器报告的 RandR 版本并退出。
--verbose
使 `xrandr` 更加详细。与 `-q`(或在没有其他选项的情况下)一起使用时,`xrandr` 将显示更多关于服务器状态的信息。请注意,伽玛和亮度信息只是存储在服务器中的完整颜色配置文件的近似值。与用于重新配置系统的选项一起使用时,将报告在执行配置更改时进行的进度。
-q, --query
如果存在此选项,或者如果没有请求任何配置更改,`xrandr` 将显示系统的当前状态。
--dryrun
执行所有指定的操作,但不进行任何更改。
--nograb
不进行屏幕捕获的情况下应用修改。 它可以避免在更新期间阻止其他应用程序,但也可能导致某些检测屏幕大小更改的应用程序接收到旧值。
-d, --display name
此选项选择要使用的 X 显示器。 请注意,这指的是 X 屏幕抽象概念,而不是显示器(或输出)。
--screen snum
此选项选择要操作的屏幕。 请注意,这指的是 X 屏幕抽象概念,而不是显示器(或输出)。
--q1 强制使用 RandR 1.1 协议,即使有更高版本可用。
--q12 强制使用 RandR 1.2 协议,即使显示器未报告支持此版本或有更高版本可用。
RandR 1.5 版本选项
RandR 1.5 的选项用作 RandR 1.4 选项的超集。
--listmonitors
报告有关所有已定义显示器的信息。
--listactivemonitors
报告有关当前活动显示器的信息。
--setmonitor name geometry outputs
使用给定的几何形状和关联的给定的输出定义一个新的显示器。 输出列表可以是关键字“none”,也可以是逗号分隔的输出列表。 几何形状可以是关键字“auto”,在这种情况下,显示器将自动跟踪相关输出的几何形状,也可以是手动规范,格式为 w/mmwxh/mmh+x+y,其中 w、h、x、y 以像素为单位,mmw、mmh 是显示器的物理尺寸。
--delmonitor name
删除给定的用户定义的显示器。
RandR 1.4 版本选项
RandR 1.4 的选项用作 RandR 1.3 选项的超集。
--listproviders
报告有关可用提供程序的信息。
--setprovideroutputsource provider source
将 source 设置为提供程序显示的输出图像的源。 只有在 source 和 provider 具有源输出和接收输出功能时,这才可行。 如果 source 为 0x0,则提供程序将断开与当前输出源的连接。
--setprovideroffloadsink provider sink
将提供程序设置为 sink 的渲染卸载设备。 只有在提供程序和 sink 具有源卸载和接收卸载功能时,这才可行。 如果 sink 为 0x0,则提供程序将断开与当前渲染卸载 sink 的连接。
RandR 1.3 版本选项
RandR 1.3 的选项用作 RandR 1.2 选项的超集。
--current
返回当前的屏幕配置,而不轮询硬件更改。
--noprimary
不定义主输出。
每个输出的选项
--panning widthxheight[+x+y[/track_widthxtrack_height+track_x+track_y[/border_left/border_top/border_right/border_bottom]]]
此选项设置平移参数。 一旦启用平移,CRTC 位置可能会随着每次指针移动而改变。 前四个参数指定总平移区域,接下来的四个参数指定指针跟踪区域(默认情况下与总平移区域相同)。 最后的四个参数指定边框,默认值为 0。 将宽度或高度设置为零会在相应的轴上禁用平移。 通常,您需要同时使用 --fb 设置屏幕大小。
`--transform a,b,c,d,e,f,g,h,i`
指定应用于输出的变换矩阵。如果未同时指定 `--filter` 参数,则会自动选择双线性滤波器。其数学形式如下:
`a b c`
`d e f`
`g h i`
变换基于齐次坐标。矩阵乘以输出像素的坐标向量,得到图形缓冲区中像素的变换坐标向量。更准确地说,输出像素的向量 (x y) 扩展为 3 个值 (x y w),w 坐标为 1,然后乘以矩阵。然后使用所谓的齐次除法,通过变换后的 w 坐标计算最终的设备坐标。换句话说,变换后像素的设备坐标 (x' y') 为:
`x' = (ax + by + c) / w'` 和
`y' = (dx + ey + f) / w'` ,
其中 `w' = (gx + hy + i)`。
通常,a 和 e 对应于 X 轴和 Y 轴的缩放,c 和 f 对应于这些轴上的平移,g、h 和 i 分别为 0、0 和 1。该矩阵还可以用于表达更复杂的变换,例如梯形校正或旋转。对于一个角度 T 的旋转,可以使用以下公式:
`cos T -sin T 0`
`sin T cos T 0`
`0 0 1`
作为特殊参数,可以传递字符串 `none` 而不是传递矩阵,在这种情况下,将使用默认值(单位矩阵,不进行滤波)。
`--filter filtermode`
选择应用于屏幕缩放或变换时的缩放滤波方法。可以是 `bilinear` 或 `nearest`。
`--scale x[xy]`
更改输出图像的尺寸。如果省略 y 值,则将使用 x 值作为两个维度。大于 1 的值会导致屏幕压缩(屏幕尺寸大于输出模式的尺寸),小于 1 的值会导致输出放大。此选项实际上是 `--transform` 选项的快捷方式。
`--scale-from wxh`
指定要在此输出上显示的帧缓冲区的像素大小。此选项实际上是 `--transform` 选项的快捷方式。
`--primary`
将输出设置为主要输出。它将在 Xinerama 和 RANDR 几何请求中首先进行排序。
RandR 版本 1.2 选项
这些选项仅适用于支持 RandR 版本 1.2 或更高版本的 X 服务器。
`--prop`, `--properties`
此选项导致 xrandr 显示每个输出的属性内容。`--verbose` 也会启用 `--prop`。
`--fb widthxheight`
重新配置屏幕为指定的尺寸。所有配置的监视器必须适合此尺寸。如果未提供此选项,xrandr 将计算容纳所有配置输出所需的最小屏幕尺寸;此选项提供了一种覆盖该行为的方法。
--fbmm widthxheight
设置报告的 X 屏幕的物理大小值(所有已配置显示器的总和)。在具有不同 DPI 的多个显示器的配置中,该值没有实际意义,但某些旧版客户端可能会使用它(这些客户端不支持 RandR 1.2 版本)来计算参考字体缩放。通常,xrandr 会重置报告的物理大小值,以保持 DPI 的一致性。此选项会覆盖此计算。
默认 DPI 值为 96。
--dpi dpi
--dpi from-output
这也会设置报告的 X 屏幕的物理大小值(所有已配置显示器的总和)。在具有不同 DPI 的多个显示器的配置中,该值没有实际意义,但某些旧版客户端可能会使用它(这些客户端不支持 RandR 1.2 版本)来计算参考字体缩放。此选项使用指定的 DPI 值,或者使用给定的输出的 DPI,来计算适当的物理大小,并使用将设置的任何像素大小。典型的值为默认值(96 DPI)、单个显示器配置中唯一显示器的 DPI,或多显示器配置中主显示器的 DPI。
--newmode name mode
可以将新的模式添加到服务器,然后将其与输出关联。此选项执行前者。模式使用 xorg.conf 的 ModeLine 语法进行指定:clock hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal flags。flags 可以是零个或多个以下值:+HSync、-HSync、+VSync、-VSync、Interlace、DoubleScan、CSync、+CSync、-CSync。有几种工具可以计算通常的模式,例如,您可以使用 cvt。
--rmmode name
如果该模式没有被其他方式使用,则从服务器中删除该模式。
--addmode output name
将模式添加到输出的有效模式集中。
--delmode output name
从输出的有效模式集中删除模式。
输出选项
--output output
选择要重新配置的输出。使用输出的名称或 XID。
--auto 对于已连接但禁用的输出,这将使用其首选模式(或,如果它们没有首选模式,则使用接近 96dpi 的模式)启用它们。对于已断开连接但启用的输出,这将禁用它们。
--mode mode
这会选择一个模式。使用名称或模式的 XID。
--preferred
这会选择与 --auto 相同的模式,但它不会自动启用或禁用输出。
--pos xxy
使用像素坐标在屏幕上定位输出。如果应用了反射或旋转,则在应用这些效果之后进行转换。
--rate rate
当多个模式具有相同的名称时,这将标记对接近指定值的刷新率的偏好,这将选择具有最接近刷新率的模式。
--reflect 反射
反射可以是 'normal'、'x'、'y' 或 'xy'。这会导致输出内容沿指定的轴进行反射。
--rotate 旋转
旋转可以是 'normal'、'left'、'right' 或 'inverted'。这会导致输出内容沿指定方向旋转。'right' 表示顺时针旋转图像,'left' 表示逆时针旋转。
--left-of, --right-of, --above, --below, --same-as 另一个输出
使用这些选项之一,将输出相对于另一个输出的位置进行定位。这允许方便地在屏幕上平铺输出。位置始终相对于另一个输出的新位置进行计算,因此不能说 `--output a --left-of b --output b --left-of a`。
--set 属性 值
设置输出属性。整数属性可以指定为有效的逗号分隔的十进制或十六进制值(以 0x 开头)。原子属性可以设置为任何有效的原子(参见 --prop)。字符串属性可以设置为任何值。
--off 禁用输出。
--crtc crtc
使用指定的 crtc(可以是 crtc 列表中的索引或 XID)。在正常使用中,此选项不是必需的,因为 xrandr 会尝试对每个输出做出合理的选择。如果由于某种原因失败,则可以使用此选项来覆盖正常的选择。
--gamma red[:green:blue]
将指定的浮点值设置为当前连接到此输出的 crtc 上的伽马校正。如果未指定 green 和 blue,则红值将用于所有三个分量。请注意,对于克隆输出(即共享相同 crtc 的输出),你无法获得两个不同的值,并且将输出切换到另一个 crtc 不会更改 crtc 伽马校正。
--brightness 亮度
将当前连接到输出的 crtc 上的伽马值乘以指定的浮点值。对于过于明亮或过于昏暗的输出很有用。但是,这只是一个软件修改,如果你的硬件支持实际更改亮度,你可能更喜欢使用 xbacklight。
RandR 1.1 版本选项
这些选项适用于支持 RandR 1.1 或更早版本的 X 服务器。它们仍然适用于较新的 X 服务器,但它们不能在同一命令行上与 1.2 版本的选项一起使用。
-s, --size 尺寸索引或 --size 宽度x高度
这会设置屏幕大小,匹配尺寸或使用可用尺寸列表中的索引。
-r, --rate, --refresh 刷新率
这会设置最接近指定值的刷新率。
-o, --orientation 旋转
这指定屏幕的旋转方向,可以是 normal、inverted、left 或 right。
-x 沿 X 轴反射。
-y 沿 Y 轴反射。
示例
将名为 LVDS 的输出设置为其首选模式,并在其右侧放置一个名为 VGA 的输出,该输出的屏幕已物理旋转顺时针: xrandr --output LVDS --auto --rotate normal --pos 0x0 --output VGA --auto --rotate left --right-of LVDS
强制使用 1024x768 模式显示在名为 VGA 的输出设备上: xrandr --newmode "1024x768" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync xrandr --addmode VGA 1024x768 xrandr --output VGA --mode 1024x768
在 1600x768 的桌面环境下,启用在名为 VGA 的输出设备上的 1024x768 模式下的平移: xrandr --fb 1600x768 --output VGA --mode 1024x768 --panning 1600x0
有一个小的 1280x800 LVDS 屏幕显示一个巨大的 3200x2000 桌面桌面的缩小版本,并且有一个大的 VGA 屏幕显示鼠标周围的区域,大小正常。 xrandr --fb 3200x2000 --output LVDS --scale 2.5x2.5 --output VGA --pos 0x0 --panning 3200x2000+0+0/3200x2000+0+0/64/64/64/64
以梯形形状显示 VGA 输出,以便当投影仪略高于屏幕时进行梯形校正: xrandr --fb 1024x768 --output VGA --transform 1.24,0.16,-124,0,1.24,0,0,0.000316,1
参见
Xrandr(3), cvt(1), xkeystone(1), xbacklight(1)
作者
Keith Packard,英特尔公司开源技术中心,以及 Jim Gettys,惠普实验室剑桥研究实验室。