При запуске java-программ (например, IntelliJ IDEA и Crashplan) в программе запуска Unity Unity отображаются дубликаты значков (см. изображение). Для IntelliJ я создал файл .desktop, для Crashplan файл .desktop поставляется с приложением. Есть ли что-то, что можно изменить в файлах .desktop (или где-то еще), которые могут помешать этому возникнуть? Я не мог найти отчет об ошибке для самого единства, но такие программы, как Gnome-Do / Docky, имеют отчеты об ошибках и должны были внести внутренние изменения в свои приложения, чтобы предотвратить это.
На этом изображении первый значок - это один из файлов .desktop, а второй значок - после его запуска. Второй значок исчезает при закрытии приложения.
Пользовательский файл IntelliJ .desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/idea/bin/idea128.png
Name[en_US]=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Name=IntelliJ IDEA
Icon=/opt/idea/bin/idea128.png
StartupNotify=true
Crashplan предоставляет файл .desktop
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=CrashPlan
Categories=;
Comment=CrashPlan Desktop UI
Comment[en_CA]=CrashPlan Desktop UI
Exec=/usr/local/crashplan/bin/CrashPlanDesktop
Icon=/usr/local/crashplan/skin/icon_app_64x64.png
Hidden=false
Terminal=false
Type=Application
GenericName[en_CA]=
Для Intellij Idea 11 под Ubuntu 11.10 необходимо добавить в файл .desktop этой идеи следующую строку:
StartupWMClass=jetbrains-idea
Я смог исправить это для SQLDeveloper, который представляет собой java-программу:
Используя xprop (и затем щелкнув по окну SQLDeveloper), я нашел следующую строку вывода:
[ f1]Основываясь на комментариях, найденных выше, и в https://bugs.launchpad.net/unity/+bug/757991, я добавил следующую строку в мой локальный файл sqldeveloper.desktop:
StartupWMClass=oracle-ide-boot-Launcher
Я зарегистрировал исправление для Eclipse 4.x и 3.x здесь.
Это решение для glx-dock aka Cairo-dock, но работает для всех панелей задач, основанных на WM_CLASS.
В случае eclipse запуск также является двухэтапным процессом.
В принципе, вам нужно указать, что Eclipse branding plugin.xml применим к вашей версии Eclipse и модифицирует свойство application name. Когда создаются главные окна Workbench, Jface вызовет SWT Display.setName, и это установит вам WM_CLASS. Если это объявленный WM_CLASS для вашей пусковой установки, то запущенные экземпляры найдут свою док-станцию.
Не забудьте сделать eclipse -clean в первый раз.
Вкладка также значительно улучшилось.
IntelliJ IDEA запускается скриптом ($ IDEA_HOME / bin / idea.sh). Когда щелкнет его пусковая установка, выполняется сценарий, который запускает исполняемый файл java и сразу же выходит. Unity отмечает, что приложение, которое вы начали (сценарий), уже вышло - вот почему на первом значке IDEA нет индикатора. Тем не менее, на данный момент есть приложение (из исполняемого файла, запускаемого программой запуска), и поэтому отображается второй значок IDEA.
Надеюсь, что исправление для этого поведения будет реализовано в ближайшее время - но это не очень просто. Это должно было бы включать поддерживаемые вручную списки связей между окнами и пусковыми установками, с которыми они должны быть связаны.
Для CrashPlan вы можете попробовать переместить файл приложения CrashPlan.desktop в / usr / share / applications.
sudo mv ~/Desktop/CrashPlan.desktop /usr/share/applications/.
Затем попробуйте использовать тире для запуска CrashPlan.
Возможно, вы сможете сделать что-то подобное с IntelliJ IDEA, но поскольку он запускает скрипт, я не уверен, что он будет работать правильно.
Ни один из других ответов не работал для меня, но в итоге я нашел еще более простое решение.
Откройте Intellij-Idea, а на верхней панели найдите раскрывающееся меню инструментов. Затем выберите кнопку «Создать рабочий стол». Он создаст правильно действующую запись .desktop в вашей папке .local/share/applications, которая должна распознаваться любой рабочей средой, которую вы используете. Он не создает дубликат значка, и вы даже можете изменить значок, если хотите.
К сожалению, использование аргумента nosplash возвращает проблему с повторяющимся значком, поэтому я не уверен, как это исправить.
После установки IntelliJ IDEA 2017.2.5 под Ubuntu 17.04 (с иконками Numix) мне пришлось изменить строку StartupWMClass=jetbrains-idea на StartupWMClass=jetbrains-idea-ce в файле .desktop программы, чтобы значок дубликата исчез.
[d1 ] Я предполагаю, что «ce» означает Community Edition, который у меня есть, поэтому я не знаю, почему значение этого свойства в файле .desktop изначально не имело суффикса «ce».