दूसरी स्क्रीन के लिए अलग कार्यक्षेत्र


16

मैं इस तरह का व्यवहार प्राप्त करना चाहूंगा: जब मैं अपने लैपटॉप स्क्रीन का उपयोग करता हूं तो मेरा पहला कार्यक्षेत्र उपयोग किया जाता है। जब मैं दूसरी स्क्रीन में प्लग-इन करता हूं (एचडीएमआई के माध्यम से) तो एक दूसरे कार्यक्षेत्र का उपयोग किया जाता है और इस दूसरी स्क्रीन पर सभी नई खुली हुई खिड़कियां दूसरे स्थान पर आ जाएंगी, सिवाय मैं दूसरी स्क्रीन पर कार्यक्षेत्र को दूसरे कार्यक्षेत्र में स्विच किए।

जब मैं अपनी दूसरी स्क्रीन को अनप्लग करता हूं, तो सभी विंडो उन कार्यक्षेत्रों में रहेंगी जो वे बनाए गए थे और मैं उन्हें देखने के लिए अपने लैपटॉप पर कार्यस्थानों को स्विच कर सकता हूं।

क्या यह व्यवहार पहले से ही संभव है?


मैं पहले से ही Appearance -> Behvior के साथ कार्यस्थानों को सक्षम करने में कामयाब रहा और CompizConfig Settings Manager के साथ वर्टिकल वर्कस्पेस को अक्षम किया। एक्सपो और व्यूपोर्ट स्विचर प्लगइन्स भी हैं जो ऐसा करने में सक्षम प्रतीत होते हैं जो मैं चाहता हूं लेकिन मुझे वहां ज्ञान के बिना सेटिंग्स बदलने से डर लगता है।
velop

आपका सवाल थोड़ा उलझाऊ है। यदि आप डिस्प्ले को दो अलग-अलग कार्यस्थानों के रूप में बनाने के लिए कह रहे हैं, तो इसका उत्तर संभव नहीं है। यदि आप दूसरी स्क्रीन को जोड़ने पर स्वचालित रूप से कार्यस्थानों की संख्या बदलने के लिए कह रहे हैं, तो यह संभव है। कृपया स्पष्ट करें / सरल करें कि आप क्या पूछ रहे हैं
सेर्गेई कोलोडियाज़नी

2
मुझे विकल्प Compiz -> डेस्कटॉप वॉल -> व्यूपोर्ट स्विचिंग -> मल्टीमोनिटर bahvior -> अलग से स्विच मिला। लेकिन प्रकट रूप से यह काम नहीं करता है।
velop

@ उलटा, क्या आप इन टिप्पणियों को प्रश्न में संपादित कर सकते हैं?
एसडीसोलर

जवाबों:


1

क्या यह व्यवहार पहले से ही संभव है?

लिनक्स में सब कुछ संभव है। आपको 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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.