Comment puis-je demander au centre logiciel de créer automatiquement un raccourci sur mon bureau chaque fois qu'il installe une application?

8

J'ai le lanceur d'Unity caché car je préfère utiliser le dock du Caire.

C'est pourquoi j'essaie de trouver un moyen de faire installer les choses à partir du Centre logiciel Ubuntu pour définir automatiquement un raccourci sur mon bureau.

Ashleigh Johnson
la source
Je ne peux pas comprendre cela. Pourquoi voudriez-vous faire ça? Quel outil / lanceur a à voir avec tout?
Braiam
1
@Braiam Je pense que l'OP souhaite qu'un raccourci soit créé sur le bureau pour les programmes qu'il a téléchargés via le centre de logiciels, comme le font de nombreux programmes Windows. Le lanceur a été mentionné parce que le centre logiciel épingle automatiquement les nouvelles installations, mais l'OP ne l'utilise pas.
Seth
@Seth bien, c'est une supposition folle parce qu'il veut que le logiciel "se télécharge" sur le bureau.
Braiam
2
@Braiam Un peu de compréhension de la façon dont les nouveaux utilisateurs pensent que ça aide beaucoup;) Il ne veut clairement pas que les binaires sur son bureau .. Vous ne pouvez même pas utiliser le centre logiciel pour télécharger des binaires.
Seth
Tout d'abord, je suis une ..... ensuite je parle quand je télécharge comme Gimp, ou des trucs ou des jeux PDF ou d'autres applications, je veux qu'il aille sur mon bureau afin que je puisse y accéder parce que je n'utilise pas la petite barre d'outils fourni avec UBUNTU j'utilise le dock cairo et je n'arrive pas à comprendre comment changer où le centre logiciel ubuntu (c'est ici que je télécharge les programmes sed) se télécharge
Ashleigh Johnson

Réponses:

6

Exécutez le script ci-dessous en arrière-plan et il créera automatiquement un démarreur sur votre bureau sur (uniquement) les logiciels nouvellement installés.

Ça aussi:

  • vérifie si le nouvel élément est réellement une application, censée démarrer à partir d'un lanceur (vérification NoDisplay=true)
  • rend le lanceur sur votre bureau exécutable, prêt à l'emploi.

Comment utiliser

  • Copiez le script ci-dessous dans un fichier vide (utilisez par exemple gedit), enregistrez-le quelque part sous make_starter.py.
  • Si vous voulez d'abord le tester: lancez-le depuis une fenêtre de terminal par la commande:

    python3 /path/to/make_starter.py
    

    Installez une application comme vous en avez l'habitude. Une icône devrait apparaître sur votre bureau une fois l'installation terminée

  • Si tout fonctionne bien, ajoutez-le à vos applications de démarrage: Dash> Startup Applications> Add. Ajoutez la commande:

    python3 /path/to/make_starter.py
    

Remarque

Les versions localisées d'Ubuntu peuvent avoir un nom différent pour "Desktop" ("Bureaublad" en néerlandais). Si oui, remplacez dans la ligne:

desktopname = "Desktop"

"Bureau" par le nom loacalisé.

Le scénario

#!/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])
Jacob Vlijm
la source
Merci @Jacobvlijm Je vais demander à mon père de lire votre commentaire et de le faire pour moi car je ne comprends pas toutes les choses techniques
Ashleigh Johnson
1
Cela n'a rien à voir avec l'objectif de la réponse mais j'en profite pour remarquer la syntaxe Python, c'est extrêmement simple à comprendre. Bien sûr, vous pouvez utiliser autre chose comme bash ou même C, mais vous ne pouvez pas devenir plus humain que cela. :-)
Lucio
3
@Lucio bonne chance que si vous écriviez un anglais simple, vous
écririez
1
@JacobVlijm Je ne peux pas m'empêcher de dire que d'un autre côté, il y a de fortes chances que si vous laissiez un singe devant un PC, elle écrirait un Perlscript par accident :)
kos
@kos Je ne savais pas qu'il y avait autant de singes sur AU :) Pour être honnête: mon chat a gagné la plupart de ma réputation ici. La seule réponse que j'ai écrite moi-même était la réponse négative :).
Jacob Vlijm
3

Ce sera incroyablement compliqué, car il pourrait y avoir bien plus d'une centaine d'icônes d'application. Les icônes (en fait, les fichiers du lanceur de bureau ) sont généralement présentes /usr/share/applications. Vous pouvez donc exécuter la commande suivante dans un terminal:

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

mais cela créerait une copie de chaque lanceur sur votre bureau. ( éventuellement quelques centaines, selon votre environnement )

Vous pouvez parcourir /usr/share/applicationsle gestionnaire de fichiers et les copier manuellement pour les applications pertinentes sur le bureau. Pour autant que je sache, il n'y a aucun moyen automatique de faire faire cela au Software Center.

muru
la source
1
Je me demande si synaptic a une sorte de scripts de post-installation qu'il peut exécuter ou quelque chose comme ça. Évidemment, le centre logiciel n'aurait pas cela, mais synaptic le pourrait. Sinon, la seule autre façon d'y parvenir serait d'installer des choses via la ligne de commande avec un script personnalisé. Penser juste à haute voix.
Seth
On pourrait probablement enregistrer une liste des applications installées à l'aide dpkget diffla nouvelle liste de sélections et la liste de sélections précédente après chaque installation. Ensuite, des raccourcis peuvent être créés à l'aide d'un script qui copie les .desktopfichiers appropriés sur le bureau.
Rohith Madhavan
1
Donc, quand j'installe quelque chose, je dois le mettre manuellement sur mon bureau? Un peu ennuyeux mais je peux gérer ça
Ashleigh Johnson
1
Désolé pour l'édition @muru mais j'essaye de protéger les innocents ... ;-) Sur mon système: ls /usr/share/applications/*.desktop | wcdonne:168 168 7851
Fabby
@AshleighJohnson mais il y a la chose: les applications installées sont ajoutées au lanceur. Il est donc là pour vous directement, mais pas sur le bureau lui-même.
Rinzwind