Remover o emblema de notificação da estação para aplicativos que não estão na central de notificações

12

Para aplicativos incômodos que definem um ícone de notificação de selo, mas que não estão no centro de Notificações de configurações, existe uma maneira de bloquear o ícone do selo?


O Spotify, por exemplo, cria uma notificação para cada evento insignificante, sem nenhuma maneira de bloqueá-lo no aplicativo.

Pessoalmente, não entendo como os aplicativos têm permissão para exibir um ícone de selo sem estar na Central de notificações.


Exemplo:

insira a descrição da imagem aqui

Jon Cox
fonte
Os aplicativos marcando seus ícones, como na captura de tela, precederam muito a inclusão do Notification Center no OS X. Eles não precisam usar a funcionalidade de notificação para fazer isso.
tubedogg
Além disso, esta é a melhor solução que eu encontrei ainda: esconder correndo status de aplicativo durante a execução (que esconde o distintivo também): apple.stackexchange.com/questions/68915/...
y3sh

Respostas:

27

Eu tenho uma solução que eu pude fazer engenharia reversa. Eu testei na minha máquina, executando o Yosemite 10.10.4 (14E46). Se você encontrar o ID do pacote configurável (no arquivo Info.plist do pacote configurável do aplicativo), poderá usar esse script para forçar o aplicativo a aparecer no painel de preferências de notificações.

# "Usernoted" seems to be the "user notifications daemon", so get it's PID.
pid=$(ps aux | grep -i [u]sernoted | awk '{print $2}')

# Find the sqlite3 database that this program has open. It's in a "private" folder (app sandboxing).
db="$(lsof -p $pid | grep com.apple.notificationcenter/db/db\$ | awk '{print $9}')"

# I got the bundleid from Spotify.app/Contents/Info.plist
bundleid="com.spotify.client"

# I use 0 as the flags because you can change all the settings in System Preferences
# 5 seems to be the default for show_count
# Grab the next-highest sort order
sql="INSERT INTO app_info (bundleid, flags, show_count, sort_order) VALUES ( '$bundleid', 0, 5, (SELECT MAX(sort_order) + 1 FROM app_info) );"

# Run the command
sqlite3 "$db" "$sql"

# Restart usernoted to make the changes take effect
killall usernoted

Nesse ponto, você pode abrir Preferências do Sistema -> Notificações e encontrará o aplicativo que você acabou de adicionar no final da lista. Você pode ativar / desativar a marcação do ícone nesta página.

Ryan Patterson
fonte
2
Solução muito inteligente, obrigado Ryan! (Embora eu tenha agora 'fixo' que, largando Spotify e mudar para a Apple Music.)
Jon Cox
1
FINALMENTE, uma solução para essa niggle horrível. Obrigado * 1000.
Josh Harrison
1
Você é o cara.
Udi
1
Eu só quero confirmar que esta solução ainda funciona!
23
1
Precisa substituir grep com.apple.notificationcenter/db/db\$com a grep 'com.apple.notificationcenter/db2/db$'partir do Mac OS 10.14.1 (possivelmente antes, eu vejo que isso já tem mais de 3 anos) #
Alex S
0

Para aquelas pessoas que são mac noobs como eu, crie e execute o script acima:

1. Abra o TextEdit,
2. Coloque o editor no modo de texto sem formatação - Formatar> Criar texto sem formatação.
(Se você pular esta etapa, ela não será salva como um script.)
3. Cole o script acima na janela do TextEdit
4. Salve o arquivo como um script - Arquivo> Salvar como no TextEdit. Digite seu nome de arquivo seguido pela extensão “.sh” e salve o documento na área de trabalho.
5. Abra o aplicativo Terminal.
6. Navegue até a área de trabalho em Terminal - Digite (em seguida, pressione enter):

cd Desktop
7. Defina as permissões para o arquivo que você acabou de criar para poder executá-lo - Digite Terminal (em seguida, pressione en):
sudo chmod 700 file.sh
(Substitua "file.sh" pelo nome do seu script.)
8. Execute o arquivo - Digite Terminal:
./file.sh
(Novamente, substitua "file.sh" pelo nome do seu script.)
9. Abra Notificações nas Preferências do sistema. Você deve encontrar o aplicativo Spotify e desativar as notificações.

Origem para a criação de um script: Terminal 101: Automatize o Terminal com Scripts Bash

Ch333
fonte
1
Bom tutorial sobre como criar um shell script executável, mas para a solução votada, você não precisa de um script bash. Basta abrir o terminal e colar nos comandos. Ignore as linhas que começam com um #, porque esse é um comentário no bash.
y3sh 27/05