有一个程序叫剪辑通知基本上它所做的就是在复制事件时退出,因此您可以在 while 循环中使用它。所以我有这个循环:
while True:
# clipnotify exits on a copy event
original = os.popen("xclip -o -sel clip").read()
os.popen("clipnotify").read()
content = os.popen("xclip -o -sel clip").read()
print(content)
# Ignore alt clipboard event
if content != original:
get_items()
add_item(content)
问题是,clipnotify 将在正常的复制事件(如 ctrl+c)上退出,但也会在可怕的选择/突出显示副本上退出。我只想从普通剪贴板中获取。所以我要做的就是检查原来的内容是否发生了变化,然后执行操作。除非我想复制某些内容两次,否则这是有效的。该程序中有一个用例,其中复制某些内容两次是有意义的,但它不会被触发,因为original
变量技巧不会使其检测到更改。
有点代码问题,我可以用变量来解决这个问题。
但我也想知道我是否可以使用其他一些系统组件来使这变得更容易。
我之前所做的是附带一个修补过的clipnotify.c,但现在我依赖于这个包。