Tôi đã đưa ra một giải pháp có vẻ hoạt động khá tốt. Tôi không chắc có cách nào tốt hơn không, nhưng tôi đã viết một đoạn script khởi động VM của mình và sau đó theo dõi bảng tạm trên màn hình: 0 để thay đổi. Khi một thay đổi được phát hiện, nó sẽ sao chép nội dung của bảng tạm để hiển thị: 1. Nó thực hiện điều này hai chiều, vì vậy tôi cũng có thể sao chép và dán từ VM.
Đây là kịch bản:
#!/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
Sau đó, tất cả những gì cần thiết là lệnh để bắt đầu phiên X thứ hai:
startx ./.startwin7 -- :1
Tôi đã không nhận thấy bất kỳ vấn đề nào, nhưng nếu bất cứ ai có thể nghĩ ra một cách tốt hơn, tôi chắc chắn sẽ đánh giá cao đầu vào.
xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1
(xem superuser.com/a/992418/19223 )