Linux (X)에서 정확한 창 정보 (차원 등)를 얻는 방법은 무엇입니까?


22

Linux에서 정확한 창 정보를 얻으려면 어떻게해야합니까? wmctrl을 사용하여 창의 크기를 얻을 수 있지만 창의 실제 크기는 창 장식으로 인해 다를 수 있습니다. 다음 정보와 방법이 필요합니다.

* precise window dimensions
* precise available screen space (excluding panels like gnome-panel)
* the ability to set a window to be a certain size, including decorations

가장 좋은 방법은 무엇입니까?

미리 감사드립니다!


파이썬 측에 더 관심이 있으시면, 이것을 StackOverflow.com 프로그래밍에 대한 자매 사이트로 마이그레이션 할 수 있습니다. 알려주세요.
Gnoupi

@ Gnoupi : 감사합니다. 그러나 이것은 실제로 SO의 교차 게시물입니다. 사용자가 제안한대로 여기에 더 나은 답변을 얻을 수 있다고 제안했습니다. 원래 질문은 stackoverflow.com/questions/3233660/…에 있습니다.
mellort

알 겠어. 이 경우 귀하의 질문의 파이썬 부분을 편집 할 수 있다고 생각합니다. SU에 대한 답변은 프로그래밍이 아닌 다른 명령을 사용하는 것 같습니다. SO에 대한 질문은 아마도 파이썬에서 어떻게 해야하는지 묻는 데 집중해야합니다.
Gnoupi

답변:


26

다음과 같은 몇 가지 명령 줄 프로그램이 있습니다.

  • xwininfo: 장식을 제외한 창의 크기와 절대 위치 (화면) 및 상대 위치 (창 영역)
  • xdpyinfo: 이것은 여러분이 알고 싶어하는 것보다 화면 장치에 대한 훨씬 더 많은 정보를 제공합니다. 그러나 같은 출력 뭔가 어딘가가 screen: #0다음을 dimension: 1024x768.

장식을 포함한 정보를 얻는 방법이 있습니까?
Victor

6

> 정확한 창 치수

다음 예제 (적어도 sh, bash 및 zsh에서 작동 함)는 제목에 "KWrite"가있는 모든 창에 대해 프레임이 있거나없는 창 형상을 인쇄합니다.

windows="$(wmiface findNormalWindows "KWrite" "" "" "" "" "")"
for window in $(echo $windows); do
{
  echo $window
  wmiface framePosition $window
  wmiface frameSize $window
  wmiface windowPosition $window
  wmiface windowSize $window
  echo
} done

> 사용 가능한 정확한 화면 공간 (그놈 패널과 같은 패널 제외)

xrandr

예를 들면 다음과 같습니다.

xrandr | head -n1 | cut -d, -f2 | cut -d" " -f3-5

내 경우의 출력 :

4400 x 2560

패널을 제외하는 방법을 모름-모니터가 둘 이상인 경우 가상 화면의 중간에있을 수도 있으므로 패널이없는 화면 지오메트리는 "사용 가능한 화면 공간"보다 더 복잡 할 수 있습니다.

> 장식을 포함하여 창을 특정 크기로 설정하는 기능

wmiface setFrameGeometry $window $x $y $width $height

더 많은 명령을 보려면 wmiface README를 읽으십시오.


2
wmiface는 모든 배포판과 함께 제공되지 않습니다. 여기에서 우분투 패키지를 사용하여 민트에 설치할 수있었습니다 : kde-apps.org/content/show.php?content=40425 언급 된 README는 여기에서 찾을 수 있습니다 : gitorious.org/wmiface/wmiface/source/…
slinkp

xwininfo, xdotool 및 xprop의 조합을 사용하여 데코레이션을 포함한 전체 지오메트리를 얻는 다른 방법 은이 주석의 두 번째 부분 인 unix.stackexchange.com/a/156349/84607 을 참조하십시오 .
slinkp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.