Como adicionar programa de atalho ao iniciador de unidade programaticamente? [duplicado]

8

Estou desenvolvendo um programa no Qt que ajudará os usuários a gerenciar (criar, editar e excluir) suas listas rápidas no iniciador do Unity.

Cheguei a um ponto em que criei o arquivo .desktop e não sei como programaticamente colocar esse arquivo no iniciador do Unity.

Eu encontrei duas (más) maneiras de fazer isso:

  1. Arraste e solte manualmente o arquivo .desktop criado para o launcher de unidade
  2. Edite a tecla de favoritos com "gsettings set com.canonical.Unity.Launcher favorites" e force a unidade a recarregar com "unity --replace"

Então, estou procurando uma função ou um comando do sistema que é chamado primeiro no método 'arrastar e soltar' para que eu possa fazer isso no meu programa sem a necessidade de o usuário fazer isso manualmente.

Eu nem sei onde (ou como) pesquisar minha solução, então qualquer sugestão será útil.

    
por Ivan Lučin 26.02.2012 / 19:20

2 respostas

2

Você pode adicionar listas rápidas dinâmicas em tempo de execução usando o DbusMenu. Você pode ler mais sobre isso aqui: link . Essa página também descreve a adição de contadores, barras de progresso e configuração de urgência.

    
por Jo-Erlend Schinstad 26.02.2012 / 19:35
2

Eu faria assim:

  1. Elimine o arquivo .desktop em ~/.local/share/applications . Desta forma, aparecerá na seção de aplicativos também.
  2. Busque a lista de favoritos com gsettings get ... .
  3. Insira o caminho para o arquivo da área de trabalho na matriz usando gsettings set .

A idéia de dbus por Jo parece mais agradável. :)

    
por Sandip Bhattacharya 26.02.2012 / 19:37