¿Cómo mostrar correctamente los iconos en los favoritos de Safari (también conocidos como favicons)?

6

Estoy usando Safari en macOS Sierra. He añadido varios sitios de uso común a mi sección de favoritos, como por ejemplo:

(hay10iconos,ytodosmenos2semuestrancomoeliconocorrectoycorrectodelsitio.Porejemplo,eliconodeWikipediatieneeliconoWgrande.Sinembargo,paraGoogleDriveyGmail,losiconossonsolograndes,feos,genéricosG's

MegustaríaquelosdossitiosdeGoogletambiénmuestrencorrectamentesusiconos.Alprincipio,penséquesedebíaaquelos8sitios"correctamente mostrados" habían configurado correctamente sus "configuraciones de Safari" o algo así, mientras que Google no lo hizo (aunque esto no parece demasiado plausible).

Sin embargo, si en cambio voy al menú superior en Safari, haga clic en Marcadores > Mostrar marcadores, obtengo lo siguiente:

Extrañamente,estavez,losdossitiosdeGoogledohanmostradocorrectamentelosiconos,mientrasqueencambiosontresotrossitios(fueradela10)quenosemuestran:Wikipedia,AmazonyNewYorkTimes.

Parecequehaydosconjuntosdeíconos,"grande" y "pequeño", y para los íconos grandes, Google Drive y Gmail no se muestran correctamente, mientras que los otros 8 sí lo están, y por otro lado, para los iconos pequeños , Google Drive y Gmail se muestran correctamente, mientras que Wikipedia, Amazon y NYTimes son no .

En realidad no me importan demasiado los iconos pequeños, pero me gustaría que todos los iconos grandes se muestren correctamente. ¿Cómo puedo hacer eso?

    
pregunta xdavidliu 08.08.2017 - 23:33

3 respuestas

1
#!/bin/zsh
# Fix Safari Favorites Icons

LSD="Library/Safari"; TIC="Touch Icons Cache"; TAB="cache_settings"; DIR="/$HOME/$LSD/$TIC/"
DBF="$DIR/${${TIC// /}%s*}${${(C)TAB}/_/}.db"; SQL=$(sqlite3 "$DBF" "SELECT host FROM $TAB")
diff <(ls "$DIR/Images") <(for i in "${=SQL}"; do echo ${(U)$(md5 -qs $i)}.png; done | sort)
sqlite3 "$DBF" "UPDATE $TAB SET ${${${(L)TIC// /_}#*_*}/s/_is_in}=1,download_status_flags=1"
for file in "$1"/*.png; do URL="$(plutil -convert xml1 -o - "$HOME/$LSD/Bookmarks.plist" | \
awk -F '[</>]' -v f="${${file##*/}%%.*}" '{if($3~f){for(i=0;i<3;i++)getline;print $5}}')"; \
cp -fv "$file" "$HOME/$LSD/Touch Icons Cache/Images/${(U)$(md5 -q -s $URL)}.png"; done; exit

Desde aquí: enlace

Mi script toma una carpeta con los íconos táctiles faltantes como único argumento.

Los archivos deben tener el mismo nombre que el marcador asociado con ellos.

chflags uappnd ~/Library/Safari/Touch\ Icons\ Cache/Images

te permite mantener todos los favicons mientras que se vacía el resto de la memoria caché de Safari.

He mejorado la esencia:

#!/bin/zsh

# Fix Safari Missing Touch Favicons

HLSD="$HOME/Library/Safari"; SCD="$HLSD/Touch Icons Cache/Images"

typeset -A BMA; BMA=($(plutil -p "$HLSD/Bookmarks.plist" \
| sed -n '/title/{h;n;n;H;x;p'$'\n''}' \
| awk -F'"' '{name=$4; getline; if($0~/\"[a-z]+:\/\//){print name" "$4}}'))

for bmn in ${(k)BMA[@]}; do
cp -v "$1/$bmn.png" "$SCD/${(U)$(md5 -qs ${${${BMA[$bmn]}#*//}%%/*})}.png"; done
    
respondido por el dardo82 15.12.2017 - 07:51
2

