Я не совсем уверен, что вы хотите, но следующая команда получит положение и размеры вашей оболочки:
$ wmctrl -plG|grep -E "^[^ ]+ +[^ ]+ $PPID "
0x0560000b 1 2481 10 47 1352 386 Lenovo-Ubuntu Terminal
Это упрощенно, потому что он работает только из начальной оболочки; для работы из под-оболочки вам понадобится:
$ 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
Это предполагает, что ваш терминал содержит term
в своем имени: вам может понадобиться другой способ идентифицировать ваш терминал (извините за длинную строку, но большая часть его находится в строке поиска).
Вы можете узнать размеры подключенных мониторов, набрав:
$ 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
После размеров +0+0
и +1366+0
- это смещения по осям X и Y каждого монитора в общем экране.
Чтобы узнать монитор, на котором отображается терминал, вам нужно сравнить ось X (между знаками «+») с четвертым полем в выводе wmctrl
чтобы найти самый правый монитор, ось X которого меньше X-положение терминала.
В приведенных мною примерах положение X терминала равно 10
, что больше 0
, ось X LVDS1
, но меньше 1366
, ось X HDMI1
, поэтому терминал находится на LVDS1
, размеры которого следовательно, 1366x768
.
В отличие от этого команда wmctrl
на терминале на другом экране выдает :
0x0740000f 1 12147 1466 46 2356 966 Lenovo-Ubuntu xterm
Здесь 1466
больше, чем 0
и 1366
, поэтому самый правый монитор - HDMI1
с размерами 1920x1080
.
Обратите внимание, что терминал может располагаться на двух мониторах: то, что я описал, найдет самый левый из них, но вы можете проверить некоторые другие поля, если вы хотите сделать что-то другое в этом случае.
Для сравнения вам понадобятся сложные сценарии, и я не собираюсь делать это для вас, но я надеюсь, что у вас достаточно информации для начала.