有没有一种简单的方法可以从 shell 中在正在运行的 GUI 应用程序中创建拖放事件?

有没有一种简单的方法可以从 shell 中在正在运行的 GUI 应用程序中创建拖放事件?

通常情况下,我会在桌面窗口的终端中工作。我会在 Slack 中与同事聊天,Slack 是一款纯 GUI 应用。我可以通过从 Nautilus 拖放文件来共享文件,但如果我根本不需要打开 Nautilus 就好了。

如果我有文件路径,以及可以处理放置事件的应用程序的 PID,那么是否有可以向应用程序发送放置事件的命令?我希望有这样的工作流程:

find ~/Pictures -name lol.gif | xargs gnome-drop --pid 29058

答案1

仅知道 PID 是不够的;即使您假设 X11(无 Wayland),程序仍可能打开多个窗口。甚至窗口也不是放置目标 - 单个小部件才是。

(尽管据我所知,X11 消息只处理坐标,但程序本身在内部将它们转换为特定的小部件。)

因此,这样的工具可能存在,但您不必为其指定 PID,而只需为其指定窗口名称和(至少)一些像素坐标即可。也许它可以使用 AT-SPI 来预测正确的小部件。

我还没有见过这样的项目。不过,拖曳箱可能适合您的目的 – 从终端启动起来很容易。


相关内容