답변:
당신이 같은 것을 설치하면 이것은 더 쉽습니다 xdotool
. 그럼 당신은 할 수 있습니다 :
xdotool search --name "window name" windowsize 300 400
"창 이름"을 창 제목에 나타나는 이름 또는 정규 표현식으로 바꾸십시오 (창 클래스 및 기타 다양한 항목으로 검색 할 수도 있음). 창 크기 다음에 나타나는 두 숫자는 각각 너비와 높이입니다. (퍼센트 등을 사용할 수도 있습니다.) man xdotool
일단 설치되면 참조하십시오 .
Lucid 또는 이전 버전을 사용하는 경우 xdotool 웹 사이트 를 방문하여 최신 버전을 얻는 것이 좋습니다 .
예를 들어 Firefox의 크기를 조정하려면
xdotool search --name "Mozilla Firefox" windowsize 1024 768
창 관리자가 Xlib를 지원하는 경우가 있습니다. 이것은 파이썬을 사용하여 창의 크기를 500x300으로 설정합니다.
WIDTH, HEIGHT = 500, 300
import Xlib
import Xlib.display
display = Xlib.display.Display()
root = display.screen().root
windowID = root.get_full_property(display.intern_atom('_NET_ACTIVE_WINDOW'), Xlib.X.AnyPropertyType).value[0]
window = display.create_resource_object('window', windowID)
window.configure(width = WIDTH, height = HEIGHT)
display.sync()
어려운 부분은 창 ID를 얻는 것입니다. 위의 코드에서 활성 창의 ID를 얻었습니다. 다른 ID를 원한다면 다음과 같은 것을 사용하여 각 창의 제목과 제어 PID를 가져 와서 그에 따라 올바른 ID를 선택할 수 있습니다.
windowIDs = root.get_full_property(display.intern_atom('_NET_CLIENT_LIST'), Xlib.X.AnyPropertyType).value
for windowID in windowIDs:
window = display.create_resource_object('window', windowID)
name = window.get_wm_name() # Title
prop = window.get_full_property(display.intern_atom('_NET_WM_PID'), Xlib.X.AnyPropertyType)
pid = prop.value[0] # PID
print pid
내가 얻을 <Xlib.protocol.request.GetProperty serial = 15, data = {'bytes_after': 0, 'property_type': 6, 'value': (32, array('I', [5810L])), 'sequence_number': 15}, error = None>
... 어떤 제안은 실제 PID를 분리?
name
.
get_full_property
하고 할 .value[0]
( value
입니다 배열 )
wmctrl이 가장 적합하다는 것을 알았습니다. 우분투와 라스베리 안, 그리고 다른 배포판에도 작은 패키지로 제공됩니다.