页次: 1
我想监控剪切板变化,其他地方用,这个问题,我看了xclipit, 貌似是循环每0.5秒检测一次,
x11有没有事件可以callback调用之类的?
虽然循环检测是可行的
commit
终于找到了,当然,x11的selection primary还是没办法支持的。 不过ctrl+c的clipboard算是满足要求了
http://www.pygtk.org/pygtk2reference/cl … #id3645783
最近编辑记录 atmouse (2014-11-22 15:58:46)
离线
当然是可以做到的,X 本来就是异步的,各种事件。非要用底层的 X11 API 的话,参考一下 xsel 的源码吧。还有 fcitx-clipboard。
离线
OK, xsel 里面找到了,
不过,只是底层的事件阻塞而已,不是listener,得手动while
离线
要是有更高级的拓展lib就好了
离线
gtk 或者 gdk 应该有吧?
离线
额。。。。意识到错了,
x11的 SelectionEvent刚看了,属于特殊的事件,
是两个client之间的处理,一个owner, 多个requestor,
只有当requestor发起 SelectionRequest的时候,owner才会响应 SelectionNotify。 也就是说不会有listener这个东西了,想要知道粘贴板是否有变化,就得不停地request。。。
现在才明白为什么有时候在一个窗口复制好数据,接着关掉那个程序,发现到另一个窗口粘帖不出来。因为原来的owner没了,不会有响应, 所以才需要parcellite跟clipit这些软件
离线
咦,那 fcitx-clipboard 是怎么做的呢?
离线
primary 是没办法,但是其他复制粘贴还是可以监控的,
比如gtk里面选择文字ctrl+c可以通过按键事件来拦截吧
离线
如果像windows那样, 给每个进程都插一个dll,那个进程select了什么东西,也是可以监控到的。。。
离线
页次: 1