Aquí hay un truco que funciona muy bien (aunque se necesita una cantidad moderada de manipulación de imagen simple. Además, vea una nota en la parte inferior de esta respuesta para no perder por completo esta solución y tener que rehacerla). Parece que el problema es que los íconos dados por los sitios web fueron diseñados para la barra de marcadores barra , que tiene íconos más pequeños y no la pantalla de safari favoritos , que tiene una pantalla más grande. iconos (al menos 144 x 144).

Los propios iconos se almacenan en ~ / Library / Safari / Touch Icons Cache / Images /, con nombres muy largos (algo como "908F6BBF6DA814ABAF917C4E7BB9E36F.png"). Cuando se agrega un nuevo Favorito (digamos New York Times, en el caso de la pregunta original), y el ícono se muestra correctamente en la pantalla de Favoritos, entonces aparece un archivo png de 144 x 144 en la carpeta de caché antes mencionada, y todo es bueno y elegante. . Sin embargo, si se agrega Gmail y aparece un gran G feo y no descriptivo en lugar del bonito ícono de Gmail, eso significa un pequeño png (diseñado para una barra de marcadores barra en lugar de la pantalla favorita) Apareció en la carpeta Caché. (alternativamente, si ni siquiera aparece un pequeño png incorrecto en esa carpeta, simplemente elija otro sitio "señuelo" que haga aparecer un archivo png, realice lo siguiente y luego modifique el nombre y la URL de favorito más tarde).

Entonces, para corregir el ícono, simplemente cree otro png que tenga la resolución correcta de 144 x 144 (vea la nota a continuación), luego use ese png creado para reemplazar el pequeño archivo "incorrecto" en la carpeta Caché de los iconos táctiles, haciendo Asegúrese de mantener el nombre de archivo largo constante. Salga de Safari (Comando-Q) y reinicie, y el icono aparecerá perfectamente, como tal:

TengaencuentaqueGmailyGoogleDriveahoratienenlosiconoscorrectos.TambiéntuvequehacerlomismoconTheEconomist,yaqueesesitiotampocoofrecíaunfaviconde144x144adecuado.

Paraobtenerunaformamuysencilladecrearuníconode144x144usandosoloVistaprevia,simplementedescargueunaimagendealtaresolucióndelícono(Gmail,GoogleDrive),oloquesea,abraenvistaprevia,luegopresioneherramientasyajusteeltamañoa144deancho.Ahorapongaestaimagenaunladoyllámela"imagen A". Tenga en cuenta que la transparencia a veces causa problemas a los favicons de safari (por ejemplo, si una región de una imagen es incolora, el color que se muestra en esas regiones puede ser inconsistente). Si esto sucede, podemos hacer un fondo blanco. Para hacer esto, simplemente haga comando-shift-4 y arrastre una porción rectangular de cualquier porción blanca de la pantalla, luego tome la captura de pantalla resultante y redimensione a 144 x 144. Finalmente, tome la "imagen A" de antes, y copie y pegue en este espacio blanco. Esto usualmente crea un ícono muy bonito.

Nota importante: si tiene el elemento de menú "Desarrollador" (por ejemplo, en la parte superior de la pantalla, cerca de "Marcadores" y "Ventana") habilitado en las preferencias de Safari, asegúrese de no seleccionar "Borrar cachés" , o de lo contrario esto eliminará todos los íconos que hiciste también. Además, simplemente Borrar la Historia hace lo mismo. Alternativamente, si realmente desea borrar el historial o borrar la memoria caché para obtener más espacio en el disco, guarde los iconos personalizados que creó antes de borrar; de esa manera, puede volver a colocarlos después sin tener que crearlos nuevamente.

Los cachés también se pueden borrar automáticamente a veces, por lo que es una buena práctica crear copias de seguridad de los iconos.

    
respondido por el xdavidliu 09.08.2017 - 05:50
0

Una solución a largo plazo sería ponerse en contacto con el editor de su sitio web para agregar los iconos correctos de manera adecuada.

Por ejemplo, tengo un sitio web en Wix, y solo es cuestión de agregar algunas líneas de Código de encabezado con enlaces a la imagen de mi ícono, entonces el ícono del sitio parece funcionar como se esperaba. Por lo tanto, debería ser fácil convencer a sus editores favoritos para que agreguen el ícono.

    
respondido por el HuaTham 17.09.2018 - 12:27

Lea otras preguntas en las etiquetas