Como posso ter o centro de software criando automaticamente um atalho na minha área de trabalho toda vez que ele instala um aplicativo?

8

Eu tenho o lançador do Unity escondido, como prefiro usar o dock do Cairo.

É por isso que estou tentando encontrar uma maneira de fazer as coisas instaladas no Ubuntu Software Center para definir automaticamente um atalho na minha área de trabalho.

    
por Ashleigh Johnson 05.01.2015 / 23:50

2 respostas

6

Execute o script abaixo em segundo plano e ele criará automaticamente um iniciador em sua área de trabalho em (apenas) recém software instalado.

Também:

  • verifica se o novo item é realmente um aplicativo, destinado a iniciar a partir de um ativador (verificando NoDisplay=true )
  • torna o ativador no executável da sua área de trabalho, pronto para uso.

Como usar

  • Copie o script abaixo em um arquivo vazio (use, por exemplo, gedit ), salve-o em algum lugar como make_starter.py .
  • Se você quiser testá-lo primeiro: execute-o a partir de uma janela de terminal pelo comando:

    python3 /path/to/make_starter.py
    

    Instale um aplicativo como você está acostumado. Um ícone deve aparecer na sua área de trabalho após a conclusão da instalação

  • Se tudo funcionar bem, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:

    python3 /path/to/make_starter.py
    

Nota

Versões localizadas do Ubuntu podem ter um nome diferente para "Desktop" ("Bureaublad" em holandês). Em caso afirmativo, substitua na linha:

desktopname = "Desktop"

"Desktop" pelo nome oculto.

O script

#!/usr/bin/env python3
import subprocess
import os
import time
import shutil

desktopname = "Desktop"
dr = "/usr/share/applications"

while True:
    current = os.listdir(dr)
    time.sleep(10)
    last = os.listdir(dr)
    for item in last:
        if not item in current and item.endswith(".desktop"):
            file = dr+"/"+item
            with open(file) as src:
                text = src.read()
            if not "NoDisplay=true" in text:
                target = os.environ["HOME"]+"/"+desktopname+"/"+item
                shutil.copyfile(file, target)
                command = "chmod +x "+target
                subprocess.Popen(["/bin/bash", "-c", command])
    
por Jacob Vlijm 06.01.2015 / 15:58
3

Isso será incrivelmente confuso, já que pode haver mais de cem ícones de aplicativos. Os ícones (na verdade, arquivos do iniciador da área de trabalho ) geralmente estão em /usr/share/applications . Então você poderia executar o seguinte comando em um terminal:

find /usr/share/applications -type f -name '*.desktop' -exec cp --target-directory ~/Desktop/ {} +

mas isso criaria uma cópia de todos os lançadores em sua área de trabalho. ( possivelmente algumas centenas, dependendo do seu ambiente )

Você pode procurar /usr/share/applications no gerenciador de arquivos e copiá-los manualmente para aplicativos relevantes na área de trabalho. Não há nenhuma maneira automática de fazer o Centro de Software fazer isso, até onde eu sei.

    
por muru 06.01.2015 / 01:30