Linux (X) 'ta doğru pencere bilgileri (boyutlar, vb.) Nasıl elde edilir?


22

Linux'ta doğru pencere bilgisini nasıl alabilirim? Bir pencerenin boyutunu almak için wmctrl'yi kullanabileceğimi biliyorum, ancak pencerenin gerçek boyutu pencere süslemelerine bağlı olarak değişebilir. Aşağıdaki bilgilere ve yöntemlere ihtiyacım var:

* 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

Bunu yapmanın en iyi yolu ne olurdu?

Şimdiden teşekkürler!


Python tarafında daha fazla ilgileniyorsanız, bunu StackOverflow.com programlama konusunda kardeş sitemize aktarabiliriz. Sadece bize bildirin.
Gnoupi

@Gnoupi: teşekkürler, ama bu aslında SO'dan bir çapraz mesaj, bir kullanıcı burada daha iyi bir cevap bulabileceğimi önerdi. Orijinal soru stackoverflow.com/questions/3233660/… adresindedir .
mellort

tamam anladım. Bu durumda, sorunuzun piton kısmının düzeltilebileceğini düşünüyorum. SU üzerindeki cevaplar büyük olasılıkla programlama yerine diğer komutları kullanacaktır. SO ile ilgili soru muhtemelen python ile nasıl yapılacağını sormaya odaklanmalıdır.
Gnoupi

Süslemeleri ile pencere boyut alın: unix.stackexchange.com/questions/14159/…
Ciro Santilli 6

Yanıtlar:


26

Yardımcı olabilecek bazı komut satırı programları var:

  • xwininfo: Dekorasyonu ve mutlak konumu (ekrana) ve göreceli (pencereler için alan) hariç pencerenin boyutunu alır
  • xdpyinfo: Bu, ekran cihazınız hakkında bilmek istediğinizden çok daha fazla bilgi verir. Fakat çıktıda bir yerde screen: #0takip ettiği gibi bir şey var dimension: 1024x768.

Dekorasyon da dahil olmak üzere bilgi almanın bir yolu var mı ?
Victor

6

> hassas pencere boyutları

Aşağıdaki örnek (en azından sh, bash ve zsh olarak çalışacaktır) başlığında bir yerde "KWrite" bulunan tüm pencereler için çerçeveli ve çerçevesiz pencere geometrisini basacaktır.

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

> hassas mevcut ekran alanı (cüceler paneli gibi paneller hariç)

xrandr

Örneğin:

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

Benim durumumda çıktı:

4400 x 2560

Panelleri nasıl dışlayacağınızdan emin değiliz - birden fazla monitörünüz varsa, sanal ekranın ortasında bile olabilirler, böylece panelsiz ekran geometrisi "kullanılabilir ekran alanından" daha karmaşık olabilir.

> Bir pencereyi, süslemeler de dahil olmak üzere belirli bir boyuta ayarlayabilme

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

Daha da fazla komut için wmiface README'yi okuyun.


2
wmiface tüm (herhangi bir?) dağıtımlarla paketlenmemiş. Buradan ubuntu paketini kullanarak Mint'e yükleyebildim : kde-apps.org/content/show.php?content=40425 Belirtilen README burada bulunabilir: gitorious.org/wmiface/wmiface/source/…
slinkp

Bu yorumu ikinci bölümünü Bkz unix.stackexchange.com/a/156349/84607 xwininfo, xdotool ve xprop bir arada kullanarak süslemeleri dahil olmak üzere tam geometri almak için başka bir yol.
slinkp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.