저는 Ubuntu를 실행 중이며 연결된 디스플레이의 수, 현재 해상도 및 가능하다면 서로 관련하여 위치를 얻고 싶습니다. xrandr의 콘솔 출력을 구문 분석하는 것이 마음에 들지 않으므로 - 적어도 내가 할 필요가 없다면 - 나는 Python-XLib 또는 비슷한 Pythonic 접근 방식을 사용하고 싶습니다.xrandr없이 Python의 각 디스플레이에 대한 디스플레이 카운트와 해상도를 얻으십시오
$ xrandr
Screen 0: minimum 320 x 200, current 2960 x 1050, maximum 8192 x 8192
DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
1680x1050 60.0*+
1400x1050 60.0
1280x1024 75.0 60.0
1440x900 59.9
1280x960 75.0 60.0
1152x864 75.0
1280x720 75.0
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
640x480 72.8 75.0 66.7 60.0
720x400 70.1
VGA-0 connected 1280x1024+1680+26 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.0 + 75.0*
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
640x480 72.8 75.0 66.7 60.0
720x400 70.1
내가 파이썬이 값을 얻으려면, 방법이 같은 :
이
내 디스플레이 설정에 대한 xrandr를 출력입니다displays = get_displays()
print displays[0].width # out: 1680
print displays[1].width # out: 1280
print displays[0].x_position # out: 0
print displays[1].x_position # out: 1680
파이썬을 통해 정보를 얻으려고 노력 -XLib (또는 pyGTK와 파이 게임 같은 다른 라이브러리), 모든 디스플레이가 항상 하나의 단일 디스플레이로 처리되는 것 같습니다. 예를 들어이 지금까지 Xlib를 함께 가지고 무엇을 :
import Xlib
import Xlib.display
display = Xlib.display.Display(':0')
print display.screen_count() # output: 1
root = display.screen().root
print root.get_geometry().width # output: 2960 -> no way to get width of single display?
print root.get_geometry().height # output: 1050
는 파이썬에서 xrandr를 호출하는 표시 정보 얻는 방법을 알고
import subprocess
output = subprocess.Popen('xrandr | grep "\*" | cut -d" " -f4',shell=True, stdout=subprocess.PIPE).communicate()[0]
displays = output.strip().split('\n')
for display in displays:
values = display.split('x')
width = values[0]
height = values[1]
print "Width:" + width + ",height:" + height
을하지만 말했듯이 저는 필요없이 청소기 접근 방식을 선호 콘솔 출력을 구문 분석합니다. 실제로 xrandr 출력을 구문 분석 할 필요없이 Python으로 정보를 표시 (세부) 할 수있는 방법이 있습니까?
당신은 PLS 솔루션을 공유 될까요. – jagguli
예에 대한 링크가 변경된 것처럼 보입니다. 나는 그것을 업데이트했다. –
xilb/xrandr에서 연결된 출력 이름을 얻는 방법에 대한 아이디어가 있으십니까? –