与内部 X 服务器共享 Mac OS X 剪贴板

kwu*_*hak 21 mac clipboard macos

我希望能够在本机(Cocoa?)MacOS X 应用程序和在 Mac 内部 X 服务器下运行的应用程序之间进行复制和粘贴。

目前我可以独立复制和粘贴。如果我在 xterm 窗口中选择文本,我可以将其粘贴回任何其他基于 X 的窗口。类似地,复制 X 外的信息可以粘贴到也在 X 外的应用程序中。

例如,如果我(完全按照这个顺序):

  • 在 xterm 窗口中复制(使用鼠标选择)“使用 X 选择复制”
  • 在 Firefox 中复制(编辑 | 复制)“Firefox 中的文本”
  • 将(Shift Insert xmodmap)粘贴到 nano 我得到“使用 X 选择复制”
  • 在此处粘贴(编辑 | 粘贴) -> Firefox 中的文本
  • 在 MacVIM 中粘贴(编辑 | 粘贴)我得到“Firefox 中的文本”
  • 粘贴到 /usr/bin/vim(非图形)我得到“使用 X 选择复制”

如何在 X 和 Cocoa 之间启用“剪贴板共享”?

我用来粘贴 X 的 xmodmap 是:

xmodmap -e "keycode 84 = Insert"
Run Code Online (Sandbox Code Playgroud)

其中 84 是数字键盘的 Enter 键。所以 Shift Enter 给了我粘贴。

jtb*_*jtb 14

您可以通过编辑~/Library/Preferences/org.x.X11.plist和添加以下五个布尔键1(并检查它们)来启用剪贴板同步。

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select
Run Code Online (Sandbox Code Playgroud)

重启X11,它们应该可以正常同步了。

编辑:您可以使用属性列表编辑器或以下终端命令添加键:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是安装最新版本的 XQuartz,它通过 X11 Preferences >> Pasteboard 面板公开这些选项。

  • 我认为现在要写入的正确文件是`org.macosforge.xquartz.X11` (4认同)