wine 和 X11 之间的剪贴板同步

wine 和 X11 之间的剪贴板同步

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

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

答案1

解决方案列在此主题,即您需要创建注册表项

[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"UsePrimarySelection"="1"

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

有关详细信息,请参阅这个帖子。特别是如果你想将文本从 VNC 服务器(例如 Linux)复制到 VNC 客户端(例如 Windows),你需要另外安装autocutsel并添加~/.vnc/xstartup如下内容:

autocutsel -s PRIMARY -fork

这是必要的,因为从历史上看VNC 协议使用旧的、已弃用的 CUTBUFFER(像传奇应用程序一样,xterm自古以来就支持它),而像 Wine 这样的新应用程序默认使用 CLIPBOARD(使用上面的注册表选项切换为 PRIMARY)。autocutsel应该用来同步所有这些类型的缓冲区。

答案2

谢谢dma_ks 答案我找到了一种适合我的变体。

  1. 打开终端窗口Ctrl++Altt
  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
  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

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

  • 真的 :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

细节:

浏览源代码它看起来像葡萄酒

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

有关的:

相关内容