¿Cómo puedo hacer que el centro de software cree automáticamente un acceso directo en mi escritorio cada vez que instala una aplicación?

8

Tengo el lanzador de Unity oculto, ya que prefiero usar el cairo dock.

Es por eso que estoy tratando de encontrar una manera de hacer que las cosas instaladas desde el Centro de software de Ubuntu establezcan automáticamente un acceso directo en mi escritorio.

Ashleigh Johnson
fuente
No puedo tener sentido de esto. Por qué querrías hacer esto? ¿Qué herramienta / lanzador tiene que ver con todo?
Braiam el
1
@Braiam Creo que el OP quiere tener un acceso directo creado en el escritorio para los programas que descargó a través del centro de software, como lo hacen muchos programas de Windows. Se mencionó el iniciador porque el centro de software le agrega automáticamente nuevas instalaciones, pero el OP no lo usa.
Seth
@Seth bueno, es una suposición descabellada porque quiere que el software "se descargue" en el escritorio.
Braiam
2
@Braiam Un poco de comprensión de cómo piensan los usuarios más nuevos ayuda mucho;) Él claramente no quiere los archivos binarios en su escritorio ... Ni siquiera puede usar el centro de software para descargar archivos binarios.
Seth
Primero que nada, soy ella ... segundo, estoy hablando de cuando descargo como gimp, o cosas o juegos en PDF o cualquier aplicación, quiero que vaya a mi escritorio para poder acceder a él porque no uso la pequeña barra de herramientas que viene con UBUNTU, uso el dock de El Cairo y parece que no puedo entender cómo cambiar dónde se descarga el centro de software ubuntu (aquí es donde descargo los programas sed)
Ashleigh Johnson

Respuestas:

6

Ejecute el siguiente script en segundo plano y creará automáticamente un iniciador en su escritorio con (solo) software recién instalado.

También:

  • comprueba si el nuevo elemento es realmente una aplicación, destinada a comenzar desde un lanzador (buscando NoDisplay=true)
  • hace que el lanzador en su escritorio sea ejecutable, listo para usar.

Cómo utilizar

  • Copie el script a continuación en un archivo vacío (use, por ejemplo gedit), guárdelo en algún lugar como make_starter.py.
  • Si primero quiere probarlo: ejecútelo desde una ventana de terminal con el comando:

    python3 /path/to/make_starter.py
    

    Instale una aplicación como está acostumbrado. Debería aparecer un icono en su escritorio después de que la instalación haya finalizado

  • Si todo funciona bien, agréguelo a sus aplicaciones de inicio: Tablero> Aplicaciones de inicio> Agregar. Agrega el comando:

    python3 /path/to/make_starter.py
    

Nota

Las versiones localizadas de Ubuntu pueden tener un nombre diferente para "Escritorio" ("Bureaublad" en holandés). Si es así, reemplace en la línea:

desktopname = "Desktop"

"Escritorio" por el nombre loacalizado.

La secuencia de comandos

#!/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
fuente
Gracias @Jacobvlijm Haré que mi papá lea tu comentario y lo haga por mí, ya que no entiendo todas las cosas técnicas
Ashleigh Johnson
1
Esto no tiene nada que ver con el objetivo de la respuesta, pero aprovecho la oportunidad para comentar la sintaxis de Python, es extremadamente fácil de entender. Por supuesto, puedes usar algo más como bash o incluso C, pero no puedes ser más humano que esto. :-)
Lucio
3
@Lucio, una buena oportunidad de que si escribieras en inglés simple, escribirías un script de Python por accidente :)
Jacob Vlijm
1
@JacobVlijm No puedo evitar decir eso, por otro lado, es muy probable que si dejas un mono frente a una PC, ella escriba un Perlguión por accidente :)
kos
@kos No sabía que había tantos monos en AU :) Para ser honesto: mi gato ganó la mayor parte de mi reputación aquí. La única respuesta que escribí yo mismo fue la rechazada :).
Jacob Vlijm
3

Esto será increíblemente complicado, ya que puede haber más de cien iconos de aplicaciones. Los íconos (en realidad, archivos de inicio de escritorio ) generalmente están en /usr/share/applications. Entonces podría ejecutar el siguiente comando en una terminal:

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

pero esto crearía una copia de cada lanzador en su escritorio. ( posiblemente unos pocos cientos, dependiendo de su entorno )

Puede navegar /usr/share/applicationsen el administrador de archivos y copiarlos manualmente para aplicaciones relevantes en el escritorio. No hay forma automática de hacer que el Centro de software haga esto, por lo que puedo decir.

muru
fuente
1
Me pregunto si Synaptic tiene algún tipo de scripts posteriores a la instalación que pueda ejecutar o algo así. Obviamente, el centro de software no tendría eso, pero sí podría tener Synaptic. De lo contrario, la única otra forma de lograr esto sería instalar cosas a través de la línea de comandos con un script personalizado. Solo pensando en voz alta.
Seth
Probablemente se podría guardar una lista de las aplicaciones instaladas usando dpkgy diffla nueva lista de selecciones y la lista de selecciones anteriores después de cada instalación. Luego, se pueden crear accesos directos utilizando un script que copia los .desktoparchivos relevantes en el escritorio.
Rohith Madhavan
1
¿Entonces, cuando instalo algo, tengo que ponerlo manualmente en mi escritorio? Un poco molesto pero puedo manejar eso
Ashleigh Johnson
1
Perdón por la edición @muru, pero estoy tratando de proteger a los inocentes ... ;-) En mi sistema: ls /usr/share/applications/*.desktop | wcda:168 168 7851
Fabby
@AshleighJohnson, pero está la cosa: las aplicaciones instaladas se agregan al iniciador. Por lo tanto, está allí para usted directamente, pero no en el escritorio mismo.
Rinzwind