एक ही स्क्रीन से दूसरे होस्ट पर एक विंडो को स्थानांतरित करने के लिए संभव है?


16

मैं XFCE 4.12 को एक कंप्यूटर पर दो एक्स स्क्रीन और दो वीडियो कार्ड में 3 मॉनिटर सेटअप के साथ चला रहा हूं। दो मॉनिटर एनवीडिया ट्विनव्यू फंक्शनलिटी का उपयोग करके सिंगल एक्स स्क्रीन बनाते हैं, जो एक्सगॉर कॉन्फिग में डिवाइस 0 पर स्क्रीन 0 है। 3rd मॉनिटर दूसरी स्क्रीन के लिए है जो Xorg कॉन्फिग में Device1 पर Screen1 है। मैं स्क्रीन 0 पर मॉनिटर के बीच ठीक खिड़कियों को खींच सकता हूं। मैं अपने माउस को स्क्रीन 0 और स्क्रीन 1 के बीच स्वतंत्र रूप से स्थानांतरित कर सकता हूं और यहां तक ​​कि क्लिपबोर्ड डेटा को दो एक्स स्क्रीन ओके के बीच ले जाया गया है।

ये दोनों एक्स स्क्रीन स्वतंत्र डेस्कटॉप के रूप में काम करते हैं, जिनके अपने व्यूपोर्ट्स का अपना सेट है। मुझे यह इस तरह से पसंद है और स्वचालित रूप से एक तरफ "छड़ी" बनाने के लिए उपयोगी है। हालाँकि अगर मैं एक एक्स स्क्रीन पर कोई प्रोग्राम शुरू करता हूं, तो मैं इसे केवल एक्स ड्रैग करके दूसरी एक्स स्क्रीन पर नहीं ले जा सकता। अगर मैं उस प्रोग्राम को दूसरी स्क्रीन पर चलाना चाहता हूं तो मुझे उसे उस स्क्रीन पर रीस्टार्ट करना होगा।

मेरा सवाल यह है कि अगर वहाँ कार्यक्रम को स्थानांतरित करने का तरीका है, जबकि इसकी स्क्रीन पर एक्स कमांड के कुछ कमांड या अन्य फ़ंक्शन का उपयोग करके चल रहा है। धन्यवाद।

अद्यतन: मैं इस प्रश्न पर एक इनाम शुरू करने जा रहा हूं, लेकिन मैं इस बारे में थोड़ी देर के लिए सोच रहा था। इनाम अर्जित करने के लिए, आपको प्रमाण के लिए कुछ उद्धरण प्रदान करना होगा।


1
xpra कुछ वैसा ही प्रदान करता है जैसा आप पूछ रहे हैं ...
vlp

googling से xmove का भी पता चलता है

मुझे याद नहीं है कि उस व्यवहार को पाने के लिए मुझे CentOS 5 या 6 पर कुछ बदलना पड़ा। आप किस संस्करण में किस वितरण का उपयोग कर रहे हैं?
निल्स


@ नाथनफेलमैन संभवतः, लेकिन मैं अपने मामले में यह भी नहीं सोचता कि मैं प्रदर्शनों के बीच बात कर रहा हूं। मेरी प्रक्रिया सूची के अनुसार, मैं केवल X प्रक्रिया का एक बार चल रहा हूं, जो है: 0। कोई नहीं है: 1 या: 2, आदि। शायद यह सिर्फ एक समस्या है कि कैसे एक्सएफसीई कई स्क्रीन या मेरे कॉन्फ़िगरेशन में कुछ प्रबंधित करता है। अब तक उल्लिखित कार्यक्रमों के संबंध में, उनमें से कोई भी अभी भी बनाए रखा या उपलब्ध नहीं है। xmove लगभग 20 साल पुराना है और मैं XiMove की एक प्रति नहीं ढूँढ सकता। xpra भी लगता है कि मैं जो करने की कोशिश कर रहा हूं उसके लिए गलत तरह का कार्यक्रम है।
19

जवाबों:


13

आप एक्स सर्वर के साथ शुरू किए गए एक एक्स एप्लिकेशन को सीधे स्थानांतरित नहीं कर सकते हैं जो एप्लिकेशन अंततः पर प्रदर्शित होता है, यह एक एक्स क्लाइंट के "एक्स सर्वर (एक्स डिस्प्ले) से बंधा होने के कारण है जो इसे अपने जीवनकाल के लिए शुरू किया गया था" [ 1 ] यह है मेटाडेटा के साथ करने की सबसे अधिक संभावना है कि एक्स सर्वर एक क्लाइंट की खिड़कियों के बारे में रखता है जिसे आसानी से एक्स सर्वर के बीच स्थानांतरित नहीं किया जा सकता है।

