获取有关剪贴板内容更改的通知

获取有关剪贴板内容更改的通知

我想以类似于监视文件的方式监视剪贴板,inotify以便可以在 tmux 状态行或系统中的任何其他自定义 GUI 中显示实际的剪贴板内容。我不喜欢轮询,因为它会加载系统并且响应不太灵敏。我使用的是 GNOME/X11。存在哪些方式?

答案1

既然这么久了还没有答案,那我就来解决一下吧。

首先,民意调查很容易,但你说你不想这样做。

找出哪个程序提供了您的实际剪贴板,杀死它,然后使用 strace 运行它,并执行一些简单的剪贴板操作,看看它做了什么。希望这将为您提供一些有关如何以及在何处存储新数据的线索。一旦您知道了这一点,您就会具体知道您要检测的内容。

答案2

剪辑通知是一个简单的程序,当检测到剪贴板中的任何更改时,它会做出响应。

附言。它也监视主要剪贴板事件(文本选择),这可能是不需要的。只需注释掉一行即可轻松规避这一点:-

XFixesSelectSelectionInput(disp, root, XA_PRIMARY, XFixesSetSelectionOwnerNotifyMask);

在源代码文件中clipnotify.c(所有积分都归功于评论另一个 stackexchange 答案由名为的用户制作阿克希尔建议这个解决方法..它省去了我很多麻烦)

附言。要安装 Clipnotify,只需克隆 github 存储库并make在克隆的目录中运行命令即可。将在要运行的目录中创建一个新的可执行文件来执行程序。

相关内容