Panomu iki X sunucusu arasında nasıl paylaşabilirim?


9

Son zamanlarda Ubuntu makinemi pty8'de başka bir X oturumu çalıştıracak şekilde ayarladım. Çoğunlukla bu diğer X sunucusunda sanal makineler veya uzak masaüstü oturumları çalıştırıyorum, bu da bu ortamlarda klavye entegrasyonu ile ortaya çıkabilecek bazı hayal kırıklıklarına aracılık etmeye yardımcı oluyor.

Ancak, şimdi bir pencereden bir şey kopyalarsam: 0, şu pencereye yapıştıramaz: 1.

Bu iki oturum arasında panoyu paylaşabilmemin bir yolu var mı?

Yanıtlar:


7

Oldukça iyi işleyen bir çözüm buldum. Daha iyi bir yol olup olmadığından emin değilim, ancak VM'imi başlatan ve ardından panodaki ekranı izleyen bir komut dosyası yazdım: değişiklikler için 0. Bir değişiklik algılandığında, pano içeriğini aşağıdakileri görüntülemek için kopyalar: 1. Bunu çift yönlü olarak yapar, böylece VM'den de kopyalayıp yapıştırabilirim.

İşte senaryo:

#!/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

O zaman tek gereken ikinci X oturumunu başlatma komutudur:

startx ./.startwin7 -- :1

Herhangi bir sorun fark etmedim, ama eğer biri daha iyi bir yol düşünebilirse, girdiyi kesinlikle takdir ediyorum.


Mesajınız bana bir fikir verdi ve betiğinizi buna basitleştirdim: xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1(bkz. Superuser.com/a/992418/19223 )
lorenzog

3

Anahtar teslim bir şey istiyorsanız, Synergy hile yapmalıdır. X oturumlarında hiçbir zaman tek bir kutuda kullanmadım. Panoları ayrı makineler arasında paylaşmaya çalışır, bu nedenle bir tasarım hatası veya kullanılabilirlik sorununun sizin için çalışmasını engellemesi şaşırtıcı olacaktır.

Ayrıca: VMS'leriniz için Mac ve Windows için derlemeler var .


+1. Bu oldukça havalı, aramalarımda böyle bir şey görmüştüm ve herhangi bir kurulum gerektirmeyen bir şey olmasını umuyordum. Kendi çözümümde düşündüğüm tek sorun, oturum açmadan veya sanal makinemi başlatmadan önce birisinin dizüstü bilgisayarımdaki misafir hesabına giriş yapmasıdır. Bu henüz gerçekleşmedi, ancak bir sorun haline gelirse, bunun yerine panoyu senkronize etmek için Synergy'yi kullanabilirim.
Andy E

1
Cevabınız için tekrar teşekkürler. Ödül kazandım, ancak aradığım şeye daha yakın olduğu için kabul edilen çözüm için kendi cevabımı kullanmaya karar verdim ve şimdiye kadar herhangi bir sorun yaşamadım.
Andy E

1
Teşekkürler! Çözümünüz ilginç; sizin için en iyisini yapın, değil mi? Şerefe
Bryan Agee

1

Ben de aynı problemi yaşadım. Synergy benim için iyi çalışmadı (panosunun senkronizasyonunun X11 bölümünde büyük hatalar var) ve CPU'yu ve / veya harcanması nedeniyle panoyu bir zaman gecikmesi ile yoklayan bir komut dosyasına sahip olmak istemedim. yapıştırmadan önce rastgele gecikmeler ekler. Sorunu benim için çözen xclipsync adlı bir senaryo yazdım.

https://github.com/apenwarr/xclipsync

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.