Come visualizzare correttamente le icone nei preferiti di Safari (ovvero le favicon)?

6

Sto usando Safari su macOS Sierra. Ho aggiunto diversi siti di uso comune alla mia sezione dei preferiti, in questo modo:

(cisono10iconeetuttetranne2sonovisualizzatecomel'iconacorrettaecorrettadalsito.Adesempio,l'iconadiWikipediahal'iconaWgrande.Tuttavia,perGoogleDriveeGmail,leiconesonosoloGgrandi,brutti,generici

MipiacerebbecheiduesitidiGooglemostrasserocorrettamenteancheleloroicone.All'iniziopensavochefosseperchétuttie8isiti"correttamente visualizzati" avevano configurato correttamente le loro "Impostazioni Safari" o qualcosa del genere, mentre Google non ci riusciva (anche se questo non sembra troppo plausibile).

Tuttavia, se preferisco andare al menu principale in Safari, fai clic su Segnalibri > Mostra segnalibri, ottengo il seguente:

Stranamente,questotempo,iduesitidiGooglefannohannocorrettamentevisualizzatoleicone,mentresonoinvecetrealtrisiti(fuoridal10)chenonvengonovisualizzati:valeadireWikipedia,AmazoneNewYorkTimes.

Quindisembrachecisianoduesetdiicone,"grande" e "piccolo", e per le icone grandi, Google Drive e Gmail non vengono visualizzati correttamente, mentre gli altri 8 sono, e d'altra parte, per piccole icone, Google Drive e Gmail sono visualizzati correttamente, mentre Wikipedia, Amazon e NYTimes sono non .

In realtà non mi interessa troppo le icone piccole, ma mi piacerebbe davvero che tutte le icone grandi fossero visualizzate correttamente. Come posso farlo?

    
posta xdavidliu 08.08.2017 - 23:33
fonte

3 risposte

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

Da qui: link

Il mio script prende una cartella con le icone di tocco mancanti come unico argomento.

I file devono avere lo stesso nome del segnalibro ad essi associato.

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

ti consente di conservare tutte le favicon mentre svuota il resto della cache di Safari.

Ho migliorato l'essenza:

#!/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
    
risposta data 15.12.2017 - 07:51
fonte
2

Ecco un hack che funziona molto bene (richiede una quantità moderata di semplice manipolazione dell'immagine.) Inoltre, vedi una nota alla fine di questa risposta per non perdere completamente questa correzione e devi rifarla). sembra che il problema è che le icone fornite dai siti web sono state progettate per il segnalibro bar , che ha icone più piccole, e non lo schermo preferiti del safari, che è più grande icone (almeno 144 x 144).

Le icone stesse sono memorizzate in ~ / Library / Safari / Touch Icons Cache / Images /, con nomi molto lunghi (qualcosa come "908F6BBF6DA814ABAF917C4E7BB9E36F.png"). Quando viene aggiunto un nuovo Preferito (ad esempio New York Times, nel caso della domanda originale) e l'icona viene visualizzata correttamente nella schermata Preferiti, nella cartella Cache sopra indicata viene visualizzato un file 144 x 144, e tutto è buono e spiffy . Tuttavia, se, diciamo che Gmail è stato aggiunto, e al posto della bella icona di Gmail appare una grossa e non descrittiva G, allora questo significa un png minuscolo (progettato per un segnalibro bar invece dello schermo preferito) apparso nella cartella Cache. (in alternativa, se in quella cartella non viene visualizzato nemmeno un minuscolo png errato, semplicemente preferito un altro sito "esca" che fa fa apparire un file png, eseguire quanto segue e quindi modificare il nome e l'URL del preferito in seguito).

Quindi per correggere l'icona, crea semplicemente un altro png che abbia la corretta risoluzione 144 x 144 (vedi nota sotto), quindi usa quel png creato per sostituire il piccolo file "errato" nella cartella Cache delle icone Touch, rendendo sicuro di mantenere costante il nome file lungo. Esci da Safari (Comando-Q) e riavvia, e l'icona appare perfettamente, in questo modo:

TienipresentecheGmaileGoogleDrivehannooraleiconecorrette.HodovutofarelastessacosaancheperTheEconomist,datochequelsitononfornivaunafavicon144x144corretta.

Perunmodomoltosemplicedicreareun'icona144x144utilizzandosolol'anteprima,èsufficientescaricareun'immagineadaltarisoluzionedell'icona(Gmail,GoogleDrive)oqualsiasialtracosa,aprireinanteprima,quindistrumenti->regolareledimensionia144larghezza.Oramettidapartequestaimmagineechiamala"immagine A". Si noti che la trasparenza a volte causa problemi alle favicon di safari (ad esempio se una regione di un'immagine è incolore, il colore effettivamente visualizzato in quelle regioni potrebbe essere incoerente). Se ciò accade, possiamo creare uno sfondo bianco. Per fare questo, basta fare il comando-shift-4 e trascinare una porzione rettangolare di qualsiasi porzione bianca dello schermo, quindi prendere lo screenshot risultante e ridimensionarlo a 144 x 144. Infine, prendere "immagine A" di prima, e copiare e incollare su questo spazio bianco. Questo di solito crea un'icona molto carina.

Nota importante: se ti capita di avere la voce di menu "Sviluppatore" (ad esempio nella parte superiore dello schermo, vicino a "Segnalibri" e "Finestra") abilitata nelle preferenze di Safari, assicurati di non selezionare "Cancella cache" , altrimenti cancellerai tutte le icone che hai creato. Inoltre, semplicemente Clearing History fa la stessa cosa. In alternativa, se vuoi veramente cancellare la cronologia o svuotare la cache per avere più spazio sul disco, salva le icone personalizzate che hai creato prima di svuotare; in questo modo puoi rimetterli in un secondo momento senza doverli creare nuovamente.

Le cache possono anche essere cancellate automaticamente a volte, quindi è una buona pratica creare backup di icone.

    
risposta data 09.08.2017 - 05:50
fonte
0

Una soluzione a lungo termine sarebbe contattare l'editore del tuo sito web per aggiungere le icone corrette in modo appropriato.

Ad esempio, possiedo un sito web su Wix, ed è solo questione di aggiungere alcune righe di Codice intestazione con collegamenti all'immagine della mia icona, quindi l'icona del sito sembra funzionare come previsto. Quindi dovrebbe essere facile convincere i tuoi editori preferiti ad aggiungere l'icona.

    
risposta data 17.09.2018 - 12:27
fonte

Leggi altre domande sui tag