Bu davranış zaten mümkün mü?
Linux'ta her şey mümkündür. X sunucunuzla uğraştığınızdan ve yardıma ihtiyacınız varsa kesinlikle çalışan tarayıcıya ihtiyacınız olduğu için Xserver hakkında biraz temel bilgiye , biraz zamana ve bir sisteme ihtiyacınız olacak :-)
Bence üç olası çözüm var:
Çok monitörlü kurulumlar Xinerama'yı kullanır . Aklıma gelen en basit çözüm, yapılandırmanıza üçüncü bir sanal ekran eklemek ve pencereleri xdotool kullanarak oraya taşımaktır. Bu çözümün bazı dezavantajları vardır, ancak pencereleri genel olarak mümkün olmayan farklı Xservers'lar arasında taşımak zorunda kalmayı gerektirmez.
Pencereleri farklı Xservers'lar arasında taşımak mümkün olmadığından , bunu bizim için yapmak için xmove veya Xpra gibi bir proxy'ye ihtiyacımız var . Pencereleri daha sonra pencereleri gizlemek için ayrı bir Xfvb oturumunda yaşıyor düşünüyorum . Oturum ekleyebilir ve oturumu çıkarabilirsiniz.
Hangi yöntemi kullandığınızdan bağımsız olarak, monitör fişi çekildiğinde bir olaya ihtiyacınız vardır. Olay, ekranın bağlantısı kesildiğinde ve tekrar bağlandığında tetiklenmelidir. Etkinliği izlemek için komut dosyasını arka plana alabilirsiniz.
Çeşitli nedenlerle Xpra kullanarak çözümü tercih ederim. Size sadece nasıl yapılacağına dair bazı ipuçları verebilirim. Çözümler tam değil ama başlamanız gerekiyor.
Xinerama Çözümü
Kurmak
Xinerama kurulumunun statik bir yapılandırmaya sahip olması için genişletilmesi gerekir: Bkz. Https://help.ubuntu.com/community/XineramaHowTo
ayrıca bkz. sahte üçüncü ekran ve Xdummy
etkilenen pencereler olsun
Windows aramak için xdotool kullanabiliriz . Daha sonra pozisyonlarını kontrol edebilir ve hareket ettirebiliriz. 1920x1080
Konfigürasyonlu iki monitör olduğunu varsayıyorum . Aşağıdakiler tüm pencereleri sağdan sola xinerama ekranına taşıyacaktır.
while read xwindowid; do
eval $(xdotool getwindowgeometry --shell "$xwindowid")
if (( X > 1920 && X <= (1920 * 2))); then
xdotool windowmove --relative $WINDOW -1920 y
fi
done <<< "$(xdotool search --screen 0 '.*')"
Bir monitör bağlanırsa, artık tüm pencereleri dizüstü bilgisayar ekranınızdan (ekran0) üçüncü (sanal) bir ekrana taşıyabilirsiniz. Aynı zamanda, üçüncü ekranda depolanan herhangi bir pencereyi ilk ekrana taşıyabilirsiniz.
XPRA çözümü
Xpra'yı pencereleri hareket ettirmek için kullanmak için, tüm pencerelerin önceden Xpra tarafından yönetilmesi gerekir. Sen zorunda Xpra kullanılarak tüm masaüstü başlatmak Sistem açılışında. İki kez biri çalıştığınız ana masaüstünüz, diğeri ise esas olarak sanal bir masaüstü.
xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach
Artık bağlantısı kesilmiş ekran için ayrı bir xpra oturumunda Windows çalıştırabilir ve monitör değiştiğinde ekrandan bağlayabilir / çıkarabilirsiniz.
xpra attach :99
xpra detatch :99
Ayrıca, bir pencereyi gizli olarak başlatılan xpra ekranlar arasında normale taşımak istiyorsanız yararlı olabilecek , kesilmiş bir gnome kabuk uzantısı da vardır .:99
:0
Olay
Belirli bir ekranın bağlantısının kesilmesini / yeniden bağlanmasını izleyebilirsiniz
belki kurulumunuzu 3 monitöre uzatmak ve isteğe bağlı bir cihazın fişini çekmek istiyorsanız , xwininfo kullanarak takılı olmayan monitörden bağımsız olmasını sağlamak için xinerama'nızın değişen boyutlarını izleyin . Bunun yalnızca xpra çözümü için çalışacağını unutmayın.
xwininfo -display :0 -root | grep -e "-geometry"
-geometry 5760x2160+0+0