Я недавно настроил свой компьютер с Ubuntu, чтобы запустить еще один сеанс X в pty8. В основном я запускаю виртуальные машины или сеансы удаленного рабочего стола на этом другом X-сервере, что помогает преодолеть некоторые разочарования, которые могут возникнуть при интеграции клавиатуры в этих средах.
Однако теперь, если я скопирую что-то из какого-либо окна в: 0, я не смогу вставить это в какое-то окно в: 1.
Есть ли способ поделиться буфером обмена между этими двумя сессиями?
Я нашел решение, которое, кажется, работает довольно хорошо. Я не уверен, что есть лучший способ, но я написал скрипт, который запускает мою виртуальную машину, а затем следит за отображением буфера обмена: 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
Я не заметил никаких проблем, но если кто-нибудь могу придумать лучший способ, который я определенно оценил бы.
Если вы хотите что-то под ключ, Синергия должна сделать свое дело. Я никогда не использовал его только на одной коробке, в X сессиях. Он работает для совместного использования буферов обмена между отдельными машинами, поэтому было бы удивительно, если бы недостаток дизайна или проблема с юзабилити не позволили ему работать.
Также: для вашего vms у них есть сборки для Mac и Windows .
У меня была такая же проблема. Синергия не очень хорошо для меня работала (у нее есть серьезные ошибки в части синхронизации X11 в буфере обмена), и я не хотел иметь скрипт, который просто опрашивал бы буфер обмена с задержкой по времени, так как он тратит процессор и / или добавляет случайные задержки, прежде чем я могу вставить. Я написал скрипт под названием xclipsync, который решает проблему для меня.