Wie kann ich das Software Center bei jeder Installation einer Anwendung automatisch eine Verknüpfung auf meinem Desktop erstellen lassen?

8

Ich habe den Launcher von Unity versteckt, da ich lieber das Cairo-Dock benutze.

Aus diesem Grund versuche ich, die im Ubuntu Software Center installierten Elemente so zu gestalten, dass automatisch eine Verknüpfung auf meinem Desktop festgelegt wird.

Ashleigh Johnson
quelle
Ich kann daraus keinen Sinn machen. Warum willst du das tun? Welches Tool / Launcher hat mit allem zu tun?
Braiam
1
@Braiam Ich glaube, das OP möchte, dass auf dem Desktop eine Verknüpfung für Programme erstellt wird, die er über das Softwarecenter heruntergeladen hat, wie es viele Windows-Programme tun. Der Launcher wurde erwähnt, weil das Software-Center automatisch Neuinstallationen an ihn anheftet, aber das OP verwendet das nicht.
Seth
@ Seth gut, das ist eine wilde Vermutung, weil er will, dass die Software auf den Desktop "herunterlädt".
Braiam
2
@Braiam Ein wenig Verständnis dafür, wie neuere Benutzer denken, hilft viel;) Er möchte die Binärdateien eindeutig nicht auf seinem Desktop haben. Sie können nicht einmal das Software-Center zum Herunterladen von Binärdateien verwenden.
Seth
Erstens bin ich eine Frau ..... zweitens spreche ich darüber, wenn ich wie Gimp, PDF-Inhalte oder Spiele oder andere Anwendungen herunterlade. Ich möchte, dass es auf meinen Desktop geht, damit ich darauf zugreifen kann, weil ich die kleine Symbolleiste nicht benutze Das kommt mit UBUNTU Ich benutze das Cairo Dock und ich kann nicht herausfinden, wie man ändert, wo das Ubuntu Software Center (hier lade ich sed Programme herunter) Downloads
Ashleigh Johnson

Antworten:

6

Führen Sie das folgende Skript im Hintergrund aus und es wird automatisch ein Starter auf Ihrem Desktop mit (nur) neu installierter Software erstellt.

Es auch:

  • prüft, ob es sich bei dem neuen Element tatsächlich um eine Anwendung handelt, die von einem Launcher aus gestartet werden soll (Prüfung auf NoDisplay=true)
  • macht den Launcher auf Ihrem Desktop ausführbar und einsatzbereit.

Wie benutzt man

  • Kopieren Sie das folgende Skript in eine leere Datei (verwenden Sie z. B. gedit) und speichern Sie es irgendwo unter make_starter.py.
  • Wenn Sie es zuerst testen möchten: Führen Sie es mit dem folgenden Befehl aus einem Terminalfenster aus:

    python3 /path/to/make_starter.py
    

    Installieren Sie eine Anwendung, wie Sie es gewohnt sind. Nach Abschluss der Installation sollte auf Ihrem Desktop ein Symbol angezeigt werden

  • Wenn alles einwandfrei funktioniert, fügen Sie es Ihren Startanwendungen hinzu: Dash> Startanwendungen> Hinzufügen. Fügen Sie den Befehl hinzu:

    python3 /path/to/make_starter.py
    

Hinweis

Lokalisierte Versionen von Ubuntu haben möglicherweise einen anderen Namen für "Desktop" ("Bureaublad" auf Niederländisch). Wenn ja, ersetzen Sie in der Zeile:

desktopname = "Desktop"

"Desktop" mit dem lokalisierten Namen.

Das Skript

#!/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
quelle
Vielen Dank @Jacobvlijm Ich werde meinen Vater Ihren Kommentar lesen lassen und es für mich tun, da ich nicht alle technischen Dinge verstehe
Ashleigh Johnson
1
Dies hat nichts mit dem Ziel der Antwort zu tun, aber ich nutze die Gelegenheit, um die Python-Syntax zu bemerken. Sie ist äußerst einfach zu verstehen. Natürlich können Sie etwas anderes wie Bash oder sogar C verwenden, aber menschlicher kann man nicht werden. :-)
Lucio
3
@ Lucio gute Chance, dass, wenn Sie einfaches Englisch schreiben würden, Sie versehentlich ein Python-Skript schreiben würden :)
Jacob Vlijm
1
@JacobVlijm Ich kann mich nicht davon abhalten, das zu sagen. Andererseits besteht eine gute Chance, dass sie versehentlich ein PerlSkript schreiben würde, wenn Sie einen Affen vor einem PC lassen würden :)
kos
@kos Ich wusste nicht, dass es auf AU so viele Affen gibt :) Um ehrlich zu sein: Meine Katze hat hier den größten Teil meines Rufs verdient. Die einzige Antwort, die ich selbst geschrieben habe, war die herabgestimmte :).
Jacob Vlijm
3

Dies wird unglaublich chaotisch sein, da es möglicherweise weit über hundert Anwendungssymbole gibt. Die Symbole (eigentlich Desktop-Launcher-Dateien ) befinden sich normalerweise in /usr/share/applications. Sie können also den folgenden Befehl in einem Terminal ausführen:

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

Dies würde jedoch eine Kopie jedes einzelnen Starters auf Ihrem Desktop erstellen . ( möglicherweise einige hundert, abhängig von Ihrer Umgebung )

Sie können /usr/share/applicationsim Dateimanager suchen und sie manuell für relevante Anwendungen auf den Desktop kopieren. Soweit ich das beurteilen kann, gibt es keine automatische Möglichkeit, das Software Center dazu zu bringen.

muru
quelle
1
Ich frage mich, ob Synaptic eine Art Post-Install-Skripte hat, die es ausführen kann oder so. Offensichtlich würde das Software-Center das nicht haben, aber Synaptic könnte. Andernfalls wäre die einzige andere Möglichkeit, dies zu erreichen, die Installation über die Befehlszeile mit einem benutzerdefinierten Skript. Ich denke nur laut nach.
Seth
Man könnte wahrscheinlich nach jeder Installation eine Liste der installierten Anwendungen mit dpkgund diffdie neue Auswahlliste und die vorherige Auswahlliste speichern . Anschließend können Verknüpfungen mithilfe eines Skripts erstellt werden, das die relevanten .desktopDateien auf den Desktop kopiert .
Rohith Madhavan
1
So ziemlich, wenn ich etwas installiere, muss ich es manuell auf meinen Desktop stellen? Ein wenig nervig, aber ich kann damit umgehen
Ashleigh Johnson
1
Entschuldigung für die Bearbeitung @muru, aber ich versuche, die Unschuldigen zu schützen ... ;-) Auf meinem System: ls /usr/share/applications/*.desktop | wcgibt:168 168 7851
Fabby
@AshleighJohnson, aber es gibt die Sache: Installierte Anwendungen werden dem Launcher hinzugefügt. Es ist also direkt für Sie da, nur nicht auf dem Desktop selbst.
Rinzwind