Come posso cambiare l'icona per un particolare tipo di file?


42

Sto cercando di cambiare l'icona per i application/x-hwpfile. Ho aggiunto le icone nei posti giusti e l'ho controllato con assoGiate (dopo aver letto questa discussione ). Mostra che la mia icona desiderata è associata al tipo di file. Tuttavia, Nautilus mostra ancora la vecchia icona. Come posso fare in modo che Nautilus mostri l'icona corretta?



@Rinzwind: grazie. Sfortunatamente, quel collegamento risolve un problema diverso. Si basa sulla modifica delle icone dei singoli file. Voglio cambiare l'icona predefinita per tutti i file di un determinato tipo.
Scott Severance,

Stai usando un tema icona personalizzato? Ciò potrebbe interferire con l'icona che dovrebbe apparire.
RBurgundy,

Sto usando il tema Ambiance di serie. Comunque, non dovrebbe importare, perché per quanto ne so, nessun tema di icone copre questo tipo di file. Ricevo solo l'icona che appare di default quando Nautilus non sa quale altra icona visualizzare. Inoltre, i temi delle icone sono gerarchici, quindi se non è possibile trovare un'icona appropriata nel tema corrente, verrà cercata la gerarchia, che alla fine culmina con il tema bicolore. Le mie icone sono installate in entrambi i temi ubuntu0mono-dark e hicolor.
Scott Severance,

Risposte:


22

Ecco una serie di istruzioni che dovrebbero fornirti un'icona personalizzata per i file hwp.

Apri un terminale:

  • Verifica che il tipo MIME esista: grep 'hwp' /etc/mime.types

    se ottieni un output simile al application/x-hwp hwpsalto salta il passaggio successivo.

  • Crea il tipo MIME sudo -H gedit /etc/mime.typese aggiungi la rigaapplication/x-hwp hwp

  • Aggiungi l'icona (che deve essere chiamata application-x-hwp.svg) :

    sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
    

    (non dimenticare di sostituire PathToIcon)

Ho le informazioni da qui


Grazie per il suggerimento Non ho ancora avuto la possibilità di provarlo a fondo (finora, nessun successo), ma sto assegnando la ricompensa perché gli altri suggerimenti non hanno funzionato e non avrò più la possibilità di lavorarci su prima la taglia scade.
Scott Severance,

Forse dovresti verificare se il tuo tema icona eredita da gnome (la maggior parte dei temi icona lo fanno). Troverai queste informazioni in index.theme situato nella directory del tuo set di icone
danjjl

Devi anche controllare ~/.local. Ad esempio ~/.local/share, che imita la cartella /usr/local/share. L'applicazione installata localmente (vale a dire l'applicazione solo per te, non altri accessi), potrebbe avere le sue proprietà lì. Modifica file simili, ad esempio,~/.local/share/icons/XXXX/XXXX
Robin Hsu,

@danjjl: cosa intendi con (non dimenticare di sostituire PathToIcon)?
JoKalliauer,

1
@JoKalliauer nel comando in cui copiare l'icona /usr/share/... . Mi riferisco a PathToIcon. Questo deve essere sostituito con il percorso dell'icona sul tuo PC. (se pensi che questo possa essere formulato più chiaramente, non esitare a proporre una modifica)
danjjl

14

Il trucco principale è scoprire correttamente dove si trovano le icone reali.
Per determinare che analizziamo le icone HTML. La convenzione di denominazione per le icone è la stessa del tipo MIME, /viene sostituita solo con -e non sono consentite lettere maiuscole. Vale a dire il tipo MIME, diciamo, text/x-changelogavrà l'icona denominata text-x-changelog.svg(o png). Il tipo MIME per HTML è text/html. Quindi la sua icona sarà text-html.*Se eseguiamo il comando

find /usr/share/icons/ -type f | grep 'text-html\.'

otterremo diversi luoghi in cui sono posizionate queste icone:

/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/

Se visitiamo ciascuno di essi con Nautilus vedremo, quella Humanity/cartella contiene le nostre icone correnti, gnome/alcune più vecchie. HighContrast/non ci interessa. Quindi, per cambiare qualche icona, dovremmo sostituire le icone che si trovano nella Humanity/cartella.
Si noti inoltre che le text-html.svgicone che sono scalabili e avrebbero dovuto essere collocate in una scalablesottocartella (che dovrebbe essere logica) vengono invece collocate nelle cartelle per dimensioni diverse, allo stesso modo dei file PNG raster.

