मैं दो एक्स सर्वरों के बीच अपना क्लिपबोर्ड कैसे साझा कर सकता हूं?


9

मैंने हाल ही में अपनी उबंटू मशीन स्थापित की है ताकि मैं pty8 में एक और एक्स सत्र चलाऊं। मैं इस दूसरे एक्स सर्वर पर ज्यादातर वर्चुअल मशीन या रिमोट डेस्कटॉप सेशन चलाता हूं, जो इन वातावरणों में कीबोर्ड इंटीग्रेशन के साथ हो सकने वाली कुछ निराशाओं को दूर करने में मदद करता है।

हालाँकि, अब अगर मैं कुछ विंडो पर कुछ कॉपी करता हूं: 0, मैं इसे कुछ विंडो में पेस्ट नहीं कर सकता: 1।

वहाँ एक रास्ता है कि मैं इन दो सत्रों के बीच क्लिपबोर्ड साझा कर सकता हूं?

जवाबों:


7

मैं एक समाधान के साथ आया था जो बहुत अच्छी तरह से काम करता है। मुझे यकीन नहीं है कि कोई बेहतर तरीका है, लेकिन मैंने एक स्क्रिप्ट लिखी है जो मेरा वीएम शुरू करती है और फिर प्रदर्शन पर क्लिपबोर्ड की निगरानी करती है: परिवर्तन के लिए 0। जब एक परिवर्तन का पता लगाया जाता है, तो यह क्लिपबोर्ड सामग्री को प्रदर्शित करने के लिए कॉपी करता है: 1। यह द्विदिश रूप से करता है, इसलिए मैं VM से कॉपी कर सकता हूं और ठीक भी पेस्ट कर सकता हूं।

यहाँ स्क्रिप्ट है:

#!/bin/bash

virtualbox --startvm "Windows 7" --fullscreen &
waitpid=$!

watch_clip() {
  local curr="" prev="" from=$1 to=:0

  # On first run, we need to copy from :0 to :1 but not vice versa
  if [[ "$from" == ":0" ]]; then
    xclip -o -selection clipboard -d :0 2> /dev/null | xclip -selection clipboard -d :1
    to=:1
  fi

  while true; do
    # Get the current clipboard contents
    curr=`xclip -o -selection clipboard -d $from 2> /dev/null`

    # Compare to previous results and copy if it's changed
    if [[ "$curr" != "$prev" ]]; then
      echo "$curr" | xclip -selection clipboard -d $to
    fi

    prev="$curr"   
    sleep 0.5
  done
}

watch_clip :0 &
watch_clip :1 &
wait $waitpid

उसके बाद दूसरे X सत्र को शुरू करने के लिए सभी आवश्यक है:

startx ./.startwin7 -- :1

मैंने किसी भी मुद्दे पर ध्यान नहीं दिया है, लेकिन अगर कोई बेहतर तरीके से सोच सकता है तो मैं निश्चित रूप से इनपुट की सराहना करूंगा।


आपका पोस्ट मुझे एक विचार दे दी है और मैं इस पर अपनी स्क्रिप्ट सरल बना दिया है: xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1(देखें superuser.com/a/992418/19223 )
lorenzog

3

यदि आप कुछ टर्नकी चाहते हैं, तो सिनर्जी को ट्रिक करना चाहिए। मैंने एक्स सेशन के दौरान इसे सिर्फ एक बॉक्स पर कभी इस्तेमाल नहीं किया है। यह अलग-अलग मशीनों के बीच क्लिपबोर्ड साझा करने के लिए काम करता है, इसलिए यह आश्चर्य की बात होगी कि यदि कोई डिज़ाइन दोष या प्रयोज्य समस्या इसे आपके लिए काम करने से रोकती है।

इसके अलावा: अपने vms के लिए, वे मैक और विंडोज के लिए बनाता है ।


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

1
आपके उत्तर के लिए फिर से धन्यवाद। मैंने इनाम से सम्मानित किया है, लेकिन मैंने स्वीकार किए गए समाधान के लिए अपने स्वयं के उत्तर के साथ जाने का फैसला किया क्योंकि यह मेरे लिए क्या देख रहा था, और मुझे इसके साथ कोई समस्या नहीं है।
एंडी ई

1
धन्यवाद! आपका समाधान दिलचस्प है; हालांकि आपके लिए क्या काम करता है, है ना? चीयर्स
ब्रायन आयु

1

मुझे भी यही समस्या थी। सिनर्जी ने मेरे लिए अच्छा काम नहीं किया (इसके क्लिपबोर्ड सिंकिंग के X11 भाग में प्रमुख बग हैं), और मुझे ऐसी स्क्रिप्ट नहीं चाहिए थी जो क्लिपबोर्ड को एक बार की देरी के साथ प्रदूषित करती हो, जैसा कि सीपीयू और / या बेकार है। पेस्ट करने से पहले यादृच्छिक विलंब जोड़ता है। मैंने xclipsync नामक एक स्क्रिप्ट लिखी जो मेरे लिए समस्या का समाधान करती है।

https://github.com/apenwarr/xclipsync

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