एक अलग एक्स-सेशन पर खुले विंडो में कीस्ट्रोक्स भेजने का कमांड-लाइन तरीका


11

मेरी मुख्य मशीन पर, मेरे पास उबंटू डेस्कटॉप खुला है और लॉग ऑन है। फिर मैं X2go का उपयोग करके एक दूरस्थ कंप्यूटर से इस मशीन में प्रवेश कर रहा हूं, जो एक नया एक्स-सत्र बनाता है। मेरे पास मूल सत्र पर एक लिबरऑफिस फ़ाइल खुली है । मैं इस फ़ाइल को सहेजना और इसे बंद करना चाहता हूं - लेकिन दूरस्थ मशीन से! (दोनों सत्रों में एक ही उपयोगकर्ता ने लॉग इन किया है; यदि आवश्यक हो तो मैं sudo कर सकता हूं)

मैंने उपयोग करने की कोशिश की है xdotool searchलेकिन यह विंडो खोजने में विफल है। क्या ऐसा करने का कोई तरीका है जो मुझे इस दूसरे सत्र से चाहिए? मैं इस प्रक्रिया को देख सकता हूँ जिसके साथ ps -A मैं खुली फ़ाइल भी देख सकता हूँ lsof! मैं इस पर "सेव-एंड-क्लोज़" कैसे कर सकता हूं?


2
आप बस इस प्रक्रिया को मार सकते हैं - यदि आपके पास कोई गंभीर परिवर्तन नहीं किए गए हैं तो यह सरल होगा। यदि आप करते हैं, तो इसे अभी भी खोलने के बाद दस्तावेज़ को पुनर्प्राप्त करने का प्रयास करना चाहिए।
वेन वर्नर

यह सच है @wayne, यह शायद autorecover होगा ... सुझाव के लिए धन्यवाद। यकीन नहीं होता, अगर मैं उस मौके को लेना चाहता था! Keypresses (या किसी अन्य प्रत्यक्ष संदेश) भेजने का कोई तरीका नहीं है? यह बहुत सरल लगता है।
संजय मनोहर

मुझे यकीन है कि वहाँ तरीके हैं - मुझे उनके बारे में पता नहीं है। कुछ जटिल लोगों में एक साधारण VNC क्लाइंट स्थापित करना और सेटिंग DISPLAY=:0(या जो भी आपका अन्य खाता प्रदर्शित होता है) स्थापित करना और फिर सर्वर लॉन्च करना और क्लाइंट से प्राप्त करना शामिल है। लेकिन यह अत्यधिक हो सकता है। लिबरऑफिस में एक संदेश प्रोटोकॉल हो सकता है - मैं इससे बहुत परिचित नहीं हूं क्योंकि मैं या तो विम में Google डॉक्स या सादे पाठ फ़ाइलों का उपयोग करता हूं (LaTex सहित) ...
वेन वर्नर

किसी अन्य स्थान से मुख्य विंडो तक पहुंचने के लिए VNC का उपयोग करें
Olivier Dulac

1
xdotool वर्तमान सत्र $ DISPLAY मान पर चलता है। आप किसी मशीन या vncserver को ssh कर सकते हैं, फिर उस पर xdotool चला सकते हैं। उदाहरण के लिए, यदि आप पोर्ट 5901 पर एक vncserver चलाते हैं तो यह उपयोग करता है: 1 स्क्रीन कन्वेंशन द्वारा। तो, DISPLAY:1फिर कोई भी एक्स प्रोग्राम (टेस्ट के लिए एक्सई) शुरू करें और वीएनसी के तहत चलाएंगे। वही दूरस्थ vncservers पर लागू होता है। मशीन में SSH तो आप चलाने से पहले सरल रन निर्यात प्रदर्शन: 1।
m3nda

जवाबों:


9

डिफ़ॉल्ट कॉन्फ़िगरेशन मानते हुए, "मूल" पर xdpyinfo ": 0.0" का प्रदर्शन दिखाएगा, उदा

xdpyinfo | grep name

यदि "x2go" पर आपका DISPLAY पर्यावरण चर ": 1.0" है, तो ऐसा होना चाहिए।

"X2go" पर एक टर्मिनल से विंडो-आईडी खोजने की कोशिश करें:

DISPLAY=:0.0 xwininfo -root -tree | grep Writer

यह संभव है कि पहुंच नियंत्रण स्थापित किया गया है ताकि यह काम न करे, लेकिन मुझे लगता है कि यदि आपको एक ही होस्ट पर एक ही उपयोगकर्ता नाम (यानी ~ / .Xauthority तक पहुंच) होना चाहिए। अगर एक्सेस नहीं है तो "xauth लिस्ट" आउटपुट चेक करें।

यदि यह काम करता है, तो इसे नियंत्रित करने के लिए अपने पसंदीदा उपकरण का उपयोग करें। ऊपर दिए गए xwininfo में "-int" को दशमलव में windowid प्रिंट करने के लिए जोड़ें यदि आपके उपकरण को इस तरह से आवश्यकता होती है, तो xdotin यह नहीं करता है:

export DISPLAY=:0.0
xdotool windowactivate 0x15a18918
xdotool windowfocus 0x15a18918
xdotool key "ctrl+s"
xdotool key "ctrl+q"

या आपके पास "ctrl + s" / "ctrl + q" के बजाय इनसे बेहतर किस्मत हो सकती है

xdotool key "meta+f" "s"
xdotool key "meta+f" "c"
xdotool key "meta+f" "x"

आपको "मेटा +" के बजाय "alt +" की आवश्यकता हो सकती है, मेरे पास गैर-मानक मेटा / alt / सुपर मैपिंग है। मेटा मेरे लिए काम करता है, एक एक्सनेस्ट का उपयोग करके परीक्षण किया गया। मैं अनछुए अंग्रेजी मेनू लेआउट और त्वरक मान रहा हूँ।

यह संभव है कि आपके रास्ते में एक पॉपअप हो, जिस स्थिति में यह कोशिश करने लायक है:

xdotool key "Escape"

कुछ समय, फिर सेव और क्लोज़ को फिर से करना। याद रखें कि xdotool "कुंजी" नामों के सटीक मामले के बारे में उधम मचाता है।

आपको x2go पर libreoffice शुरू करके यह सब आज़माने में सक्षम होना चाहिए, और अपने प्रदर्शन को संशोधित नहीं करना चाहिए। आपको कमांड को शेल स्क्रिप्ट फ़ाइल में सहेजना चाहिए ताकि फोकस परिवर्तन आपको गड़बड़ न करें।

अगर यह काम किया है तो lsof को फ़ाइल नहीं दिखानी चाहिए


xdotool key "Escape"नाम के बारे में संकेत के लिए धन्यवाद, लेकिन लंबे नामों की कोशिश नहीं की: D
m3nda

1

ऐसा लगता है कि संभावित आवश्यकताओं के एक जोड़े है। जाहिरा तौर पर मेजबान को xhosts फ़ाइल में होना चाहिए (यह उत्तर के रूप में चिह्नित किया गया था) और निर्यात के लिए उचित प्रदर्शन मूल्य। यहाँ यह पोस्ट आपको वह तरीका करने में मदद करनी चाहिए जिस तरह से आप चाहते थे, जिससे xdotool को दूरस्थ x11 विंडो मिल सके

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