С Ubuntu 13.04 не стало возможности добавить в белый список (и черный список consequentely) определенные приложения от создания значка панели задач. С тех пор значки панели задач JAVA-приложений и значков Wine являются hardcoded и всегда видимый.
Хотя существуют определенные ppas, которые обеспечивают патч единицы путем возвращения systray.whitelist (не для 14,04, хотя, все же) я хотел бы знать, существуют ли другие способы скрыть значки панели задач приложений Java (например, JDownloader)
Я знаю, что существует путь при этом к спокойным приложениям путем реализации apparmor-профилей, которые отклоняют доступ для чтения к sni-спокойному пакету (например, для Skype или Spotify)
Существует ли способ реализовать профили apparmor или что-то подобное для Винных приложений и/или 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
за такого рода вещи) , Если Вы пропустили бы основанные на лотке функции теперь, большинство должно быть replacable индивидуальный так или иначе, как документ на получение, показывающий настольные уведомления на некоторых событиях.
Если Вы хотите все приложения, которые используют значок панели задач, чтобы быть в состоянии использовать его в Ubuntu 14.04, можно использовать PPA, который идет с Единицей, исправленной, чтобы повторно включить белый список systray. Чтобы сделать это, откройте терминал и выполните следующие команды:
sudo add-apt-repository ppa:gurqn/systray-trusty
sudo apt-get update
sudo apt-get upgrade
Затем перезапустите Единицу путем нажатия ALT + F2 и ввода "единицы" или выйдя из системы. PPA теперь автоматически добавляет все приложения в белый список, таким образом, нет никакой потребности вручную добавить отдельные приложения в белый список, чтобы быть в состоянии использовать systray.
Возвращение изменения
, Если Вы хотите вернуться изменения и вернуться к пакетам Единицы по умолчанию из репозиториев Ubuntu, используйте команды ниже для чистки Единицы systray PPA белого списка:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:gurqn/systray-trusty
От http://www.webupd8.org/2013/05/how-to-get-systray-whitelist-back-in.html
На самом деле для случая JDownloader, Это - модульная конструкция. Значок панели задач стал плагином, который может быть отключен от:
JDownloader → Дополнения → Дополнительный менеджер → Расширения → поле Uncheck Activate для Легкого Лотка JD
Для общего случая JAVA-приложений возможно использовать менеджера безопасности Java путем записи, что пользовательская политика управляет.
Создать java.policy
файл в ~/.jdownloader
содержит:
grant codeBase "file:/home/user/.jdownloader/-" {
// full access
// permission java.security.AllPermission;
// AWTPermission full or only selected elements from it
// permission java.awt.AWTPermission "*";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
// permission java.awt.AWTPermission "accessSystemTray";
permission java.awt.AWTPermission "createRobot";
permission java.awt.AWTPermission "fullScreenExclusive";
permission java.awt.AWTPermission "listenToAllAWTEvents";
permission java.awt.AWTPermission "readDisplayPixels";
permission java.awt.AWTPermission "replaceKeyboardFocusManager";
permission java.awt.AWTPermission "setAppletStub";
permission java.awt.AWTPermission "setWindowAlwaysOnTop";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.awt.AWTPermission "toolkitModality";
permission java.awt.AWTPermission "watchMousePointer";
// Added by try and learn
permission java.io.FilePermission "/-", "read,write,delete";
permission java.util.PropertyPermission "*", "read,write";
permission java.util.logging.LoggingPermission "control";
permission java.lang.RuntimePermission "*";
permission java.net.NetPermission "*";
permission java.security.SecurityPermission "*";
permission javax.net.ssl.SSLPermission "*";
permission java.net.SocketPermission "*", "connect,resolve";
permission java.lang.reflect.ReflectPermission "*";
};
Изменить jdownloader
сценарий запуска для использования пользовательской политики
sudo nano /usr/bin/jdownloader
Добавьте: -Djava.security.manager -Djava.security.policy=java.policy
к Java управляют вызовом:
exec java ${JAVA_OPTIONS} -Djava.security.manager -Djava.security.policy=java.policy -jar JDownloader.jar $*
Это правила минимума, которые позволили мне запускать jdownloader. Вы, возможно, должны добавить больше полномочий. Поскольку существует нет deny
опция необходимо записать все необходимые grant
правила.
Ссылки:
java.awt
: Класс SystemTrayjava.awt
: Класс AWTPermissionjava.security
: Класс BasicPermission
Посмотрите Прямые Известные Подклассы, если Вы хотите записать общему шаблону то предоставление AllPermission
кроме accessSystemTray
. Таким образом, можно использовать его для всех остающихся приложений Java.
BTW, попытка прокомментировать одно из правил путем добавления //
к началу строки; Таким образом, Вы видите, как ошибка отклоненных полномочий похожа. Это говорит Вам, какое разрешение Вы должны для добавления. Также заметьте, что я использовал многих -
& *
попытка расширить правила, поскольку я ищу быстрое решение (значение по умолчанию было AllPermission
так или иначе), и я не надеюсь заключать в тюрьму приложение.
Вот шаблон для начала, пытаясь дать все возможные разрешения:
grant codeBase "file:/home/user/.jdownloader/-" {
// permission java.security.AllPermission;
// permission java.awt.AWTPermission "*";
permission java.awt.AWTPermission "accessClipboard";
permission java.awt.AWTPermission "accessEventQueue";
// permission java.awt.AWTPermission "accessSystemTray";
permission java.awt.AWTPermission "createRobot";
permission java.awt.AWTPermission "fullScreenExclusive";
permission java.awt.AWTPermission "listenToAllAWTEvents";
permission java.awt.AWTPermission "readDisplayPixels";
permission java.awt.AWTPermission "replaceKeyboardFocusManager";
permission java.awt.AWTPermission "setAppletStub";
permission java.awt.AWTPermission "setWindowAlwaysOnTop";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission java.awt.AWTPermission "toolkitModality";
permission java.awt.AWTPermission "watchMousePointer";
permission javax.sound.sampled.AudioPermission "*";
permission javax.security.auth.AuthPermission "*";
// permission javax.security.auth.kerberos.DelegationPermission "";
permission javax.xml.bind.JAXBPermission "*";
permission java.nio.file.LinkPermission "hard";
permission java.nio.file.LinkPermission "symbolic";
permission java.util.logging.LoggingPermission "control";
// permission java.lang.management.ManagementPermission "*";
permission javax.management.MBeanServerPermission "*";
permission javax.management.MBeanTrustPermission "*";
permission java.net.NetPermission "*";
permission java.util.PropertyPermission "*", "read,write";
permission java.lang.reflect.ReflectPermission "*";
permission java.lang.RuntimePermission "*";
permission java.security.SecurityPermission "*";
permission java.io.SerializablePermission "*";
permission java.sql.SQLPermission "*";
permission javax.net.ssl.SSLPermission "*";
permission javax.management.remote.SubjectDelegationPermission "*";
permission javax.xml.ws.WebServicePermission "*";
// permission "*";
permission java.io.FilePermission "/-", "read,write,execute,delete,readlink";
permission javax.management.MBeanPermission "*", "*";
// permission javax.security.auth.PrivateCredentialPermission "", "read";
permission javax.security.auth.kerberos.ServicePermission "*", "initiate,accept";
permission java.net.SocketPermission "*", "accept,connect,listen,resolve";
permission java.net.URLPermission "*";
};
Примечание:
Инструменты политики Java являются инструментом GUI для редактирования файлов политики. Это делает это, более легкие t узнают все доступные варианты из поля отбрасывания. Это уже должна быть установка с пакетом Java.