Eliminar la insignia de notificación de acoplamiento para aplicaciones que no están en el centro de notificaciones

12

Para las aplicaciones molestas que establecen un ícono de notificación de insignia, pero que no están en el Centro de notificaciones de configuración, ¿hay alguna forma de bloquear el ícono de insignia?


Spotify, por ejemplo, crea una notificación para cada evento insignificante, sin forma de bloquearlo en la aplicación.

Personalmente, no entiendo cómo las aplicaciones pueden mostrar un icono de insignia sin estar en el centro de Notificaciones en primer lugar.


Ejemplo:

ingrese la descripción de la imagen aquí

Jon Cox
fuente
Las aplicaciones que etiquetan sus íconos, como en su captura de pantalla, precedieron por mucho tiempo la inclusión de Notification Center en OS X. No necesitan usar la funcionalidad de notificación para hacerlo.
tubedogg
Además, esta es la mejor solución que he encontrado hasta ahora: ocultar el estado de la aplicación en ejecución mientras se ejecuta (que también oculta la insignia): apple.stackexchange.com/questions/68915/…
y3sh

Respuestas:

27

Tengo una solución que pude hacer ingeniería inversa. Lo probé en mi máquina, ejecutando Yosemite 10.10.4 (14E46). Si puede encontrar la ID del paquete (en el archivo Info.plist para el paquete de la aplicación), puede usar este script para forzar que la aplicación aparezca en el panel de preferencias de notificaciones.

# "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

En este punto, puede abrir Preferencias del sistema -> Notificaciones, y encontrará la aplicación que acaba de agregar al final de la lista. Puede habilitar / deshabilitar la identificación del icono desde esta página.

Ryan Patterson
fuente
2
Solución muy inteligente, gracias Ryan! (Aunque ahora lo 'solucioné' soltando Spotify y cambiando a Apple Music.)
Jon Cox
1
Finalmente, una solución para esta horrible queja. Gracias * 1000.
Josh Harrison
1
Eres el hombre.
Udi
1
Solo quiero confirmar que esta solución aún funciona.
23 de
1
Necesito reemplazarlo grep com.apple.notificationcenter/db/db\$a grep 'com.apple.notificationcenter/db2/db$'partir de Mac OS 10.14.1 (posiblemente antes, veo que ya tiene más de 3 años)
Alex S
0

Para aquellas personas que son novatos de Mac como yo, para crear y ejecutar el script anterior:

1. Abra TextEdit,
2. Coloque el editor en modo Texto sin formato - Formato> Crear texto sin formato.
(Si omite este paso, no le permitirá guardarlo como secuencia de comandos).
3. Pegue la secuencia de comandos anterior en la ventana TextEdit
4. Guarde el archivo como secuencia de comandos - Archivo> Guardar como en TextEdit. Ingrese su nombre de archivo seguido de la extensión de archivo ".sh" y luego guarde el documento en el escritorio.
5. Abra la aplicación Terminal
6. Navegue hasta el escritorio en Terminal - Escriba (luego presione Intro):

escritorio de cd
7. Establezca los permisos para el archivo que acaba de crear para poder ejecutarlo. Escriba Terminal (luego presione en):
sudo chmod 700 file.sh
(Reemplace "file.sh" con el nombre de su script.)
8. Ejecute el archivo - Escriba Terminal:
./file.sh
(Nuevamente, reemplace "file.sh" con el nombre de su script).
9. Abra Notificaciones en Preferencias del Sistema. Debería poder encontrar la aplicación Spotify y desactivar las notificaciones.

Fuente para crear una secuencia de comandos: Terminal 101: Automatice la Terminal con secuencias de comandos Bash

Ch333
fuente
1
Buen tutorial sobre cómo crear un script de shell ejecutable, pero para la solución votada no necesita un script bash. Simplemente abra la terminal y pegue los comandos. Omita las líneas que comienzan con un #, porque ese es un comentario en bash.
y3sh