Eu tenho dois monitores conectados (um HDMI, um DVI) conectados a uma GPU Nvidia GT710 na minha caixa linux.
Quando estou logado na minha caixa por ssh, se eu executar
xeyes
, ele sempre será executado na mesma tela.Eu sei o nome dessa tela porque
echo $DISPLAY
retorna:0
Com base em algumas coisas que li, esperava poder direcionar X janelas para o meu monitor esquerdo e direito usando :0.0
e :0.1
respectivamente. O mesmo para :1
.
DISPLAY=:0.0 xeyes
de fato traz xeyes na tela esquerda, mas:
~$ DISPLAY=:0.1 xeyes
Error: Can't open display: :0.1
Eu pensei que talvez eu pudesse ver qual é o nome da minha tela direita listando, /tmp/.X11-unix/
mas:
~$ ls /tmp/.X11-unix/
X0
Então, como resolvo esse monitor secundário e sei como tratá-lo?
PS. Não me importo se não conseguir mover janelas entre telas, conforme descrito aqui no ArchWiki: https://wiki.archlinux.org/title/Multihead#Separate_screens . Isso seria bom para mim, mas não está claro para mim como conseguir isso.
Isso é verdade apenas para o monitor esquerdo e direito, na verdade, usaria duas telas X , o que não é algo que você normalmente veria, a menos que você mesmo o tenha configurado.
Fora da caixa, a maioria dos sistemas atuais usa Xinerama , o que significa que você obtém uma única tela X com duas
xrandr
saídas lendo do mesmo framebuffer em locais diferentes.Mas só você pode nos dizer como seu sistema está configurado (leia
/var/log/Xorg.log
para descobrir).Isso confirma a suposição feita acima: você não tem duas telas X.
Observe a saída de
xrandr
, veja se você tem duas saídas conectadas ao mesmo framebuffer (ou seja, todas estão listadas emScreen 0
).Se sim, isso significa que você precisa colocar uma janela em uma determinada posição para que ela apareça no monitor esquerdo ou direito (ou em ambos, metade à esquerda e a outra metade à direita).
Seu Window Manager (WM), que na maioria das distribuições modernas é integrado ao seu ambiente de desktop, pode influenciar no posicionamento das janelas e, configurando-o corretamente, pode ajudar a colocá-lo na posição (e, portanto, no monitor) desejado.
Muitos (mas não todos) aplicativos X também suportam a
-geometry
opção (leia a página do manual), que novamente colocaria a janela em uma determinada posição, mas o WM é livre para substituir isso, então se não funcionar, é por isso.Se você não está executando um sistema de desktop moderno, e se você nem planeja usar um gerenciador de janelas (o que até décadas atrás todo mundo fazia; X deve ter um gerenciador de janelas), então você precisa posicionar e dimensionar cada janela individualmente através da linha de comando (e isso também determinará em qual tela eles aparecem na sua configuração atual); você não poderá redimensionar ou mover janelas, etc. (E se você pode fazer isso, então você tem algum WM em algum lugar, mesmo que você não perceba isso).
Você também pode configurar o X para que ele use duas telas, uma para cada saída. Você precisa de um
xorg.conf
arquivo personalizado. Aqui está o arquivo que usei para o hardware Intel com uma tela para HDMI3 (quando conectei minha TV um tempo atrás, é por isso que ter duas telas fazia sentido):Você precisará adaptar isso ao seu hardware e requisitos; hardwares diferentes podem precisar de opções diferentes (por exemplo, quando fiz isso, o hardware da Intel precisava do AccelMethod e do ZaphodHeads). Espere gastar um pouco de tempo para fazer isso funcionar direito.