Como posso compartilhar minha área de transferência entre dois servidores X?

7

Recentemente, configurei minha máquina Ubuntu para executar outra sessão X em pty8. Na maioria das vezes, executo máquinas virtuais ou sessões de área de trabalho remota neste outro servidor X, o que ajuda a mediar algumas das frustrações que podem acontecer com a integração do teclado nesses ambientes.

No entanto, agora, se eu copiar algo de alguma janela em: 0, não posso colá-lo em alguma janela em: 1.

Existe uma maneira de compartilhar a área de transferência entre essas duas sessões?

    
por Andy E 02.10.2013 / 11:58

2 respostas

6

Eu encontrei uma solução que parece funcionar muito bem. Não tenho certeza se existe uma maneira melhor, mas escrevi um script que inicia minha VM e monitora a área de transferência em exibição: 0 para alterações. Quando uma alteração é detectada, ela copia o conteúdo da área de transferência para exibição: 1. Ele faz isso bidirecionalmente, então eu posso copiar e colar da VM muito bem também.

Aqui está o script:

#!/bin/bash

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

watch_clip() {
  local curr="" prev="" from= 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

Em seguida, tudo o que é necessário é o comando para iniciar a segunda sessão X:

startx ./.startwin7 -- :1

Eu não notei nenhum problema, mas se alguém puder pensar em uma maneira melhor, eu apreciaria a entrada.

    
por Andy E 03.10.2013 / 23:07
3

Se você quer algo pronto, Synergy deve fazer o truque. Eu nunca usei isso em apenas uma caixa, através de sessões X. Ele funciona para compartilhar pranchetas entre máquinas separadas, por isso seria surpreendente se uma falha de design ou problema de usabilidade impedisse que funcionasse para você.

Além disso: para o seu vms, eles criam para Mac e Windows .

    
por Bryan Agee 11.10.2013 / 02:09