अलग-अलग कॉन्फ़िगर की गई स्क्रीन के बारे में भी यही सच है (जब विस्तार के लिए शिनरामा या ट्विनव्यू जैसे एक्सटेंशन का उपयोग नहीं किया जाता है), जिसमें मल्टी-स्क्रीन सपोर्ट स्पष्ट रूप से नहीं लिखा होता है - "इस कॉन्फ़िगरेशन के साथ स्क्रीन के अलावा विंडो को स्थानांतरित करना संभव नहीं है, इसके अलावा GIMP और Emacs जैसे कुछ विशेष कार्यक्रम जिन्हें मल्टी-स्क्रीन का समर्थन प्राप्त है। "[ 2 ]

सिद्धांत रूप में, यदि किसी एप्लिकेशन को एक्स सर्वर संदर्भ स्विच के साथ सामना करने के लिए डिज़ाइन किया गया था, तो उसे नए डिस्प्ले / स्क्रीन नंबर के साथ प्रदान किया जा सकता है, यह विंडोज़ की स्थिति को बचा सकता है, नए एक्स सर्वर / स्क्रीन से कनेक्ट हो सकता है और इसे फिर से जीवंत कर सकता है, लेकिन कुछ ही अनुप्रयोगों को इस तरह से डिज़ाइन किया जाएगा और इसमें आवश्यक रूप से बहुत सारे बॉयलरप्लेट या एक पुस्तकालय का समावेश शामिल होगा जो इसे किसी भी तरह से सुविधा प्रदान करेगा।

आपके लिए सबसे अच्छा विकल्प संभवतः अन्य अनुप्रयोगों का उपयोग करना है जो एक एक्स क्लाइंट के बीच एक प्रॉक्सी के रूप में कार्य कर सकता है और एक्स सर्वर को उसी तरह प्रदर्शित कर सकता है जैसे कि जीएनयू स्क्रीन का उपयोग कंसोल अनुप्रयोगों और टर्मिनल के लिए किया जा सकता है। Xmove और Xpra [ 3 और 4 ] ऐसा करने के लिए सबसे व्यापक रूप से उपयोग किए जाने वाले कार्यान्वयन लगते हैं। उन का उपयोग करने की चेतावनी यह है कि आपके द्वारा शुरू किए जाने वाले एप्लिकेशन को उनके X सर्वर के रूप में Xmove या Xpra के साथ रजिस्टर करना होगा ताकि विभिन्न डिस्प्ले सर्वर के बीच संदर्भ स्विच करने में सक्षम हो सकें।

अंत में सुपरयूज़र पर एक और सवाल है, जो थोड़े अलग उद्देश्य के लिए एक समान प्रश्न पूछ रहा है (एक्स क्रैश के बाद एक्स को फिर से कनेक्ट करने के बजाय, जानबूझकर डिस्कनेक्ट / क्लाइंट को फिर से कनेक्ट करने के बजाय) [ 5 ]


2
जवाब देने की कोशिश करने के लिए धन्यवाद, लेकिन यह सिर्फ समस्या नहीं है। मैं एक ही सर्वर में एक्स स्क्रीन के बीच जाने की बात कर रहा हूं, एक्स सर्वर के बीच नहीं।
१०:१५ पर १

5
मुझे याद है कि बारीकियों को मूल रूप से, माफी। दुर्भाग्य से, बिना किसी विस्तार के जैसे कि झेनरामा कई स्क्रीन को एक में विलय कर देता है, ऐसा लगता है कि एप्लिकेशन एक ही सर्वर पर अलग-अलग तार्किक सर्वर के रूप में अलग-अलग स्क्रीन का इलाज करते हैं, और उन्हें अलग से कनेक्शन प्रबंधित करते हैं - लिंक देखें [2] मैंने अंतिम संपादन में जोड़ा है। एक्स सर्वर के बीच एक एप्लिकेशन को स्थानांतरित करने के लिए वर्कअराउंड को स्क्रीन के बीच बढ़ने के लिए भी पकड़ना चाहिए, आपको एक्सपीआरए को संलग्न करते समय (उदाहरण के लिए) डिसप्ले पर्यावरण चर के स्क्रीन भाग को निर्दिष्ट करना होगा।
बेंजामिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.