Как удалить повторяющиеся значки для & ldquo; запущен & rdquo; java-программы в пусковой установке?

При запуске 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]=
1
задан 6 August 2012 в 00:19

7 ответов

Для Intellij Idea 11 под Ubuntu 11.10 необходимо добавить в файл .desktop этой идеи следующую строку:

StartupWMClass=jetbrains-idea
8
ответ дан 25 May 2018 в 21:58

Я смог исправить это для SQLDeveloper, который представляет собой java-программу:

Используя xprop (и затем щелкнув по окну SQLDeveloper), я нашел следующую строку вывода:

[ f1]

Основываясь на комментариях, найденных выше, и в https://bugs.launchpad.net/unity/+bug/757991, я добавил следующую строку в мой локальный файл sqldeveloper.desktop:

StartupWMClass=oracle-ide-boot-Launcher
3
ответ дан 25 May 2018 в 21:58
  • 1
    В SQLDeveloper версии 4 WM_CLASS изменен на «sun-awt-X11-XFramePeer», «oracle-ide-osgi-boot-OracleIdeLauncher», поэтому параметр .desktop должен быть изменен на: StartupWMClass = oracle-ide-osgi-boot- OracleIdeLauncher – Pisu 23 June 2014 в 12:06

Я зарегистрировал исправление для 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 в первый раз.

Вкладка также значительно улучшилось.

enter image description here

1
ответ дан 25 May 2018 в 21:58

IntelliJ IDEA запускается скриптом ($ IDEA_HOME / bin / idea.sh). Когда щелкнет его пусковая установка, выполняется сценарий, который запускает исполняемый файл java и сразу же выходит. Unity отмечает, что приложение, которое вы начали (сценарий), уже вышло - вот почему на первом значке IDEA нет индикатора. Тем не менее, на данный момент есть приложение (из исполняемого файла, запускаемого программой запуска), и поэтому отображается второй значок IDEA.

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

0
ответ дан 25 May 2018 в 21:58

Для CrashPlan вы можете попробовать переместить файл приложения CrashPlan.desktop в / usr / share / applications.

sudo mv ~/Desktop/CrashPlan.desktop /usr/share/applications/.

Затем попробуйте использовать тире для запуска CrashPlan.

Возможно, вы сможете сделать что-то подобное с IntelliJ IDEA, но поскольку он запускает скрипт, я не уверен, что он будет работать правильно.

0
ответ дан 25 May 2018 в 21:58
  • 1
    У меня есть файлы .desktop в ~ / .local / share / applications и нет никаких проблем с их блокировкой в ​​пусковую установку. Я предполагаю, что вы имеете в виду доступный для запуска с Launcher, но еще не запущенный, когда вы говорите, что заблокирован ... – Tim 5 May 2011 в 16:23
  • 2
    Гектометр Я не могу разместить их в пусковой установке. Я сделал мой с alacarte (редактор меню). Может быть, это потому, что у меня есть ~ / .local, связанный где-то в другом месте ... Показывают ли ваши приложения отображаемый треугольник (слева) и активный треугольник (правая сторона)? – idbrii 5 May 2011 в 20:38
  • 3
    Для "запущенного" версия значка, да. Вы можете увидеть бегущий треугольник в первом снимке. Я сделал еще несколько исследований и думаю, что у меня есть рабочий путь для дубликатов значков. Выведет ответ здесь. – Tim 6 May 2011 в 06:25
  • 4
    @ 451F избил меня до ответа, я добавил немного к его ответу в своих комментариях о том, как заставить IntelliJ работать лучше. – Tim 6 May 2011 в 07:01

Ни один из других ответов не работал для меня, но в итоге я нашел еще более простое решение.

Откройте Intellij-Idea, а на верхней панели найдите раскрывающееся меню инструментов. Затем выберите кнопку «Создать рабочий стол». Он создаст правильно действующую запись .desktop в вашей папке .local/share/applications, которая должна распознаваться любой рабочей средой, которую вы используете. Он не создает дубликат значка, и вы даже можете изменить значок, если хотите.

К сожалению, использование аргумента nosplash возвращает проблему с повторяющимся значком, поэтому я не уверен, как это исправить.

0
ответ дан 25 May 2018 в 21:58

После установки IntelliJ IDEA 2017.2.5 под Ubuntu 17.04 (с иконками Numix) мне пришлось изменить строку StartupWMClass=jetbrains-idea на StartupWMClass=jetbrains-idea-ce в файле .desktop программы, чтобы значок дубликата исчез.

[d1 ] Я предполагаю, что «ce» означает Community Edition, который у меня есть, поэтому я не знаю, почему значение этого свойства в файле .desktop изначально не имело суффикса «ce».

0
ответ дан 25 May 2018 в 21:58

Другие вопросы по тегам:

Похожие вопросы: