Você pode se conectar ao sinal activate-uri para executar ações em um resultado exibido em uma lente.
Usando o Python
Primeiro, você precisa conectar o sinal activate-uri na função init do Daemon (onde você conecta o search-changed e < strong> filters-changed )
self.scope.connect ("activate-uri", self.activate_uri)
Em seguida, crie uma função activate_uri no Daemon.
def activate_uri(self, scope, uri):
#Do stuff with uri here
return Unity.ActivationResponse (handled = Unity.HandledType.HIDE_DASH, goto_uri = '')
Essa função usa o objeto de escopo e o parâmetro url do resultado. O url não precisa necessariamente ser um uri, mas deve ser texto. Você pode fazer o que quiser com o texto na função. No final da função, você precisa retornar o Unity.ActivationResponse conforme detalhado acima para fechar o traço.
Dê uma olhada no link linha 101 & 274-296 para um exemplo disso em ação.
Usando rapidamente ou unidade-singlet
Com rapidez, é ainda mais fácil: adicionar uma função
def handle_uri(self, scope, uri):
# Do stuff with the uri here
para sua classe de lente (em __init__.py). Ele será automaticamente conectado ao sinal, você não precisa cuidar disso. Não se esqueça de adicionar a partir de gi.repository import Unity às suas declarações de importação.