Deshabilite la creación de miniaturas solo para carpetas específicas, pero todos los usuarios

12

¿Cómo evito que mi Ubuntu 14.10 (ahora 15.04) cree y guarde miniaturas solo para una carpeta específica?
Quiero decirle a la miniatura que omita esa única carpeta (y subcarpetas), pero para todas las cuentas de usuario existentes y futuras.

Leí algunas preguntas respondidas sobre la exclusión de un tipo de archivo específico, ¡pero necesito excluir archivos por su ubicación!
Lo que ya intenté es ocultar la carpeta (renombrada a .foldername), pero sin suerte. La carpeta es propiedad de root, por cierto.

Byte Commander
fuente
66
Solo el comienzo de una idea (y funcionará solo para un solo usuario): las miniaturas se crean, si entiendo correctamente, haciendo un hash de la ruta y escribiendo un archivo llamado [hash] .png en un directorio .thumbnails/normal/y / o .thumbnails/large/en el directorio de inicio del usuario. Su programa podría realizar el mismo hash y escribir un archivo de miniatura de cero bytes en su lugar. Por suerte, la rutina de miniaturas notará que ya existe un archivo en miniatura y omitirá su imagen en miniatura.
Jos
¿Qué miniatura utilizas? ¿Dónde guardas las miniaturas?
daltonfury42
@ daltonfury42 No puedo decirte. La situación en la que específicamente necesitaba esto era en una computadora portátil vieja, ahora muerta. Estaba ejecutando Ubuntu con XFCE allí, así que creo que era tumbler o como se llamara su miniatura. De todos modos, creo que si esto es posible, debería ser una solución más general.
Byte Commander

Respuestas:

2

Además de la respuesta @Fabby :

  1. Instale el paquete inoticoming

    sudo apt-get install inoticoming
    
  2. Crear script de envoltura disable_thumbnails

    #!/bin/bash
    
    # Create the thumbnail filename
    tn_filename=$(echo -n "file://$1/$2" | sed 's/\s/%20/g' | md5sum | awk '{print $1}')
    
    # Destroy the thumbnail without deleting
    find ~/.cache/thumbnails -type f -name "$tn_filename*" -print0 | while IFS= read -d '' file; do
      echo > "$file"
    done
    exit 0
    
  3. Hazlo ejecutable

    chmod +x disable_thumbnails
    
  4. Eliminar procesos en ejecución, si es necesario

    killall inoticoming
    
  5. Mira tu carpeta

    Evite el seguimiento /de los nombres de las carpetas.

    inoticoming "<path_to_disabled_thumbnail_folder>" <full_path_of_disable_thumbnails_script>  {} "<path_to_disabled_thumbnail_folder>" \;
    

Solo hay un problema. Los cambios solo son visibles después denautilus -q

Use inoticoming --foreground …para evitar el modo demonio, si prueba el script.

AB
fuente
De acuerdo, nautilus -qsupongo que mata el proceso de fondo nautilus y libera miniaturas almacenadas en caché. ¿Y por qué hay \;al final del inoticomingcomando?
Byte Commander
@ByteCommander Para enmascarar la ;Necesitamos ;en el comando y no como delimitador para el siguiente comando.
AB
¿Y de qué se trata esto inoticoming --foreground _? ¿Qué hay de malo con el modo demonio? Pensé que debería ejecutarse automáticamente en segundo plano. Ah, y ¿cómo configuro esto para que se inicie automáticamente?
Byte Commander
@ByteCommander Para probar el uso del script--foreground
AB
2

Para obtener el nombre del archivo para la miniatura, comience md5sumpor el nombre del archivo original:

% echo -n "file:///home/user/Pictures/image%201.png" | md5sum
6e1669aea9c118cb2b7ad23fc6646c71  -

% find ~/.cache/thumbnails -type f -name "6e1669aea9c118cb2b7ad23fc6646c71*"
/home/user/.cache/thumbnails/large/6e1669aea9c118cb2b7ad23fc6646c71.png

Ahora elimine los permisos de lectura:

chmod -r /home/user/.cache/thumbnails/large/6e1669aea9c118cb2b7ad23fc6646c71.png

Reiniciar nautilus:

nautilus -q

y no tendrás miniatura para /home/user/Pictures/image 1.png.

Ahora solo tiene que escribir un script que escanee sus carpetas particulares y realice los pasos anteriores automáticamente.

Créditos : P

Fabby
fuente
Si agrega esa secuencia de comandos e incluye una línea que sobrescribe la miniatura con un archivo de 0 bytes, ¡estaré feliz! Ah, y tienes que decirme (o vincular) cómo hacer que el script se ejecute automáticamente. Lo mejor sería reaccionar ante los eventos del sistema de archivos en esa carpeta, si esto fuera posible ... Sin embargo, no tengo idea de cómo darte esa recompensa, supongo que @AB tiene que hacer eso como él lo ofrece ...
Byte Commander
@ByteCommander algo como esto ?
AB
@AB Sí, se ve bien. Si ahora escribieras otra respuesta con ese guión y todo junto, ¡eso sería increíble! :-)
Byte Commander
@ByteCommander hecho :)
AB