क्या यह संभव है कि कौन से X को एक प्रोग्राम इंस्टेंस प्रदर्शित करना चाहिए?


10

यदि सिस्टम पर कई एक्स विंडोज चल रहे हैं, तो क्या किसी विशेष विंडो पर चलने का प्रोग्राम संभव है? आप विंडो को कैसे पहचानेंगे और वहां चलने के लिए प्रोग्राम प्राप्त करेंगे?

मैं मान रहा हूं कि इस तरह के कार्यक्रम को चलाने के लिए मेरे पास जो भी अनुमति आवश्यक है।


जवाबों:


15

एक्स प्रोग्राम जानते हैं कि DISPLAYपर्यावरण चर को देखकर किस एक्स सेशन से बात करनी चाहिए ।

पहले आपको यह पता लगाना होगा कि DISPLAYX सत्र में क्या सेट है जहाँ आप अपना प्रोग्राम चलाना चाहते हैं। echo $DISPLAYउस X सत्र में एक X- टर्मिनल के अंदर कमांड जारी करके ऐसा करें । आमतौर पर कुछ ऐसा मिलता है जैसे :0.0आउटपुट होता है।

कहते हैं कि आप xclockअपने एक्स सत्र में उत्कृष्ट कार्यक्रम कार्यक्रम शुरू करना चाहते हैं , जहां DISPLAYहै :0.0, लेकिन आप कंसोल पर ऐसा करना चाहते हैं। फिर आप उस कंसोल पर शिफ्ट करने के लिए Alt-Ctrl-F1 दबाएं, और फिर टाइप करें:

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command

फिर आप Alt-Ctrl-F7 या Alt-Ctrl-F8 (या शायद अपने लिनक्स स्वाद के आधार पर कुछ अन्य एफ कुंजी) दबाकर एक्स पर वापस जाएं और आपके पास वहां मौजूद नए सुंदर वॉललॉक को देखें।

वास्तव में आप उसी मशीन पर किसी भी शेल में उपरोक्त कमांड को निष्पादित कर सकते थे (एसएसएच के माध्यम से, किसी भी एक्स सत्र में, किसी भी कंसोल आदि पर) - इस तथ्य को कि आपने DISPLAY=:0.0कमांड से पहले निर्दिष्ट किया है , जिसका मतलब है कि xclockविंडो हमेशा पॉप अप होगी। वही एक्स सेशन।

वास्तव में - इस तथ्य के अलावा कि एक्स प्रोग्राम इसे देखते हैं - DISPLAYचर के बारे में कुछ खास नहीं है । आम तौर पर जब आप एक एक्स टर्मिनल से प्रोग्राम शुरू कर रहे होते हैं तो वे सही जगह पर शुरू होते हैं क्योंकि DISPLAYआपके लिए पहले ही सेट किया जा चुका होता है।

उपर्युक्त कमांड का उपयोग करने के बजाय, आप इसे पहले सेटिंग से दो में विभाजित कर सकते हैं DISPLAY, और फिर चल सकते हैं xclock। इस मामले में DISPLAYसेटिंग तब तक बनी रहेगी जब तक आप उस शेल को बंद नहीं कर देते हैं, और वहां से शुरू होने वाले सभी बाद के एक्स प्रोग्राम उसी एक्स सेशन में खुल जाएंगे xclock

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock

1
ध्यान दें कि आखिरी बिट तब तक काम नहीं करेगा जब तक आप शेल चर को पहले पर्यावरण में निर्यात नहीं करते हैं।
इग्नासियो वाज़केज़-अब्राम्स

मुझे लगता है कि DISPLAYइसे डिफ़ॉल्ट रूप से निर्यात करने के लिए सेट किया जाएगा, क्योंकि यह शेल द्वारा आयात किया जाता है (यह बिना उपयोग किए दोनों में zshऔर dashमेरे लिए काम करता है export)। लेकिन, हाँ, अगर आपको काम करने के लिए दो लाइन संस्करण नहीं मिल सकते हैं, तो उसके DISPLAY=:0.0साथ बदलने का प्रयास करें export DISPLAY=:0.0
zrajm

1

आम तौर पर, एक्स क्लाइंट प्रोग्राम DISPLAYयह जानने के लिए पर्यावरण चर का उपयोग करते हैं कि किस एक्स सर्वर को कनेक्ट करने के लिए प्रदर्शित किया जाए। कुछ प्रोग्राम कमांड-लाइन पैरामीटर ( -displayया कुछ समान) को भी स्वीकार करते हैं, जिसका उपयोग DISPLAYपर्यावरण चर को ओवरराइड करने के लिए किया जा सकता है ।

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