ฉันจะแชร์คลิปบอร์ดระหว่างเซิร์ฟเวอร์ X สองเครื่องได้อย่างไร


9

ฉันเพิ่งตั้งค่าเครื่อง Ubuntu ของฉันเพื่อให้ฉันเรียกใช้เซสชัน X อีกครั้งใน pty8 ฉันส่วนใหญ่ใช้เครื่องเสมือนหรือเซสชันเดสก์ท็อประยะไกลบนเซิร์ฟเวอร์ X อื่น ๆ นี้ซึ่งช่วยเป็นสื่อกลางในความผิดหวังที่อาจเกิดขึ้นได้จากการรวมแป้นพิมพ์ในสภาพแวดล้อมเหล่านี้

อย่างไรก็ตามตอนนี้ถ้าฉันคัดลอกบางอย่างจากบางหน้าต่างใน: 0 ฉันไม่สามารถวางลงในบางหน้าต่างใน: 1

มีวิธีที่ฉันสามารถแชร์คลิปบอร์ดระหว่างสองช่วงนี้ได้หรือไม่?

คำตอบ:


7

ฉันคิดวิธีแก้ปัญหาที่ใช้งานได้ดี ฉันไม่แน่ใจว่ามีวิธีที่ดีกว่านี้หรือไม่ แต่ฉันเขียนสคริปต์ที่เริ่ม VM ของฉันแล้วตรวจสอบคลิปบอร์ดที่แสดง: 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

หากคุณต้องการบางสิ่งที่ครบวงจรซินเนอร์จี้ควรทำตามคำแนะนำ ฉันไม่เคยใช้มันในกล่องเดียวข้ามเซสชัน X มันทำงานเพื่อแชร์คลิปบอร์ดระหว่างเครื่องแยกดังนั้นมันจะน่าแปลกใจถ้าปัญหาการออกแบบหรือปัญหาการใช้งานทำให้คุณทำงานไม่ได้

นอกจากนี้: สำหรับ VMS ของพวกเขาได้สร้างสำหรับ Mac และ Windows


+1 มันเจ๋งมากฉันเคยเห็นบางอย่างเช่นนั้นในการค้นหาและหวังว่าจะมีบางอย่างที่ไม่ต้องการการตั้งค่าใด ๆ ปัญหาเดียวที่ฉันพิจารณาจากโซลูชันของฉันคือถ้ามีคนลงชื่อเข้าใช้บัญชีเกสต์บนแล็ปท็อปของฉันก่อนที่ฉันจะเข้าสู่ระบบหรือเริ่มเครื่องเสมือนของฉัน ยังไม่เกิดขึ้น แต่ถ้าเป็นปัญหาฉันอาจใช้ Synergy เพื่อซิงโครไนซ์คลิปบอร์ดแทน
Andy E

1
ขอบคุณอีกครั้งสำหรับคำตอบของคุณ ฉันได้รับรางวัลมากมาย แต่ฉันตัดสินใจที่จะไปกับคำตอบของตัวเองสำหรับวิธีการแก้ปัญหาที่ยอมรับเพราะใกล้กับสิ่งที่ฉันกำลังมองหาและฉันไม่ได้มีปัญหาใด ๆ กับมันจนถึงขณะนี้
Andy E

1
ขอบคุณ! ทางออกของคุณน่าสนใจ ทำอะไรให้คุณได้บ้างใช่มั้ย ไชโย
Bryan Agee

1

ผมมีปัญหาเดียวกัน. ซินเนอร์จี้ทำงานได้ไม่ดีสำหรับฉัน (มันมีจุดบกพร่องหลักในส่วนที่ X11 ของการซิงค์คลิปบอร์ดของมัน) และฉันไม่ต้องการมีสคริปต์ที่เพิ่งโพลคลิปบอร์ดด้วยการหน่วงเวลาเนื่องจากมันเสีย CPU และ / หรือ เพิ่มความล่าช้าแบบสุ่มก่อนที่ฉันจะวาง ฉันเขียนสคริปต์ชื่อ xclipsync ซึ่งแก้ปัญหาให้ฉันได้

https://github.com/apenwarr/xclipsync

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.