如何从命令行检索监视器配置?

nba*_*lle 5 xorg hardware configuration multi-monitor resolution

我正在制作一个需要访问计算机显示器配置的脚本。我怎样才能做到这一点?是否有我可以在其中访问此信息的命令或文件?

目前,我这样做:

xwininfo -root
Run Code Online (Sandbox Code Playgroud)

但我只有总的分辨率,而不是细节。我需要的是每个屏幕的分辨率。

Ste*_*n D 8

这在很大程度上取决于系统的设置。获取信息的一种方法是如果xrandr正在使用:

xrandr --query
Run Code Online (Sandbox Code Playgroud)

这将显示如下内容:

Screen 0: minimum 320 x 200, current 3046 x 1050, maximum 8192 x 8192
VGA1 connected 1680x1050+1366+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050      60.0*+
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 353mm x 198mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
DP1 disconnected (normal left inverted right x axis y axis)
Run Code Online (Sandbox Code Playgroud)

然后您可以使用一些文本处理工具来提取每个显示器的分辨率。


jsb*_*ngs 8

您可以尝试使用工具monitor-edid,它会产生这样的输出

Name: DELL 2407WFP
EISA ID: DELa017
EDID version: 1.3
EDID extension blocks: 0
Screen size: 52.0 cm x 33.0 cm (24.25 inches, aspect ratio 16/10 = 1.60)
Gamma: 2.2
Digital signal
Max video bandwidth: 170 MHz

    HorizSync 30-83
    VertRefresh 56-76

    # Monitor preferred modeline (60.0 Hz vsync, 74.0 kHz hsync, ratio 16/1)
    ModeLine "1920x1200" 154 1920 1968 2000 2080 1200 1203 1209 1235 -hsyncc
Run Code Online (Sandbox Code Playgroud)

如果您想探测监视器信息时不想让 X 运行,这将非常有用。