Há dois problemas aqui:
- com duas instâncias separadas (ou pelo menos janelas) de eog
- controlando em qual tela eles abrem
O primeiro é simples: a opção --new-instance
faz o truque.
O primeiro é mais complicado. O argumento --display refere-se ao servidor X para usar, não ao nome da tela e / ou monitor (terminologia xorg.conf). Então - não é o correto pensar em usar.
Ao emitir eog --fullscreen image.jpg
em um terminal, a imagem é aberta na mesma tela que o terminal. Então eu suponho que há uma maneira de dizer ao Gtk para abrir em uma tela precisa. (NB: a opção -s é para apresentação de slides, ou seja, se você quiser uma única imagem, prefira tela inteira).
A partir da documentação do GTK / Gdk, e do código-fonte do eog, parece que o eog cria um popup com a imagem, e pede ao gdk para configurá-lo em tela cheia. O Gdk então solicita ao gerenciador de janelas para definir a "janela" do popup fullscreen. Portanto, a decisão de abrir a imagem nesta ou naquela tela pertence ao gerenciador de janelas.
wmctrl
parece ser a ferramenta certa para se comunicar com o gerenciador de janelas. Aqui está um rascunho de um script fazendo isso.
#!/bin/bash
#open two fullscreen windows
eog --fullscreen --new-instance image1.jpg&
#wait until windows are actually created
while [ 1 ]; do
found=$(wmctrl -l |grep 'image1.jpg');
if ! [[ -z "$found" ]]; then
break;
fi;
done;
#move first win to the left
wmctrl -r 'image1.jpg' -e 1,0,0,-1,-1
eog --fullscreen --new-instance image2.jpg&
#wait
while [ 1 ]; do
found=$(wmctrl -l |grep 'image2.jpg');
if ! [[ -z "$found" ]]; then
break;
fi;
done;
#move
wmctrl -r 'image2.jpg' -e 1,1280,0,-1,-1
Mas você deve substituir 1280 com a largura real da tela. Observe também que, como o script usa nomes de janelas para identificá-los, isso não funcionará se houver janelas com nomes semelhantes ('image1', 'image2') em sua área de trabalho.