当我输入Ctrl+V时,我不希望系统只是从剪贴板粘贴信息。我想用这些信息做一些事情(例如,删除或修改其中的某些内容),然后将修改后的版本粘贴到字段中。现在我试图写这样的东西:
if [ condition ]; then
xclip -selection clipboard -o|sed "s/something/another/g"|xclip -selection clipboard -i
fi
xdotool key --window $(xdotool getactivewindow) ctrl+v #mimic Ctrl+V keystroke
它工作得很好。但问题是我无法将脚本绑定到快捷键Ctrl+ V,否则它似乎一直在循环(因为最后总是有一个Ctrl+ )。有什么方法可以解决这个问题吗?例如,像+一样执行应用程序,这样我就不需要模仿系统+组合了?VCtrlVCtrlV
答案1
你真幸运。我已经使用 Autokey 做这件事很长时间了。
首先安装 autokey 和 python-tk:
sudo apt-get install autokey-gtk python-tk
现在,启动Autokey并创建一个新的script
。在脚本中写入以下代码:
from Tkinter import Tk
root = Tk()
root.withdraw()
text = root.clipboard_get() + "MODIFIED"
keyboard.send_keys(text)
现在,单击选项Set
按钮Hotkey
。在这里,您可以将热键设置为Ctrl+V。它运行完美。更酷的是,您还可以设置窗口过滤器,以便此行为Ctrl+V仅在特定窗口上可用;在其余窗口上它将正常运行。