Dopo aver sostituito le icone (in tutte le sottocartelle in base alle loro dimensioni) con quelle desiderate, è necessario aggiornare la cache delle icone:

sudo gtk-update-icon-cache /usr/share/icons/Humanity

Questo è tutto.

C'è un altro modo per determinare la precedenza degli schemi di icone: controllare i loro index.themefile. Se guardiamo dentro /usr/share/icons/Humanity/index.theme, vedremo:

Inherits=gnome,hicolor

Ciò significa che le icone da gnomee le hicolorcartelle avranno meno precedenza di quelle di Humanity. Questo è spiegato qui .
Stranamente, Nautilus non obbedisce a queste regole di eredità. Quando ho aggiunto nuovo tipo MIME, ho provato mettendo le sue icone in /usr/share/icons/gnome/, /usr/share/icons/hicolor, ~/.local/share/icons/hicolor, database di aggiornamento icona ogni passo - tutto invano. Queste icone sono state visualizzate correttamente nella assogiateprima scheda, ma mai in Nautilus. Ma quando li ho inseriti in una Humanitycartella e ho aggiornato il database delle icone, sono comparsi subito.

NB Tutto ciò si applica al tema dell'icona predefinito. Se si utilizza un tema di icone personalizzate, è necessario controllare dove si trovano le icone effettive e aggiungere / modificare le icone lì. Anche nelle nuove distribuzioni queste regole di eredità possono cambiare. Quindi dovresti individuare la nuova cartella che contiene le icone effettive (se non lo è Humanitypiù) come spiegato in precedenza.


Devi anche controllare ~/.local. Ad esempio ~/.local/share, che imita la cartella /usr/local/share. L'applicazione installata localmente (vale a dire l'applicazione solo per te, non altri accessi), potrebbe avere le sue proprietà lì. Modifica file simili, ad esempio,~/.local/share/icons/XXXX/XXXX
Robin Hsu,

0

Spero che tu abbia provato a disconnettersi e ad accedere per aggiornare la cache delle icone.

Vedi anche se la tua icona è disponibile nella dimensione corretta (quella che stai utilizzando per visualizzare il tipo di file in nautilus).

Potresti anche perdere la corsa gtk-update-icon-cache.

Prova questo tutorial: http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-Type+(mimetype)+Icons+in+Ubuntu/chcrf

Prova a creare manualmente icon.theme, ecco un esempio che ho dawn:

[Icon Theme]
Name=awn-theme

Directories=scalable

[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable

Il manuale è qui: http://live.gnome.org/GnomeArt/Tutorials/IconThemes


Ho installato un'icona 48x48 e impostato Nautilus al 100%, che utilizza 48x48. Niente da fare. La registrazione di nuovo non fa differenza. La corsa gtk-update-icon-cachenon ha alcun effetto.
Scott Severance,

Ho aggiornato la mia risposta, mi è stato di aiuto?
Chris Hasiński,

Non ho creato manualmente un tema icona, perché non voglio un nuovo tema. Voglio solo che l'icona entri nel tema bicolore, perché questa è la base di tutti i temi dell'icona. Creare un nuovo tema vanificherà il mio scopo.
Scott Severance,

-2

1)

 sudo apt-get install assogiate

segui questo buon tutorial con belle foto

http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html


2)

Se il tipo di file non viene rilevato correttamente o se mostra un tipo di file errato, individuare il tipo di file che identifica i caratteri

ES: rar vai su http://filext.com/file-extension/rar

identificatore "Hex: 52 61 72 21 1A 07 00, ASCII: Rar!"

apri il file in un benedetto o in qualsiasi editor esadecimale e trova l'identificatore e l'offset (dove iniziano le parole chiave)

nel nostro caso il primo bit quindi offset è "0".

Quindi vai su "Editor tipi di file" modifica o crea un nuovo elemento, quindi seleziona modifica e sotto il contenuto del file

seleziona "stringa" dal menu a discesa, inserisci "Rar!" e impostare l'offset "0".

Fatto


3
Come ho notato nella mia domanda originale, Assogiate non funziona.
Scott Severance,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.