Як я можу в центрі програмного забезпечення автоматично створювати ярлик на робочому столі кожного разу, коли він встановлює додаток?


8

У мене прихована пускова установка Unity, оскільки я вважаю за краще використовувати док.

Ось чому я намагаюся знайти спосіб зробити так, щоб речі, встановлені з програмного центру Ubuntu, автоматично встановлювали ярлик на моєму робочому столі.


Я не можу мати сенсу з цього. Чому б ти хотів це зробити? Який інструмент / пусковий пристрій має відношення до всього?
Брайам

1
@Braiam Я вважаю, що ОП хоче створити ярлик на робочому столі для програм, які він завантажив через програмний центр, як це роблять багато програм Windows. Про запуск програми згадувалося, оскільки програмний центр автоматично підключає до нього нові інсталяції, але ОП це не використовує.
Сет

@ Добре, це дика здогадка, оскільки він хоче, щоб програмне забезпечення "завантажувалося" на робочий стіл.
Брайам

2
@Braiam Трохи розуміння того, як нові користувачі думають, що допомагає багато;) Він, очевидно, не хоче бінарних файлів на своєму робочому столі. Ви навіть не можете використовувати програмний центр для завантаження бінарних файлів.
Сет

По-перше, я a ... що використовується з UBUNTU, я використовую док Каїра, і я не можу зрозуміти, як змінити, де завантажується програмний центр ubuntu (саме тут я завантажую програми для sed)
Ешлі Джонсон

Відповіді:


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 хороший шанс, що якщо ти пишеш звичайною англійською мовою, то випадково
напишеш

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
Мені цікаво, чи має синаптик якісь сценарії після встановлення, які він може запускати чи щось таке? Інакше єдиним іншим способом досягти цього буде встановлення речей за допомогою командного рядка зі спеціальним сценарієм. Просто вголос.
Сет

Можливо, можна зберегти список встановлених програм за допомогою, dpkgа diffтакож новий список вибору та попередній список виділень після кожної інсталяції. Потім ярлики можна створити за допомогою скрипту, який копіює відповідні .desktopфайли на робочий стіл.
Рохіт Мадхаван

1
Так досить, коли я встановлюю щось, що мені доведеться вручну помістити на робочий стіл? Трохи прикро, але я можу впоратися з цим
Ешлі Джонсон

1
Вибачте за редагування @muru, але я намагаюся захистити невинних ... ;-) У моїй системі: ls /usr/share/applications/*.desktop | wcдає:168 168 7851
Fabby

@AshleighJohnson, але є річ: встановлені програми додаються до запуску. Тож саме для вас це прямо не на самому робочому столі.
Rinzwind
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.