![从 Unity Lens 执行命令](https://linux22.com/image/1110347/%E4%BB%8E%20Unity%20Lens%20%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
我正在尝试创建一个 unity 镜头,当我们从以下代码中的 unity-lens 中选择一个条目时,如何执行命令 results.append(url、icon、category、mime-type、text、comment、drag and drop url) 我试图设置 file://,但它用文本编辑器打开文件(如果文本编辑器无法读取它,它什么也不做)请帮忙
谢谢你 Vishnu V
答案1
您可以连接到激活-uri信号来对镜头中显示的结果执行操作。
使用 Python
首先,你需要连接激活-uri守护进程中的信号在里面函数(连接搜索已更改和过滤器已更改)
self.scope.connect ("activate-uri", self.activate_uri)
然后,创建一个激活 uri守护进程中的功能。
def activate_uri(self, scope, uri):
#Do stuff with uri here
return Unity.ActivationResponse (handled = Unity.HandledType.HIDE_DASH, goto_uri = '')
此函数接受范围对象和网址结果中的参数。 网址不一定需要是 uri,但必须是文本。您可以对函数中的文本进行任何操作。在函数结束时,您需要返回Unity.ActivationResponse如上所述,以关闭仪表板。
看一下http://bazaar.launchpad.net/~markjtully/+junk/calendar-lens/view/30/calendar-lens-daemon.py第 101 行和第 274-296 行是此操作的一个示例。
使用 Quickly 或 unity-singlet
使用 quicker,可以更轻松地添加函数
def handle_uri(self, scope, uri):
# Do stuff with the uri here
到您的镜头类(在 __init__.py 中)。它将自动连接到信号,您不必关心这一点。不要忘记将 from gi.repository import Unity 添加到您的导入语句中。