我按照此页面上的 hello world 示例设置了 lua-lgi 和 libnotify,成功获得了一个通知,如果使用os.execute("notify-send...")
. 根据我收集的信息,Notify-send 不允许用户操作,因此我尝试直接使用 libnotify 库来显示带有按钮的通知。在通知中单击时,它应该打开一个文件。我可以使用 lua 调用此处描述的函数,使用(从 hello world 示例构建):
Hello:add_action("button", "Open", function(notification, action, user_data) os.open("gedit tmp") end)
它成功地在通知中显示了一个带有“打开”标签的按钮。但是,没有调用回调函数,所以文件没有打开。我还注意到,在运行脚本时,它实际上在通知完全出现之前就完成了执行,所以如果在单击通知中的按钮时程序不再运行,那么这就是不调用回调的原因之一,如果直到那时它都可以正常工作。这是我第一次使用 lua-lgi,所以我不确定这些类型的回调函数是如何转换为 lua 的,或者它们是否受支持,这可能是我在这里真正想要理解的。感谢您对此问题的任何帮助,或者深入了解使用按钮和通过其他方式回调显示通知的替代方法。