从 Unity Lens 执行命令

从 Unity Lens 执行命令

我正在尝试创建一个 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 添加到您的导入语句中。

相关内容