Поиск по сайту:

Исправить отсутствующий значок приложения в левой док-станции/панели в Ubuntu 24.04

Есть окна приложений, значки которых не отображаются на левой (или нижней) панели закрепления? Это руководство может помочь решить проблему в Ubuntu 24.04.

Значки приложений, которые вы видите в средстве запуска системных приложений, обрабатываются файлами .desktop. Файл конфигурации такого типа обычно включает строку Icon=app-icon-name, поэтому Ubuntu и многие другие Linux могут находить и отображать изображение значка приложения в меню «Пуск» (или меню приложения).

Если файл значка отсутствует как в системном каталоге значков (обычно /usr/share/icons и /usr/share/pixmaps), так и в локальной папке значков пользователя ( .loca/share/icons), то вместо этого отображается универсальный значок исполняемого файла (значок шестеренки на сером квадратном фоне, см. изображение выше).

В Ubuntu 24.04 приложение (в моем случае Transmission) может отображать значок своего приложения в сетке приложения и результатах поиска при попытке его запуска. Это означает, что файл значка приложения правильно установлен в вашей системе. Однако после запуска окна приложения в Ubuntu Dock вместо этого отображается значок шестеренки.

Если закрепить приложение в доке, а затем запустить его, то для него будет 2 значка. Один правильно отображает значок приложения, другой отображает значок шестеренки, что означает, что файл значка не найден.

Это связано с тем, что окно, созданное приложением, не связано с ярлыком, используемым для запуска приложения. В Ubuntu 22.04 и более ранних версиях на доке будут дублироваться значки приложений. Однако в Ubuntu 24.04 вместо этого используется значок исполняемого файла (значок шестеренки).

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

Шаг 1. Узнайте имя класса окна приложения.

Сначала вам нужно запустить окно приложения. Затем нажмите Alt + F2, чтобы открыть диалоговое окно «Выполнить команду». Когда откроется диалоговое окно, введите lg и нажмите Enter.

В этом окне нажмите кнопку Windows и найдите имя класса для целевого окна приложения. В моем случае это:

  • Передача: com.transmissionbt.transmission_66310_4225300
  • VirtualBox: Машина Virtualbox

Для рабочих столов, отличных от GNOME, с сеансом Xorg, откройте терминал (Ctrl+Alt+T) и выполните команду xprop WM_CLASS. Курсор мыши превратится в перекрестие, затем просто щелкните окно приложения, и имя его класса будет выведено на вывод терминала.

Шаг 2. Добавьте строку StartupWMClass.

Получив имя класса, отредактируйте соответствующий файл .desktop и добавьте строку StarupVMClass.

Файл .desktop обычно находится в следующих каталогах:

  • /usr/share/applications для приложений Deb и Snap.
  • .local/share/applications для пользователя, созданного вручную или автоматически созданного приложения.
  • /var/lib/flatpak/exports/share/applications/ для приложений Flatpak.

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

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

sudo gnome-text-editor /usr/share/applications/transmission-gtk.desktop

И добавьте строку StartupWMClass=com.transmissionbt.transmission_66310_4225300 в разделе «[запись рабочего стола]». После сохранения файла просто перезапустите Transmission, и значок наконец отобразится правильно.

Аналогично отредактируйте файл org.gnome.TextEditor.desktop в разделе /usr/share/applications/ и добавьте StartupWMClass=gnome-text-editor. текстовый редактор, запускаемый из терминала, будет правильно отображать значок приложения на доке.

Для Virtualbox в системном пакете НЕТ файла .desktop для создания окон виртуальных машин, поскольку они запускаются из окна VM Manager. Вам необходимо создать его вручную, выполнив команду:

gnome-text-editor ~/.local/share/applications/virtualvm.desktop

Затем напишите следующие строки и сохраните их. Вы можете изменить Icon=virtualbox на любой файл значка по вашему желанию.

[Desktop Entry]
Version=1.0
Name=Oracle VM VirtualBox
GenericName=Virtual Machine
Type=Application
Exec=VirtualBoxVM %U
TryExec=VirtualBoxVM
Keywords=virtualization;
Icon=virtualbox
Categories=Emulator;System;
Actions=Manager;
StartupWMClass=VirtualBox Machine
Comment=Run the virtual machine
NoDisplay=true

[Desktop Action Manager]
Exec=VirtualBoxVM
Name=Run the Virtual Machine

Статьи по данной тематике