我最近设置了我的 Ubuntu 机器,以便在 pty8 中运行另一个 X 会话。我主要在另一个 X 服务器上运行虚拟机或远程桌面会话,这有助于调解在这些环境中键盘集成可能发生的一些挫折。
但是,现在如果我从 :0 上的某个窗口复制某些内容,则无法将其粘贴到 :1 上的某个窗口中。
有没有办法在这两个会话之间共享剪贴板?
我想出了一个似乎工作得很好的解决方案。我不确定是否有更好的方法,但我编写了一个脚本来启动我的 VM,然后监视显示 :0 上的剪贴板是否有更改。当检测到更改时,它会将剪贴板内容复制到显示 :1。它双向执行此操作,因此我也可以很好地从 VM 复制和粘贴。
这是脚本:
#!/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
Run Code Online (Sandbox Code Playgroud)
然后所有需要的是启动第二个 X 会话的命令:
startx ./.startwin7 -- :1
Run Code Online (Sandbox Code Playgroud)
我没有注意到任何问题,但如果有人能想到更好的方法,我肯定会感谢您的投入。
| 归档时间: |
|
| 查看次数: |
2168 次 |
| 最近记录: |