Apakah perilaku ini sudah mungkin?
Segalanya mungkin di linux. Anda akan memerlukan beberapa pengetahuan dasar tentang Xserver , beberapa waktu dan sistem untuk mengujinya, karena Anda mengacaukan X Anda dan Anda tentu saja memerlukan browser yang berjalan jika Anda memerlukan bantuan :-)
Menurut saya ada tiga solusi yang mungkin:
Pengaturan multimonitor menggunakan Xinerama . Solusi paling sederhana yang dapat saya pikirkan adalah menambahkan layar virtual ketiga ke konfigurasi Anda dan cukup memindahkan windows ke sana menggunakan xdotool. Ada beberapa kerugian untuk solusi ini tetapi tidak memerlukan upaya untuk memindahkan windows antara Xservers yang berbeda yang secara umum tidak mungkin.
Karena tidak mungkin untuk memindahkan jendela antara yang berbeda Xservers , kita perlu semacam proxy seperti xmove atau Xpra untuk melakukan hal ini untuk kita. Saya pikir windows kemudian hidup dalam sesi Xfvb terpisah untuk menyembunyikan windows. Anda dapat melampirkan dan melepaskan ke sesi.
Terlepas dari metode apa yang Anda gunakan, Anda perlu acara ketika monitor dicabut. Acara harus dipicu ketika layar terputus dan juga saat terhubung kembali. Anda dapat mengubah naskah untuk menonton acara tersebut.
Saya lebih suka solusi menggunakan Xpra karena berbagai alasan. Saya hanya bisa memberi Anda beberapa petunjuk tentang cara melakukannya. Solusi tidak lengkap tetapi harus membantu Anda memulai.
Solusi Xinerama
Mempersiapkan
Pengaturan Xinerama harus diperluas untuk memiliki konfigurasi statis: Lihat https://help.ubuntu.com/community/XineramaHowTo
lihat juga layar ketiga palsu dan Xdummy
dapatkan windows yang terpengaruh
Kita dapat menggunakan xdotool untuk mencari windows. Setelah itu kita dapat memeriksa posisi mereka dan memindahkannya. Saya mengasumsikan dua monitor dengan 1920x1080
konfigurasi. Berikut ini akan memindahkan semua jendela dari kanan ke layar xinerama kiri.
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 '.*')"
Sekarang Anda dapat memindahkan semua jendela dari layar laptop Anda (screen0) ke layar ketiga (virtual) jika monitor terpasang. Pada saat yang sama Anda dapat memindahkan jendela apa saja yang disimpan di layar ketiga ke layar pertama.
Solusi XPRA
Untuk menggunakan Xpra untuk memindahkan windows, semua windows harus dikelola oleh Xpra sebelumnya. Anda harus memulai seluruh desktop menggunakan Xpra pada startup sistem. Dua kali satu adalah desktop utama Anda di mana Anda bekerja dan yang lainnya adalah desktop virtual.
xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach
Sekarang Anda dapat memiliki Windows untuk layar terputus berjalan dalam sesi xpra yang terpisah dan lampirkan / lepaskan dari itu ketika monitor beralih.
xpra attach :99
xpra detatch :99
Ada juga ekstensi gnome shell yang dihentikan yang dapat berguna jika Anda ingin secara manual memindahkan jendela dari tersembunyi :99
ke normal di :0
antara tampilan xpra yang dimulai.
Acara
Anda dapat menonton untuk putuskan / sambung kembali dari tampilan tertentu
mungkin perhatikan dimensi xinerama Anda yang berubah menggunakan xwininfo agar bebas dari monitor yang tidak dicolokkan jika Anda ingin memperluas pengaturan Anda menjadi 3 monitor dan mencabut perangkat yang sewenang-wenang. Perhatikan bahwa ini hanya akan berfungsi untuk solusi xpra.
xwininfo -display :0 -root | grep -e "-geometry"
-geometry 5760x2160+0+0