Как я могу поделиться своим буфером обмена между двумя X-серверами?

До сих пор то, как я мог решить его, было путем понижения libreoffice к предыдущей версии. Для этого я следовал этому ответу: , Как к " properly" понизьте версии LibreOffice предложенный Cipricus.

я установил версию, и это, кажется, работает лучше.

9
задан 13.04.2020, 10:13

3 ответа

Я нашел решение, которое, кажется, работает довольно хорошо. Я не уверен, что есть лучший способ, но я написал скрипт, который запускает мою виртуальную машину, а затем следит за отображением буфера обмена: 0 на предмет изменений. При обнаружении изменения он копирует содержимое буфера обмена для отображения: 1. Он делает это в двух направлениях, поэтому я тоже могу копировать и вставлять с ВМ.

Вот сценарий:

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

Я не заметил никаких проблем, но если кто-нибудь могу придумать лучший способ, который я определенно оценил бы.

7
ответ дан 13.04.2020, 10:15
  • 1
    Ваше сообщение дало общее представление мне и I' ve упростил Ваш сценарий до этого: xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1 (см. superuser.com/a/992418/19223 ), – des4maisons 13.04.2020, 10:15

У меня была такая же проблема. Синергия не очень хорошо для меня работала (у нее есть серьезные ошибки в части синхронизации X11 в буфере обмена), и я не хотел иметь скрипт, который просто опрашивал бы буфер обмена с задержкой по времени, так как он тратит процессор и / или добавляет случайные задержки, прежде чем я могу вставить. Я написал скрипт под названием xclipsync, который решает проблему для меня.

https://github.com/apenwarr/xclipsync

1
ответ дан 13.04.2020, 10:14

Если вы хотите что-то под ключ, Синергия должна сделать свое дело. Я никогда не использовал его только на одной коробке, в X сессиях. Он работает для совместного использования буферов обмена между отдельными машинами, поэтому было бы удивительно, если бы недостаток дизайна или проблема с юзабилити не позволили ему работать.

Также: для вашего vms у них есть сборки для Mac и Windows .

3
ответ дан 13.04.2020, 10:14
  • 1
    +1. That' s довольно прохладный, я видел что-то как этот в моих поисках и просто надеялся, что было что-то это didn' t требуют любой установки. Единственная проблема I' ve, который рассматривают из моего собственного решения, - то, если кто-то входит в гостевую учетную запись на моем ноутбуке, прежде чем я войду в систему или запущу свою виртуальную машину. Это hasn' t произошел все же, но если это действительно становится проблемой тогда, я мог бы изучить использование Совместных действий для синхронизации буфера обмена вместо этого. – des4maisons 13.04.2020, 10:14
  • 2
    Еще раз спасибо за Ваш ответ. I' ve наградил щедрость, но я решил пойти со своим собственным ответом для принятого решения, поскольку это ближе к тому, что я искал, и я haven' t имел любые проблемы с ним к настоящему времени. – lurscher 13.04.2020, 10:15
  • 3
    Спасибо! Ваше решение интересно; что работы для Вас хотя, правильно? Аплодисменты – hopia 13.04.2020, 10:15

Теги

Похожие вопросы