Ne istediğinizi tam olarak bilmiyorum, ancak aşağıdaki komut kabuğunuzun konumunu ve boyutlarını alacaktır:
$ wmctrl -plG|grep -E "^[^ ]+ +[^ ]+ $PPID "
0x0560000b 1 2481 10 47 1352 386 Lenovo-Ubuntu Terminal
Bu basittir, çünkü yalnızca ilk kabuktan çalışır; Bir alt kabuktan çalışmak için ihtiyacınız olacak:
$ wmctrl -plG|grep -E "^[^ ]+ +[^ ]+ $(pid=$PPID; until [ "`ps -p $pid -o comm= | grep -i term`" ]; do pid=`ps -p $pid -o ppid=`; done; echo $pid) "
0x0560000b 1 2481 10 47 1352 386 Lenovo-Ubuntu Terminal
Bu, terminalinizde term
adının bulunduğunu varsayar : terminalinizi tanımlamak için farklı bir yola ihtiyaç duyabilirsiniz (uzun satır için üzgünüm, ancak çoğu arama dizgisindedir).
Bağlanan monitörlerin boyutlarını yazarak bulabilirsiniz:
$ xrandr | grep ' connected'
LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
HDMI1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 708mm x 398mm
Boyutlar belirlendikten sonra, +0+0
ve +1366+0
global bir ekran içinde her bir monitörün X ve Y ekseni sapmaları olan.
Terminalin görüntülendiği wmctrl
monitörü bulmak için, X ekseni değerinin altında olan en sağ monitörü bulmak için X eksenini ('+' işaretleri arasında) çıkıştaki dördüncü alanla karşılaştırmanız gerekir . Terminalin X konumu.
Ben gösterdiğin örneklerde, terminalin X-pozisyonu 10
ve daha fazla olan, 0
X-ekseni, LVDS1
ancak daha az 1366
X ekseni, HDMI1
yani, terminal ile ilgili olan LVDS1
, boyutları bu nedenle 1366x768
.
Buna karşılık, wmctrl
diğer ekrandaki bir terminaldeki komut şunları verdi:
0x0740000f 1 12147 1466 46 2356 966 Lenovo-Ubuntu xterm
İşte 1466
her ikisinden de büyük 0
ve 1366
en sağdaki monitör HDMI1
boyutlarla birlikte 1920x1080
.
Bir terminalin iki monitörü kaldırabileceğine dikkat edin: açıkladığım şey bunların en solunu bulacak, ancak bu durumda farklı bir şey yapmak istiyorsanız diğer bazı alanları kontrol edebilirsiniz.
Karşılaştırmaları yapmak için bazı karmaşık komut dosyalarına ihtiyacınız olacak ve bunu sizin için yapmayı düşünmüyorum, ancak başlamak için yeterli bilgiye sahip olduğunuzu umuyorum.