Com o Ubuntu 13.04, a possibilidade de colocar na lista de permissões (e consequentemente na lista negra) certos aplicativos de criar um ícone de bandeja desapareceu. Desde então, os ícones da bandeja dos aplicativos Java e do Wine são codificados e sempre visíveis.
Embora existam certos ppas, que fornecem um patch de unidade devolvendo o systray.whitelist (embora ainda não seja para a versão 14.04), gostaria de saber se existem outras maneiras de ocultar os ícones da bandeja de aplicativos java (por exemplo, JDownloader)
Eu sei que existe uma maneira de fazer isso para aplicativos qt implementando o apparmor-profiles que negam o acesso de leitura ao pacote sni-qt (por exemplo, para Skype ou Spotify)
Existe uma maneira de implementar perfis apparmor ou algo semelhante para aplicativos Java e / ou aplicativos Wine?
obrigado
Respostas:
Para aplicativos Java:
Na verdade, no caso do JDownloader, é um design modular. O ícone da bandeja é um plug-in que pode ser desativado em:
JDownloader → Complementos → Gerenciador de complementos → Extensões → Desmarque a caixa Ativar da bandeja de luz JD
Para o caso geral de aplicativos Java, é possível usar o Java Security Manager escrevendo regras de política customizadas.
Criar
java.policy
arquivo~/.jdownloader
contém:Modifique
jdownloader
o script de inicialização para usar a política personalizadaAdicione:
-Djava.security.manager -Djava.security.policy=java.policy
à chamada de comando java:Estas são as regras mínimas que me permitiram iniciar o jdownloader. Pode ser necessário adicionar mais permissões. Como não há
deny
opção, você precisa escrever todas asgrant
regras necessárias .Referências:
java.awt
: Classe SystemTrayjava.awt
: Classe AWTPermissionjava.security
: Classe BasicPermissionConsulte Subclasses conhecidas diretas, se desejar escrever um modelo geral que conceda
AllPermission
exceçãoaccessSystemTray
. Então você pode usá-lo para todos os aplicativos java restantes.Entre, tente comentar uma das regras adicionando
//
ao início da linha; Assim, você pode ver como é o erro das permissões negadas. Ele informa qual permissão você deve adicionar. Observe também que eu usei muitos-
e*
estou tentando estender regras, pois estou procurando uma solução rápida (o padrão era oAllPermission
mesmo) e não estou procurando prender o aplicativo.Aqui está um modelo para começar, tentando conceder todas as permissões possíveis:
Nota :
O Java Policy Tools é uma ferramenta da GUI para editar arquivos de políticas. Torna mais fácil descobrir todas as opções disponíveis na caixa suspensa. Ele já deve estar instalado com o pacote Java.
fonte
Embora a resposta dos Sneetshers seja perfeita, descobri uma solução mais simples (e óbvia). Essa abordagem funciona com o JDownloader, mas também deve funcionar com todos os outros programas Java.
Basta remover o logotipo
rm ~/.jdownloader/jd/img/logo/jd_logo_128_128.png
e depois criar um ícone png inválido comtouch ~/.jdownloader/jd/img/logo/jd_logo_128_128.png
Usando essa abordagem, ainda é possível usar o plug-in TrayIcon (útil para minimizar a bandeja) sem o ícone feio java
fonte
Como não vejo soluções melhores óbvias, é possível que isso ajude:
Você pode se livrar da bandeja completamente!
xfce4-panel
desse tipo de coisa)Se você perder os recursos baseados em bandeja agora, a maioria deve ser substituída caso a caso de alguma forma, como um script mostrando notificações da área de trabalho em alguns eventos.
fonte
Se você deseja que todos os aplicativos que usam um ícone de bandeja possam utilizá-lo no Ubuntu 14.04, use um PPA que acompanha o Unity corrigido para reativar a lista de permissões do systray. Para fazer isso, abra um terminal e execute os seguintes comandos:
Em seguida, reinicie o Unity pressionando ALT + F2 e digitando "unity" ou fazendo logout. O PPA agora lista automaticamente todos os aplicativos automaticamente, de modo que não há necessidade de incluir manualmente aplicativos individuais para poder usar a bandeja.
Revertendo as mudanças
Se você deseja reverter as alterações e voltar aos pacotes padrão do Unity nos repositórios Ubuntu, use os comandos abaixo para limpar o PPA da lista de permissões do sistema Unity:
De http://www.webupd8.org/2013/05/how-to-get-systray-whitelist-back-in.html
fonte