我正在制作一个需要访问计算机显示器配置的脚本。我怎样才能做到这一点?是否有我可以读取的命令或文件可以访问此信息?
目前,我这样做:
xwininfo -root
但我只有总体分辨率,没有细节。我需要的是每个屏幕的分辨率。
答案1
这在很大程度上取决于系统的设置。获取信息的一种方法是如果xrandr
正在使用:
xrandr --query
这将显示类似以下内容:
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)
然后,您可以使用一些文本处理工具来提取每个显示器的分辨率。
答案2
您可以尝试使用该工具监控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
如果您在想要探测监视器信息时不想让 X 运行,那么这非常有用。
答案3
xrandr
仅适用于带有 RandR 扩展的较新 X 服务器。诚然,现在的一切都应该如此,但万一不是……
xdpyinfo
还打印出每个屏幕的信息,包括尺寸(像素和物理尺寸)。