入门
什么是xrandr?
xrandr
是与XRandR
扩展名交互的命令行工具[请参阅x.org, Wikipedia ],它允许对X服务器进行实时(重新)配置(即,无需重新启动):它提供模式(分辨率,刷新)的自动发现。速率等)以及动态配置输出(调整大小,旋转,移动等)的功能。
FIXME:各个驱动程序的状态?
对xorg.conf有什么后果?
从开始squeeze
,xorg.conf
完全删除配置文件应该可以很好地工作,但是如果无法解决问题,让我们记录一下可以从文件中删除的内容RandR
。
通过驱动程序自动检测模式,大多数情况下,配置文件(xorg.conf)中的几个配置选项变得无用。您可能要删除:
-
HorizSync
和VertRefresh
从该Monitor
部分。 -
本节
Display
小节中的模式Screen
。 -
ModeLine
从本Monitor
节开始。
也无需保留静态双头配置。一些建议,以获取一个小的xorg.conf
:
-
降双重
Device
/Screen
/Monitor
部分,需要单独的一个。 -
从其余部分中 删除
MonitorLayout
选项和Screen
行Device
。 -
放下
ServerLayout
部分。 -
放下
RightOf
/LeftOf
指示该节中剩余的Screen
行ServerLayout
。
基本的xrandr用法
一旦xorg.conf
删除或更新了配置文件(),默认情况下启动服务器应启用一些输出。它们的左上角将在图像的同一部分,但是它们的模式可能会有所不同。
可以通过配置所有输出xrandr
。要查看可用的输出,只需运行xrandr
:
$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 4096 x 4096
VGA1 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1280x800+0+0 inverted X and Y axis (normal left inverted right x axis y axis) 261mm x 163mm
1280x800 59.8*+
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
DVI1 disconnected (normal left inverted right x axis y axis)
TV1 disconnected (normal left inverted right x axis y axis)
评论:
-
我们看到4个输出:
VGA1
,LVDS1
,DVI1
,TV1
。 -
仅连接了内部面板(
LVDS1
),它支持60 Hz的4种模式,56 Hz的1种模式。 -
标有星号(
*
)的模式是当前模式。 -
标有加号(
+
)的是首选。大多数监视器向驱动程序报告首选模式。服务器/驱动程序通常默认情况下会选择它。
FIXME:提及输出名称约定?
处理VGA1
输出属性时,应使用:
$ xrandr --output VGA1 <options>
动态添加/删除头
过去,在插入新显示器时不得不重新启动X的日子已经一去不复返了。使用RandR
1.2,您可以随时插入/拔出监视器。运行以下行将查询所有输出,并以其默认模式启用它们:
$ xrandr --auto
您还可以使用以下命令禁用一个输出:
$ xrandr --output LVDS1 --off
对于某些不能很好地支持多个输出的错误应用程序,这可能很有用。另外,由于CRTC的限制(请参阅下面的“注意事项”部分),通常需要先禁用一个输出,然后再启用另一个输出,因为大多数硬件同时仅支持2个。
改变模式
使用上面的xrandr
输出,您可以将LVDS1
模式更改为 1024x768
使用:
$ xrandr --output LVDS1 --mode 1024x768
刷新率也可以同时或独立更改:
$ xrandr --output LVDS1 --mode 1024x768 --rate 75
$ xrandr --output LVDS1 --rate 75
要返回默认模式:
$ xrandr --output LVDS1 --auto
将输出放置在虚拟屏幕中
非KMS设置的一些配置:
让我们看一下最大虚拟屏幕尺寸,4096x4096
在此示例中可以看到 :
$ xrandr|head -1
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 4096 x 4096
使用KMS(FIXME:链接到解释什么是KMS的页面)时,无需指定任何Virtual
选项。如果使用DRI而没有KMS,则可能需要这样做。实际上,驱动程序通常会创建一个小尺寸的默认虚拟屏幕,例如1600x1200
,以减少内存消耗。
如果计划使用显示不同区域的多个输出,则应在该部分的小节中xorg.conf
添加Virtual
一行以进行 配置。Display
Screen
Section "Screen"
…
SubSection "Display"
Depth 24
Virtual 3000 2000
EndSubSection
EndSection
放置输出
使用以下选项放置输出: --right-of
/ --left-of
/ --above
/ --below
。例如,要将VGA1
输出放置在内部面板(LVDS1
)的右侧,请执行以下操作:
$ xrandr --output VGA1 --right-of LVDS1
请注意,硬件和内存限制可能会严重限制虚拟屏幕的大小,请参阅下面的“警告”部分。
添加新模式
在某些情况下,某些模式可能会丢失。例如,如果监视器未报告正确的EDID信息。或者,如果输出在启动时没有提供CRTC,因为另一个输出正在使用它,并且您同时禁用了它。
如果存在一种模式,则可以使用以下命令将其添加到一个输出中:
$ xrandr --addmode VGA1 800x600
如果该模式不存在,则可以首先通过传递模型来创建它:
$ xrandr --newmode <ModeLine>
您可以使用gtf
或cvt
工具(xserver-xorg-core
包装中随附)创建Modeline 。