Eu não estou completamente certo do que você quer, mas o seguinte comando irá obter a posição e as dimensões do seu shell:
$ wmctrl -plG|grep -E "^[^ ]+ +[^ ]+ $PPID "
0x0560000b 1 2481 10 47 1352 386 Lenovo-Ubuntu Terminal
Isso é simplista, porque funciona apenas a partir do shell inicial; para trabalhar a partir de um sub-shell, você precisará de:
$ 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
Isso pressupõe que o seu terminal contém term
em seu nome: você pode precisar de uma maneira diferente de identificar seu terminal (desculpe sobre a linha longa, mas a maior parte dela está dentro da string de pesquisa).
Você pode descobrir as dimensões de seus monitores conectados digitando:
$ 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
Após as dimensões, o +0+0
e +1366+0
são os deslocamentos do eixo X e Y de cada monitor dentro da tela global.
Para descobrir o monitor onde o terminal é exibido, você precisará comparar o eixo X (entre os sinais '+') com o quarto campo no wmctrl
saída para encontrar o monitor mais à direita, cujo eixo X é menor que a posição X do terminal.
Nos exemplos que mostrei, a posição X do terminal é 10
, que é maior que 0
, o eixo X de LVDS1
, mas menos de 1366
, o eixo X de HDMI1
, então o terminal está ligado LVDS1
cujas dimensões são, portanto, 1366x768
.
Em contraste, o wmctrl
comando em um terminal na outra tela deu:
0x0740000f 1 12147 1466 46 2356 966 Lenovo-Ubuntu xterm
Aqui 1466
é maior que ambos 0
e 1366
, então o monitor mais à direita é HDMI1
, com dimensões 1920x1080
.
Observe que um terminal pode ocupar dois monitores: o que descrevi encontrará o mais à esquerda deles, mas você pode verificar alguns dos outros campos se quiser fazer algo diferente nesse caso.
Você precisará de alguns scripts complexos para fazer as comparações, e eu não pretendo fazer isso por você, mas espero que você tenha informações suficientes para começar.