Почему мой пользовательский лаунчер открывается под отдельной иконкой?

12

Я создал собственный файл запуска:

[Desktop Entry]
Type=Application
Name=P4V
Comment=Perforce Visual Client
Icon=/usr/lib/p4v/P4VResources/icons/P4-V_128x128.png
Exec=/usr/bin/p4v
Terminal=false
Categories=Development;

И перетащил этот файл в мой лаунчер. Однако, когда я нажимаю на значок, он открывает приложение под вторым, другим значком (я нажимаю на верхний, он открывает приложение под нижним):

значки запуска

Нижний значок не отображается до тех пор, пока я не запустил приложение, используя верхний значок P4v, который я добавил вручную.

ctote
источник
1
Это Java-приложение?
Добей
/ usr / bin / pv4 - это скрипт, который, по-видимому, каким-то образом открывает ваше приложение, которое само связано со значком. Вероятно, javascript - Perforce.com/product/components/perforce-visual-client
Дуг
1
@doug Нет, это приложение с окном и «обычным» .desktopфайлом (включая значок набора) /usr/share/applications(я установил его, чтобы узнать).
Джейкоб Влейм

Ответы:

10

Если приложение создает второй значок, не являющийся универсальным

Если приложение генерирует второй значок в модуле запуска Unity, отличный от серого, общего значка, уже должен быть (другой) существующий модуль запуска, вызывающий p4vего основную команду:

Файл приложения .desktopпо определению имеет команду «main» в первой строке, начиная с Exec=. Это команда, запускаемая при нажатии значка в панели Unityзапуска ( ). Кроме того, .desktopфайл может иметь один или несколько разделов ярлыков, доступных при щелчке правой кнопкой мыши по значку представления в Unityпанели запуска.

Несколько файлов .desktop, вызывающих одно и то же приложение в своей основной команде

Симптомы, которые вы испытываете, могут возникать, когда несколько .desktopфайлов в одном /usr/share/applicationsили ~/.local/share/applicationsимеют одинаковую ("main-") команду в первой Exec= строке, но файлы имеют разные имена.

P4v по умолчанию должен установить (и, вероятно, установил) .desktopфайл с именем p4vasp.desktopв /usr/share/applications.

Как исправить
Ваша проблема должна быть решена, если вы удалите свой собственный (возможно, локальный) .desktopфайл, затем запустите p4vиз Dash и прикрепите его к программе запуска.

Что делать, если вы хотите настроить существующий модуль запуска?

Если вы хотите изменить .desktopповедение файла или, например, его значок:

  • скопировать файл из /usr/share/applicationsв~/.local/share/applications
  • не меняйте имя файла
  • откройте файл gedit(перетащите его через открытое geditокно) и внесите необходимые изменения
  • Выйдите из системы и вернитесь обратно, локальная версия .desktopфайла будет отменять глобальную.

Чтобы вернуться, просто удалите локальный, выйдите и снова войдите.

Связанные с этим постом

Якоб Влейм
источник
Этот ответ так же хорош в Ubuntu 18.04 с GNOME 3
Тодд
0

Решение, которое работало для меня в Ubuntu 18.04, когда я пытался добавить AppImage в избранное. Это решение кратко из https://beamtic.com/duplicated-icons-in-launcher

  1. Получите класс окна вашей программы с двойным значком, выполнив

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

  3. Добавьте следующую строку в .desktopфайл (у меня был мой .desktopфайл ~/.local/share/applications) и замените [Name_of_Window_Class]выводом команды xprop:

    StartupWMClass=[Name_of_Window_Class]
    
  4. Запустите / Перезапустите приложение, готово!

Axelfoley
источник