क्या यह व्यवहार पहले से ही संभव है?
लिनक्स में सब कुछ संभव है। आपको Xserver के बारे में कुछ बुनियादी ज्ञान , कुछ समय और परीक्षण करने के लिए एक प्रणाली की आवश्यकता होगी, क्योंकि आप अपने एक्स के साथ खिलवाड़ कर रहे हैं और आपको निश्चित रूप से मदद की आवश्यकता होने पर ब्राउज़र चलाने की आवश्यकता है :-)
मेरी राय में तीन संभावित उपाय हैं:
मल्टीमॉनिटर-व्यवस्था का उपयोग Xinerama । सबसे आसान समाधान मैं सोच सकता हूं कि आपके कॉन्फ़िगरेशन में एक तीसरी आभासी स्क्रीन को जोड़ना है और बस xdotool का उपयोग करके वहां की खिड़कियों को स्थानांतरित करना है। इस समाधान के लिए कुछ डाउनसाइड्स हैं, लेकिन विभिन्न Xservers के बीच विंडोज़ को स्थानांतरित करने के प्रयास की आवश्यकता नहीं होगी, जो सामान्य रूप से संभव नहीं है।
चूंकि विभिन्न Xservers के बीच विंडो को स्थानांतरित करना संभव नहीं है , इसलिए हमें हमारे लिए ऐसा करने के लिए एक प्रकार की प्रॉक्सी चाहिए जैसे xmove या Xpra । मुझे लगता है कि खिड़कियां तब खिड़कियों को छिपाने के लिए एक अलग Xfvb सत्र में रहती हैं। आप संलग्न कर सकते हैं और सत्र को अलग कर सकते हैं।
भले ही आप किस विधि का उपयोग कर रहे हों, आपको मॉनिटर के अनप्लग होने पर एक घटना की आवश्यकता होती है। स्क्रीन के डिस्कनेक्ट होने पर और फिर से कनेक्ट होने पर ईवेंट ट्रिगर हो जाना चाहिए। आप घटना के लिए देखने के लिए स्क्रिप्ट को निष्क्रिय कर सकते हैं।
मैं विभिन्न कारणों से Xpra का उपयोग कर समाधान पसंद करूंगा। मैं केवल आपको कुछ संकेत दे सकता हूं कि यह कैसे करना है। समाधान पूर्ण नहीं हैं, लेकिन आपको आरंभ करना चाहिए।
झिनराम समाधान
सेट अप
ज़ीनरामा सेटअप को स्थिर कॉन्फ़िगरेशन के लिए विस्तारित करना होगा: https://help.ubuntu.com/community/XineramaHoTo देखें
नकली तीसरी स्क्रीन और Xdummy भी देखें
प्रभावित खिड़कियां प्राप्त करें
विंडोज़ की खोज के लिए हम xdotool का उपयोग कर सकते हैं । बाद में हम उनकी स्थिति की जांच कर सकते हैं और उन्हें स्थानांतरित कर सकते हैं। मैं 1920x1080
कॉन्फ़िगरेशन के साथ दो मॉनिटर मान रहा हूं । निम्नलिखित सभी विंडो को दाईं ओर से बाईं xinerama स्क्रीन पर ले जाएगा।
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 '.*')"
यदि मॉनीटर संलग्न हो जाता है तो अब आप अपनी लैपटॉप स्क्रीन (स्क्रीन 0) से सभी विंडो को तीसरी (आभासी) स्क्रीन पर स्थानांतरित कर सकते हैं। उसी समय आप किसी भी विंडो को स्थानांतरित कर सकते हैं जो तीसरी स्क्रीन पर पहली स्क्रीन पर संग्रहीत होती है।
XPRA समाधान
खिड़कियों को हिलाने के लिए Xpra का उपयोग करने के लिए , सभी खिड़कियों को Xpra द्वारा पहले से प्रबंधित करना होगा। आपको सिस्टम स्टार्टअप पर Xpra का उपयोग करके पूरे डेस्कटॉप को शुरू करना होगा । दो बार एक आपका मुख्य डेस्कटॉप है जहां आप काम करते हैं और दूसरा मुख्य रूप से एक आभासी डेस्कटॉप है।
xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach
अब आपके पास अलग-अलग xpra सत्र में चल रही डिस्कनेक्ट की गई स्क्रीन के लिए Windows हो सकता है और मॉनिटर स्विच होने पर इससे संलग्न / अलग हो सकता है।
xpra attach :99
xpra detatch :99
यदि आप मैन्युअल रूप से प्रारंभ किए गए xpra डिस्प्ले के बीच की विंडो को सामान्य से छुपाना चाहते हैं, तो एक बंद gnome शेल एक्सटेंशन भी उपयोगी हो सकता है।:99
:0
घटना
आप किसी विशिष्ट डिस्प्ले के डिस्कनेक्ट / रीकनेक्ट के लिए देख सकते हैं
हो सकता है कि अपने xinerama के परिवर्तित आयामों को देखने के लिए xwininfo का उपयोग करके इसे अन-प्लग किए गए मॉनिटर से स्वतंत्र किया जाए, यदि आप चाहते हैं कि आपके सेटअप को 3 मॉनिटर तक बढ़ाया जाए और एक मनमाना डिवाइस को अनप्लग करें। ध्यान दें कि यह केवल xpra समाधान के लिए काम करेगा।
xwininfo -display :0 -root | grep -e "-geometry"
-geometry 5760x2160+0+0