¿Cómo cambio el ícono de un tipo de archivo en particular?

42

Estoy tratando de cambiar el ícono de los application/x-hwparchivos. Agregué los íconos a los lugares apropiados y los verifiqué con assoGiate (después de leer este hilo ). Muestra que mi icono deseado está asociado con el tipo de archivo. Sin embargo, Nautilus todavía muestra el viejo ícono. ¿Cómo puedo hacer que Nautilus muestre el icono correcto?

Scott Cesantía
fuente
@Rinzwind: Gracias. Desafortunadamente, ese enlace resuelve un problema diferente. Se basa en cambiar los íconos de archivos individuales. Quiero cambiar el icono predeterminado para todos los archivos de un tipo dado.
Scott Severance
¿Estás utilizando un tema de icono personalizado? Eso podría estar interfiriendo con el ícono que se supone que debe aparecer.
RBurgundy
Estoy usando el tema Stock Ambiance. De todos modos, no debería importar, porque que yo sepa, ningún tema de icono cubre este tipo de archivo. Solo obtengo el ícono que aparece de forma predeterminada cuando Nautilus no sabe qué otro ícono mostrar. Además, los temas de los íconos son jerárquicos, por lo que si no se puede encontrar un ícono apropiado en el tema actual, se buscará en la jerarquía, que finalmente culminará con el tema del hipo. Mis íconos están instalados en los temas ubuntu0mono-dark e hicolor.
Scott Severance

Respuestas:

22

Aquí hay un conjunto de instrucciones que deberían proporcionarle un icono personalizado para los archivos hwp.

Abrir una terminal:

  • Compruebe que el tipo MIME existe: grep 'hwp' /etc/mime.types

    Si obtiene un resultado parecido, application/x-hwp hwpomita el siguiente paso.

  • Cree el tipo MIME sudo -H gedit /etc/mime.typesy agregue la líneaapplication/x-hwp hwp

  • Agregue el ícono (que debe llamarse application-x-hwp.svg) :

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

    (no olvides reemplazar PathToIcon)

Obtuve la información de aquí

danjjl
fuente
Gracias por la sugerencia. Todavía no he tenido la oportunidad de probarlo a fondo (hasta ahora, sin éxito), pero estoy otorgando la recompensa porque las otras sugerencias no han funcionado y no tendré la oportunidad de trabajar en esto antes. La recompensa expira.
Scott Severance
Tal vez debería verificar si su tema de icono hereda de gnome (la mayoría de los temas de icono lo hacen). Encontrará esa información en index.theme ubicado en el directorio de su conjunto de iconos
danjjl
También necesita verificar ~/.local. Por ejemplo ~/.local/share, que imita la carpeta /usr/local/share. Su aplicación instalada localmente (es decir, la aplicación solo para usted, no otros inicios de sesión), puede tener sus propiedades allí. Edite archivos similares, por ejemplo,~/.local/share/icons/XXXX/XXXX
Robin Hsu
@danjjl: ¿Qué quieres decir con (no olvides reemplazar PathToIcon)?
JoKalliauer
1
@JoKalliauer en el comando para copiar el icono /usr/share/... . Me refiero a PathToIcon. Esto debe ser sustituido con la ruta al icono en su PC. (si cree que esto podría formularse más claramente, no dude en proponer una edición)
danjjl
14

El truco principal es averiguar correctamente dónde se encuentran los íconos reales.
Para determinar eso, analicemos los iconos HTML. La convención de nomenclatura para los iconos es la misma que para el tipo MIME, solo /se reemplaza por -y no se permiten letras mayúsculas. Es decir, el tipo MIME, por ejemplo, text/x-changelogtendrá el icono llamado text-x-changelog.svg(o png). El tipo MIME para HTML es text/html. Entonces su icono será text-html.*Si ejecutamos el comando

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

Obtendremos varios lugares donde se colocan estos iconos:

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

Si visitamos cada uno de ellos con Nautilus, veremos que esa Humanity/carpeta contiene nuestros iconos actuales, gnome/algunos más antiguos. HighContrast/no nos interesa Entonces, para cambiar algún ícono, debemos reemplazar los íconos ubicados en la Humanity/carpeta.
Observe también que los text-html.svgiconos que son escalables y deberían haberse colocado en una scalablesubcarpeta (eso debería ser lógico) se colocan en las carpetas para diferentes tamaños, de la misma manera que los archivos PNG rasterizados.

