Как сделать так, чтобы центр программного обеспечения автоматически создавал ярлык на рабочем столе при каждой установке приложения?

8

У меня скрыта панель запуска Unity, так как я предпочитаю использовать док в Каире.

Вот почему я пытаюсь найти способ установить вещи из Ubuntu Software Center для автоматической установки ярлыка на моем рабочем столе.

Эшли Джонсон
источник
Я не могу понять из этого. Зачем тебе это делать? Какой инструмент / пусковая установка имеет отношение ко всему?
Брайам
1
@Braiam Я полагаю, что ОП хочет, чтобы на рабочем столе был создан ярлык для программ, которые он загружал через центр программного обеспечения, как это делают многие программы Windows. Модуль запуска был упомянут, потому что центр программного обеспечения автоматически прикрепляет к нему новые установки, но OP этого не использует.
Сет
@ Хорошо, это дикое предположение, потому что он хочет, чтобы программное обеспечение «загружалось» на рабочий стол.
Брайам
2
@Braiam Небольшое понимание того, что думают новые пользователи, очень помогает;) Он явно не хочет двоичные файлы на своем рабочем столе. Вы даже не можете использовать программный центр для загрузки двоичных файлов.
Сет
Во-первых, я… она, во-вторых, я говорю о том, что когда я загружаю как gimp, PDF-файлы, игры или любые другие приложения, я хочу, чтобы он шел на мой рабочий стол, чтобы я мог получить к нему доступ, потому что я не пользуюсь маленькой панелью инструментов. который идет с UBUNTU Я использую док-станцию ​​в Каире и, похоже, не могу понять, как изменить место загрузки программного центра Ubuntu (именно здесь я загружаю программы Sed)
Ashleigh Johnson

Ответы:

6

Запустите приведенный ниже сценарий в фоновом режиме, и он автоматически создаст стартовый файл на вашем рабочем столе только для недавно установленного программного обеспечения.

Это также:

  • проверяет, действительно ли новый элемент является приложением, предназначенным для запуска из модуля запуска (проверка на наличие NoDisplay=true)
  • делает лаунчер на вашем рабочем столе готовым к использованию.

Как пользоваться

  • Скопируйте приведенный ниже скрипт в пустой файл (используйте, например gedit), сохраните его где-нибудь как make_starter.py.
  • Если вы сначала хотите проверить это: запустите его из окна терминала командой:

    python3 /path/to/make_starter.py
    

    Установите приложение, как вы привыкли. Значок должен появиться на вашем рабочем столе после завершения установки

  • Если все работает нормально, добавьте его в свои запускаемые приложения: Dash> Startup Applications> Add. Добавьте команду:

    python3 /path/to/make_starter.py
    

Запись

Локализованные версии Ubuntu могут иметь другое имя для «Desktop» («Bureaublad» на голландском языке). Если это так, замените в строке:

desktopname = "Desktop"

«Рабочий стол» по локализованному имени.

Сценарий

#!/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])
Якоб Влейм
источник
Спасибо @Jacobvlijm. Мой папа прочитает твой комментарий и сделает это для меня, потому что я не разбираюсь во всех технических вещах
Эшли Джонсон,
1
Это не имеет ничего общего с целью ответа, но я пользуюсь возможностью, чтобы отметить синтаксис Python, это очень просто понять. Конечно, вы можете использовать что-то еще, например bash или C, но вы не можете стать более человечным, чем это. :-)
Лусио
3
@Lucio велика вероятность того, что если вы будете писать простым английским языком, вы напишите сценарий на python случайно :)
Jacob Vlijm
1
@JacobVlijm Я не могу удержаться от того, чтобы сказать, что, с другой стороны, хороший шанс, что если вы оставите обезьяну перед ПК, она Perlслучайно напишет сценарий :)
kos
@kos Я не знал, что на АС так много обезьян :) Честно говоря, моя кошка заработала здесь большую часть моей репутации. Единственный ответ, который я написал сам, был отрицательным :).
Джейкоб Влейм
3

Это будет невероятно грязно, так как может быть более сотни значков приложений. Значки (на самом деле, файлы запуска рабочего стола ) обычно находятся в /usr/share/applications. Таким образом, вы можете запустить следующую команду в терминале:

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

но это создаст копию каждого отдельного модуля запуска на вашем рабочем столе. ( возможно несколько сотен, в зависимости от вашей среды )

Вы можете просмотреть /usr/share/applicationsв файловом менеджере и вручную скопировать их для соответствующих приложений на рабочий стол. Насколько я могу судить, нет никакого автоматического способа заставить Центр программного обеспечения делать это.

Мур
источник
1
Интересно, есть ли у synaptic какие-то сценарии после установки, которые он может запустить или что-то в этом роде ... Очевидно, что у центра программного обеспечения этого не будет, но синаптическая мощь может. В противном случае единственный другой способ сделать это - установить вещи через командную строку с помощью специального сценария. Просто мысли вслух.
Сет
Вероятно, можно сохранить список установленных приложений, использующих dpkgи diffновый список выбора, и предыдущий список выбора после каждой установки. Затем можно создать ярлыки с помощью сценария, который копирует соответствующие .desktopфайлы на рабочий стол.
Рохит Мадхаван
1
В общем, когда я что-то устанавливаю, мне приходится вручную ставить это на рабочий стол? Немного раздражает, но я могу справиться с этим
Эшли Джонсон
1
Извините за правку @muru, но я пытаюсь защитить невинных ... ;-) В моей системе: ls /usr/share/applications/*.desktop | wcдает:168 168 7851
Fabby
@AshleighJohnson, но есть одна вещь: установленные приложения добавляются в панель запуска. Так что это для вас непосредственно, а не на самом рабочем столе.
Rinzwind