Пользовательские профили Firefox с разными WM_CLASS и иконками

Вопрос или проблема

У меня есть разные профили Firefox, которые я запускаю в режиме киоска, чтобы создать маленькие приложения для Youtube и Netflix. Я видел этот вопрос несколько раз, но, попробовав другие ответы, у меня все равно не получилось.

Я использую файл youtube.desktop, который запускает Firefox с пользовательским WM_CLASS:

[Desktop Entry]
Name=Youtube
Comment=Launch Youtube in kiosk mode
Type=Application

Exec=firefox --no-remote --new-instance -P "kiosk-youtube" --kiosk --class Firefox-kiosk-youtube https://youtube.com
Terminal=false

Icon=/home/user/.local/share/icons/kiosk-firefox-icons/youtube.png
StartupWMClass=Firefox-kiosk-youtube

Разные профили Firefox по-прежнему группируются вместе и используют стандартную иконку Firefox.
Я использую GNOME, Ubuntu.

Спасибо

Обновление (2023-07-07): Удаление опции CLI -no-remote избегает ошибки Firefox уже запущен, но не отвечает.

Для меня (использую Wayland и Gnome 43 на Fedora 37) решением было использовать --name Firefox-kiosk-youtube вместо --class Firefox-kiosk-youtube. Оба эти аргумента командной строки определены GTK, и Firefox их не документирует.

Чтобы GNOME Shell показывал красивую иконку и содержание Name вместо WM_CLASS (или wmclass) напрямую, также нужно установить StartupWMClass на то же значение (например, Firefox-kiosk-youtube).

Вот мой полный файл firefox-personal.desktop:

[Desktop Entry]
Version=1.0
Name=Firefox (Personal)
GenericName=Web Browser
Comment=Browse the Web
Exec=firefox -P personal --name FirefoxPersonal %u
Icon=firefox
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
# NOTE: Если это значение не равно аргументу опции --name,
# то GNOME Shell не покажет красивую иконку Firefox и текст
# "Firefox (Personal)", который видит пользователь.
StartupWMClass=FirefoxPersonal
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;profile-manager-window;

X-Desktop-File-Install-Version=0.26

[Desktop Action new-window]
Name=Open a New Window
Exec=firefox -P personal --name FirefoxPersonal --new-window %u

[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=firefox -P personal --name FirefoxPersonal --private-window %u

Для проверки значения WM_CLASS можно использовать встроенный инструмент GNOME Shell Looking Glass.

Нажмите Alt + F2, введите lg и нажмите Enter. В верхнем правом панели выберите “Windows”.

WM_CLASS будет показан под ключом wmclass.

Например:
enter image description here

.

Ответ или решение

Создание нескольких профилей в Firefox с различными параметрами WM_CLASS и индивидуальными значками — задача, требующая тщательного подхода, особенно если вы хотите запускать их в режиме киоска для таких приложений, как YouTube и Netflix.

Контекст задачи

Вы работаете в среде GNOME на Ubuntu и используете различные профили Firefox для запуска веб-приложений в режиме киоска. Проблема заключается в том, что несмотря на попытки изменить WM_CLASS для каждого профиля, GNOME всё равно группирует их и отображает стандартный значок Firefox.

Решение проблемы

1. Изменение параметров запуска

Для решения данной проблемы важно правильно указать параметры в .desktop файле и использовать правильные параметры командной строки:

  1. Параметр Exec: Вместо --class, используйте --name, как предложено в вашем обновлении, поскольку данный параметр может быть более подходящим для GNOME и Wayland.

    Exec=firefox --new-instance -P "kiosk-youtube" --kiosk --name Firefox-kiosk-youtube https://youtube.com
  2. StartupWMClass: Убедитесь, что параметр StartupWMClass соответствует значению, указанному в --name. Это позволит GNOME Shell правильно ассоциировать окно с записью в меню приложений.

    StartupWMClass=Firefox-kiosk-youtube

2. Настройки .desktop файла

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

[Desktop Entry]
Name=YouTube
Comment=Launch YouTube in kiosk mode
Type=Application
Exec=firefox --new-instance -P "kiosk-youtube" --kiosk --name FirefoxKioskYouTube https://youtube.com
Icon=/home/user/.local/share/icons/kiosk-firefox-icons/youtube.png
Terminal=false
StartupWMClass=FirefoxKioskYouTube

3. Проверка WM_CLASS с помощью встроенных инструментов GNOME

Вы можете проверить, правильно ли установлены WM_CLASS, используя инструмент Looking Glass:

  • Нажмите Alt + F2, введите lg и нажмите Enter.
  • Выберите вкладку "Windows" и найдите вашу запись. Значение WM_CLASS появится под ключом wmclass.

Заключение

Эти изменения должны помочь вам достичь желаемого результата — раздельного отображения окон в режиме киоска с индивидуальными значками и названиями. Применение параметра --name вместо --class, а также точная настройка StartupWMClass обеспечит корректное отображение ваших профилей в интерфейсе GNOME. Если все изменения были корректно внесены, ваши профили не будут группироваться вместе, и каждый из них будет использовать индивидуальный значок, что улучшит ваш пользовательский опыт.

Оцените материал
Добавить комментарий

Капча загружается...