Después de reemplazar los íconos (en todas las subcarpetas de acuerdo con sus tamaños) con los íconos deseados, se debe actualizar la caché de íconos:

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

Eso es.

Hay otra forma de determinar la precedencia de los esquemas de iconos: verificar sus index.themearchivos. Si miramos adentro /usr/share/icons/Humanity/index.theme, veremos:

Inherits=gnome,hicolor

Esto significa que los iconos gnomey las hicolorcarpetas tendrán menos prioridad que los de Humanity. Esto se explica aquí .
Por extraño que parezca, Nautilus no obedece estas reglas de herencia. Cuando añadí nuevo tipo MIME, he intentado colocar sus iconos en /usr/share/icons/gnome/, /usr/share/icons/hicolor, ~/.local/share/icons/hicolor, base de datos de icono de actualización en cada paso - todo en vano. Estos íconos se muestran correctamente en assogiatela primera pestaña, pero nunca en Nautilus. Pero cuando los coloqué en la Humanitycarpeta y la base de datos de iconos actualizada, aparecieron de inmediato.

Nota: todo esto se aplica al tema de icono predeterminado. Si utiliza algún tema de icono personalizado, debe verificar dónde se encuentran los iconos reales y agregar / cambiar iconos allí. También en las distribuciones más recientes, estas reglas de herencia pueden cambiar. Luego, debe ubicar la nueva carpeta que almacena los íconos reales (si ya no lo está Humanity) como se explicó anteriormente.

whtyger
fuente
También necesita verificar ~/.local. Por ejemplo ~/.local/share, que imita la carpeta /usr/local/share. Su aplicación instalada localmente (es decir, la aplicación solo para usted, no otros inicios de sesión), puede tener sus propiedades allí. Edite archivos similares, por ejemplo,~/.local/share/icons/XXXX/XXXX
Robin Hsu
0

Espero que hayas intentado cerrar sesión e iniciar sesión para actualizar la caché de iconos.

Vea también si su icono está disponible en el tamaño adecuado (el que está utilizando para mostrar el tipo de archivo en nautilus).

También podría extrañar correr gtk-update-icon-cache.

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

Intente crear manualmente icon.theme, aquí hay un ejemplo que tengo de awn:

[Icon Theme]
Name=awn-theme

Directories=scalable

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

El manual está aquí: http://live.gnome.org/GnomeArt/Tutorials/IconThemes

Chris Hasiński
fuente
Instalé un icono de 48x48 y configuré Nautilus al 100%, que usa 48x48. No dados. Volver a iniciar sesión no hace ninguna diferencia. Correr gtk-update-icon-cacheno tiene ningún efecto.
Scott Severance
Actualicé mi respuesta, ¿me ayudó?
Chris Hasiński
No he creado manualmente un tema de icono, porque no quiero un nuevo tema. Solo quiero que el ícono entre en el tema del hipo, porque esa es la base de todos los temas de íconos. Crear un nuevo tema vencerá mi propósito.
Scott Severance
-2

1)

 sudo apt-get install assogiate

sigue este buen tutorial con buenas fotos

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


2)

Si el tipo de archivo no se detecta correctamente o muestra un tipo de archivo incorrecto, busque los caracteres de identificación de su tipo de archivo

EX: rar vaya a http://filext.com/file-extension/rar

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

abra el archivo en un bendito o en cualquier editor hexadecimal y encuentre el identificador y el desplazamiento (donde comienzan sus palabras clave)

en nuestro caso es el primer bit, así que el desplazamiento es "0".

Luego vaya a "Editor de tipos de archivo", edite o cree un nuevo elemento, luego seleccione editar y debajo del contenido del archivo

seleccione "cadena" del menú desplegable, ingrese "Rar!" y establecer el desplazamiento "0".

Hecho

sodam
fuente
3
Como señalé en mi pregunta original, Assogiate no funciona.
Scott Severance