Как препятствовать тому, чтобы JAVA-приложения создали значок панели задач?

С Ubuntu 13.04 не стало возможности добавить в белый список (и черный список consequentely) определенные приложения от создания значка панели задач. С тех пор значки панели задач JAVA-приложений и значков Wine являются hardcoded и всегда видимый.

Хотя существуют определенные ppas, которые обеспечивают патч единицы путем возвращения systray.whitelist (не для 14,04, хотя, все же) я хотел бы знать, существуют ли другие способы скрыть значки панели задач приложений Java (например, JDownloader)

Я знаю, что существует путь при этом к спокойным приложениям путем реализации apparmor-профилей, которые отклоняют доступ для чтения к sni-спокойному пакету (например, для Skype или Spotify)

Существует ли способ реализовать профили apparmor или что-то подобное для Винных приложений и/или JAVA-приложений?

спасибо

16
задан 11 July 2014 в 12:36

4 ответа

Хотя ответ 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
1
ответ дан 23 November 2019 в 02:37

Поскольку я не вижу очевидных лучших решений, возможно, что это поможет:

Вы могли избавиться от лотка в целом!

  • или отключить его, если возможный
  • или заменяют целую панель некоторым другим, что можно настроить вручную, просто не добавив элемент лотка. (Мне нравится xfce4-panel за такого рода вещи)

, Если Вы пропустили бы основанные на лотке функции теперь, большинство должно быть replacable индивидуальный так или иначе, как документ на получение, показывающий настольные уведомления на некоторых событиях.

0
ответ дан 23 November 2019 в 02:37

Если Вы хотите все приложения, которые используют значок панели задач, чтобы быть в состоянии использовать его в 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

0
ответ дан 23 November 2019 в 02:37

Для приложений Java:

  • На самом деле для случая JDownloader, Это - модульная конструкция. Значок панели задач стал плагином, который может быть отключен от:

    JDownloader → Дополнения → Дополнительный менеджер → Расширения → поле Uncheck Activate для Легкого Лотка JD

  • Для общего случая JAVA-приложений возможно использовать менеджера безопасности Java путем записи, что пользовательская политика управляет.

    1. Создать 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 "*";
      };
      
    2. Изменить 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 правила.

Ссылки:

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.

enter image description here

2
ответ дан 23 November 2019 в 02:37

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

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