В Ubuntu 13.04 отсутствует возможность внесения в белый список (и, следовательно, в черный список) определенных приложений от создания иконки в трее. С тех пор значки на панели задач Java-приложений и значки Wine жестко закодированы и всегда видны.
Хотя есть некоторые ppas, которые предоставляют патч единства, возвращая systray.whitelist (хотя и не для 14.04), я хотел бы знать, есть ли другие способы скрыть иконки в трее java-приложений (например, JDownloader)
Я знаю, что есть способ сделать это для qt-приложений, реализуя профили apparmor, которые запрещают доступ на чтение к пакету sni-qt (например, для Skype или Spotify).
Есть ли способ реализовать профили apparmor или нечто подобное для приложений Java и / или приложений Wine?
Благодарность
Ответы:
Для приложений Java:
На самом деле для случая JDownloader, это модульная конструкция. Значок в трее поставляется как плагин, который можно отключить из:
JDownloader → Дополнения → Менеджер дополнений → Расширения → Снимите флажок Активировать для JD Light Tray
Для приложений Java в общем случае можно использовать диспетчер безопасности Java, написав собственные правила политики.
Создать
java.policy
файл,~/.jdownloader
содержащий:Измените
jdownloader
сценарий запуска, чтобы использовать пользовательскую политикуДобавьте:
-Djava.security.manager -Djava.security.policy=java.policy
к вызову команды Java:Это минимальные правила, которые позволили мне запустить jdownloader. Вам может понадобиться добавить больше разрешений. Потому что нет
deny
варианта, вы должны написать все необходимыеgrant
правила.Ссылки:
java.awt
: Класс SystemTrayjava.awt
: Класс AWTPermissionjava.security
: Класс BasicPermissionСм. Прямые известные подклассы, если вы хотите написать общий шаблон, который предоставляет
AllPermission
кромеaccessSystemTray
. Таким образом, вы можете использовать его для всех остальных приложений Java.Кстати, попробуйте прокомментировать одно из правил, добавив
//
в начало строки; Таким образом, вы можете увидеть, как выглядит ошибка отказа в разрешениях. Он говорит вам, какое разрешение вы должны добавить. Также обратите внимание, что я использовал много-
и*
пытаюсь расширить правила, так как я ищу быстрое решение (по умолчанию было вAllPermission
любом случае), и я не собираюсь сажать приложение в тюрьму.Вот шаблон для начала, пытающийся предоставить все возможные разрешения:
Примечание :
Java Policy Tools - это инструмент с графическим интерфейсом для редактирования файлов политики. Это облегчает поиск всех доступных опций из выпадающего списка. Он должен быть уже установлен с пакетом Java.
источник
Хотя ответ Sneetshers идеален, я нашел более простое (и очевидное) решение. Этот подход работает с JDownloader, но также должен работать со всеми другими программами Java.
Просто удалите логотип,
rm ~/.jdownloader/jd/img/logo/jd_logo_128_128.png
а затем создайте неверный значок PNG сtouch ~/.jdownloader/jd/img/logo/jd_logo_128_128.png
Используя этот подход, все еще можно использовать плагин TrayIcon (полезно для сворачивания в трей) без уродливой иконки Java.
источник
Поскольку я не вижу очевидных лучших решений, возможно, это поможет:
Вы можете избавиться от лотка в целом!
xfce4-panel
такие вещи)Если вы сейчас пропустите функции на основе лотка, большинство из них должны быть заменяемы по отдельности, например, скрипт, отображающий уведомления на рабочем столе о некоторых событиях.
источник
Если вы хотите, чтобы все приложения, использующие значок в трее, могли использовать его в Ubuntu 14.04, вы можете использовать PPA, который поставляется с исправленным Unity, чтобы повторно включить белый список systray. Для этого откройте терминал и выполните следующие команды:
Затем перезапустите Unity, нажав ALT + F2 и введя «Unity» или выйдя из системы. PPA теперь автоматически вносит в белый список все приложения, поэтому нет необходимости вручную вносить в белый список отдельные приложения, чтобы иметь возможность использовать systray.
Отмена изменений
Если вы хотите отменить изменения и вернуться к пакетам Unity по умолчанию из репозиториев Ubuntu, используйте приведенные ниже команды для очистки PPA-списка Unity systray:
С http://www.webupd8.org/2013/05/how-to-get-systray-whitelist-back-in.html
источник