我在 Windows 10 机器上使用 VNC Viewer 5.3.2 (r19179) x64 连接到在 SUSE Linux Enterprise Server 11 上运行的 VNC Server (Virtual Mode) 5.3.2 (r19476) x64。我的问题是关于复制和粘贴.
我知道Linux 有两个不同的剪贴板,PRIMARY 和CLIPBOARD。如果我选择了一些文本,它会被发送到 PRIMARY,我可以使用第三个按钮鼠标或使用 SHIFT+INSERT 来粘贴它。但是,选择文本不应覆盖剪贴板。当用户选择文本时使用剪贴板,然后使用 CTRL-C 复制它或右键单击复制。在此之后,如果我使用 CTRL-V 粘贴,它应该粘贴驻留在 CLIPBOARD 中的内容,无论我是否在复制和粘贴操作之间选择了一些文本(更改了 PRIMARY)。
当我使用 VNC 连接到我的远程机器时,这一切工作得非常好:我可以使用 CTRL-C 复制一些文本,然后选择任何内容并使用 CTRL-V 粘贴以粘贴我使用 CTRL-C 复制的内容。但是,如果我在 VNC 查看器之外复制一些文本,即在我的本地计算机 (Windows 10) 上的记事本中复制一些文本,然后在我的远程计算机 (SLES 11) 中选择一些文本并尝试将其粘贴过来,它会粘贴我刚刚选择的内容,即使我使用 CTRL-V。
此时,PRIMARY 和 CLIPBOARD 在我的远程机器上搞砸了,直到我关闭会话并打开一个新会话。这意味着,如果我选择一些文本并执行 CTRL-V,它会粘贴我刚刚选择的文本。这变得非常烦人,因为如果我想复制某些内容然后将其粘贴到其他内容上,系统会粘贴我刚刚选择的内容,然后我会松开刚刚制作的 CTRL-C。我不知道选定的文本是否被发送到剪贴板或初级,或者 CTRL-V 现在是否从初级或剪贴板粘贴,但有些东西搞砸了。
我知道 VNC Viewer 曾经有一个名为 SendPrimary 的选项,它可能会解决我的问题(请参阅this),但我在 VNC Viewer 5.3.2 中找不到此选项。
刚刚从 Real VNC 团队得到了答案。显然 SendPrimary 选项仅在 Linux VNC 查看器版本中可用。但是,最后,它已移至 VNC 服务器。因此,要禁用 SendPrimary 选项,您必须将以下行添加到.vnc/config.d/vncserverui-virtual:
如果要全局禁用它,请将其添加到/etc/vnc/config.d/common.custom。
编辑:请注意,您需要重新启动 VNC 服务器才能使其生效。
在 Linux 的右上角,剪刀位于。右键单击并关闭默认剪贴板管理器,然后从 Tigervnc 剪贴板管理器开始:
它将启动 TigerVNC 剪贴板。因此,您可以与本地和远程计算机共享剪贴板。
我已经在 Oracle Linux 上进行了测试和工作。