wine 和 X11 之间的剪贴板同步

ken*_*enn 6 wine clipboard

我在 Wine 中安装了 Lingoes 字典。它有一个由剪贴板更改触发的弹出式翻译器。当我复制或选择一个项目时,它必须翻译该词,但在 Wine 中,当我复制或选择一个词时,Lingoes 词典仍然没有响应,就好像没有复制任何内容一样。我可以通过右键单击上下文菜单粘贴到 Lingoes 字典中,然后进行翻译。

如何在 Wine 和 X11 之间启用自动剪贴板同步?

dma*_*a_k 2

该线程列出了解决方案,即您需要创建注册表项

[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"UsePrimarySelection"="1"
Run Code Online (Sandbox Code Playgroud)

(一些消息来源表明"UsePrimarySelection"="y",但这具有相同的效果)。

欲了解更多信息,请参阅这篇文章。特别是如果您想将文本从VNC服务器(例如Linux)复制到VNC客户端(例如Windows),您需要额外安装autocutsel并添加~/.vnc/xstartup如下内容:

autocutsel -s PRIMARY -fork
Run Code Online (Sandbox Code Playgroud)

这是必需的,因为历史上VNC 协议使用旧的和已弃用的 CUTBUFFER(传奇应用程序xterm从远古时代就支持它开箱即用),而像 Wine 这样的新应用程序默认使用 CLIPBOARD(通过上面的注册表选项切换到 PRIMARY)。autocutsel应该用于同步所有这些类型的缓冲区。


Pau*_*rez 2

感谢dma_ks 的回答,我找到了一个适合我的变体。

  1. 打开终端窗口Ctrl+ Alt+t
  2. export WINEPREFIX=~/.wine32/ 使用您定义的 WINEPREFIX
  3. (选修的) export WINEDEBUG=fixme-all
  4. (可选)查询是否已经设置
:~$ wine reg query "HKLM\Software\Wine\X11 Driver"
reg: The system was unable to find the specified registry key or value
:~$ wine reg query "HKCU\Software\Wine\X11 Driver"
reg: The system was unable to find the specified registry key or value
Run Code Online (Sandbox Code Playgroud)
  1. 将注册表项添加到当前用户(HKCU)和本地计算机(HKLM),我在源代码中读到的内容似乎没有检查 HKLM,但我可能在某个地方错过了它,将它们都设置可能不会有什么坏处。
:~$ wine reg add "HKCU\Software\Wine\X11 Driver" /v UsePrimarySelection /t REG_SZ /d 1
The operation completed successfully
:~$ wine reg add "HKLM\Software\Wine\X11 Driver" /v UsePrimarySelection /t REG_SZ /d 1
The operation completed successfully
Run Code Online (Sandbox Code Playgroud)

在示例中,我将其设置为1定义 TRUE源文件中定义的其他有效选项是

  • 真的 :y Y t T 1
  • 错误的 :n N f F 0
  1. 您现在可以关闭终端窗口并启动您的 wine 应用程序

注意1:WINEPREFIX必须设置为与应用程序运行的 wineprefix 一致,如果每个应用程序运行在不同的前缀上,您可能需要修改每个前缀

注2:HKLM和HKCU分别是HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER的注册表键快捷方式

注意 3:您也可以使用 GUI 应用程序 regedit 来执行所有这些操作。您可以使用 启动它wine regedit

细节:

查看源代码,它显示为 wine

  1. 首先检查应用程序特定值HKCU\Software\Wine\AppDefaults\app.exe\X11 Driver\UsePrimarySelection,如果存在则返回其分配的值
  2. 如果它没有找到应用程序特定值,它会检查当前用户的“常规”值HKCU\Software\Wine\X11 Driver\UsePrimarySelection并返回其分配的值(如果存在)

有关的: