Ubuntu / Unity присоединяют скрипт к Launcher


12

Я недавно скачал IntelliJ IDEA и запустил приложение, запустив его . idea.sh. Приложение появляется в панели запуска, когда я его запускаю, но по какой-то причине, когда я щелкаю по нему правой кнопкой мыши, у меня не появляется опция «Lock to Launcher», как у других приложений.

Как мне прикрепить его к лаунчеру?

Это потому, что я запускаю скрипт, а не исполняемый файл напрямую, который отключает эту опцию?

Ответы:


16

Похоже, есть 2 способа сделать это.

Способ № 1: создать файл .desktop вручную

Да, вам нужно создать собственный лаунчер .desktop для него. Вот общие шаги:

  1. Создайте файл * .desktop в /usr/local/share/applications(или в /usr/share/applicationsзависимости от вашей системы).

    $ gksudo gedit <insert-path-to-new-file.desktop>
    
  2. Вставить текст ниже

    [Desktop Entry]
    Type=Application
    Terminal=false
    Name=IntelliJ IDEA
    Icon=/path/to/icon/icon.svg
    Exec=/path/to/file/idea.sh
    

    Редактировать Icon=и Exec=и Name=. Также Terminal=True/falseопределяет погоду, терминал открывает окно и отображает вывод или работает в фоновом режиме.

  3. Поместите файл .desktop на панель запуска Unity. Для этого шага вам нужно перейти в файловом браузере к тому месту, где находится файл .desktop, который вы создали на предыдущих шагах. Найдя файл, перетащите его на панель запуска Unity сбоку. После этого вам может потребоваться выполнить следующую команду, чтобы ваша система распознала только что добавленный файл .desktop.

    $ sudo update-desktop-database
    

Метод № 2: метод GUI

Вместо того, чтобы вручную создавать файл .desktop, вы можете вызвать графический интерфейс, чтобы помочь в этом.

  1. установить гном-панель

    $ sudo apt-get install --no-install-recommends gnome-panel
    
  2. запустить генератор графического интерфейса .desktop

    $ gnome-desktop-item-edit ~/Desktop/ --create-new
    

                      редактор

Ссылки


sudo update-desktop-databasдолжно бытьsudo update-desktop-database
Trindaz

Кроме того, последняя строка метода # 1 ( $ sudo ...) не должна быть там. После некоторой догадки я обнаружил, что «Поместить это в единую панель» = Откройте браузер файлов и найдите файл, созданный на шаге 1, затем перетащите его в «Средство запуска». «Панель» в Unity представляется неоднозначным в зависимости от того, с кем вы разговариваете.
Trindaz

@Trindaz - да, извините за отсутствие подробностей, я не был уверен, как именно сделать этот шаг, либо при просмотре другого урока этот же шаг был столь же расплывчатым. Я добавлю детали, как вы описали в этом шаге. ЛМК, если они выглядят хорошо.
SLM

Это сработало для меня 18.04, но попробовал 19.04, и файл конфигурации открывается как текстовый файл! Вот это боль.
Quaternion

Цитируя @MDMower из их комментария ( unix.stackexchange.com/questions/170823/… ): В качестве альтернативы, если это приложение установлено только для текущего пользователя, было бы более уместно поместить этот .desktopфайл~/.local/share/applications
Джон Фриман

1

В моем случае можно использовать следующее: запуск сценария оболочки из модуля запуска и сохранение открытого окна оболочки .

метод

  • Этот пример с mate-terminal, используйте, gnome-terminalесли это тот, который в вашей системе.
  • Этот пример со сценарием оболочки php cli , чтобы понять, любая команда может быть передана здесь.
  • В -hэтом случае в сценарий передается один параметр .
  • Добавление ; bashсохраняет окно оболочки открытым после окончания скрипта, например:

    mate-terminal --execute bash -c "php /home/lilith/Desktop/moon/MOON/moon -h ; bash"
    

Дополнительные варианты

Чтобы оставить окно открытым, указав путь к каталогу скрипта, используйте cdкоманду before. Например:

mate-terminal --execute bash -c "cd /home/lilith/Desktop/moon/MOON/ && php moon -h ; bash" 

Это позволяет запускать некоторые дополнительные команды без необходимости оставаться в текущем рабочем каталоге.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.