Disabilita la creazione di miniature solo per cartelle specifiche, ma per tutti gli utenti


12

Come posso impedire a Ubuntu 14.10 (ora 15.04) di creare e salvare miniature solo per una cartella specifica?
Voglio dire al thumbnailer di saltare quella singola cartella (e sottocartelle), ma per tutti gli account utente esistenti e futuri.

Ho letto alcune domande con risposta sull'esclusione di un tipo di file specifico, ma devo escludere i file in base alla loro posizione!
Quello che ho già provato è nascondere la cartella (rinominata in .foldername), ma senza fortuna. A proposito, la cartella è di proprietà di root.


6
Solo l'inizio di un'idea (e funzionerà solo per un singolo utente): le miniature vengono create, se ho capito bene, cancellando il percorso e scrivendo un file chiamato [hash] .png in una directory .thumbnails/normal/e / o .thumbnails/large/nella home directory dell'utente. Il tuo programma potrebbe eseguire lo stesso hash e scrivere invece un file di miniature a zero byte. Per fortuna, la routine del thumbnailer noterà che esiste già un file di miniature e salta l'anteprima dell'immagine.
Jos

Quale thumbnailer usi? Dove salvi le anteprime?
Daltonfury42,

@ daltonfury42 Non posso dirtelo. La situazione in cui avevo specificamente bisogno di questo era su un vecchio laptop ormai morto. Stavo eseguendo Ubuntu con XFCE lì, quindi penso che fosse tumbler o comunque si chiamasse il suo thumbnailer. Comunque, penso che se questo è possibile, dovrebbe essere una soluzione più generale.
Byte Commander

Risposte:


2

Oltre alla risposta @Fabby :

  1. Installa il pacchetto inoticoming

    sudo apt-get install inoticoming
    
  2. Crea script wrapper 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. Renderlo eseguibile

    chmod +x disable_thumbnails
    
  4. Uccidere i processi in esecuzione, se necessario

    killall inoticoming
    
  5. Guarda la tua cartella

    Evita il trascinamento /dei nomi delle cartelle

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

C'è solo un problema. Le modifiche sono visibili solo doponautilus -q

Utilizzare inoticoming --foreground …per evitare la modalità demone, se si verifica lo script.


Okay, nautilus -quccide il processo in background di nautilus e rilascia miniature nascoste nella memoria, immagino. E perché c'è il \;alla fine del inoticomingcomando?
Byte Commander

@ByteCommander Per mascherare ;abbiamo bisogno del ;comando nel e non come delimitatore per il comando successivo.
AB,

E di cosa si tratta inoticoming --foreground _? Cosa c'è che non va nella modalità demone? Ho pensato che dovrebbe funzionare automaticamente in background. Oh, e come posso impostare questa cosa per l'avvio automatico?
Byte Commander

@ByteCommander Per testare lo script usa--foreground
AB

2

Per ottenere il nome del file per la miniatura, iniziare md5sumcon il nome del file originale:

% 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

Ora rimuovi i permessi di lettura:

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

Riavvia nautilus:

nautilus -q

e non avrai miniature per /home/user/Pictures/image 1.png.

Ora devi solo scrivere uno script che scansiona le tue cartelle particolari ed eseguire automaticamente i passaggi precedenti.

Crediti : P


Se aggiungi quello script e includi una riga che sovrascrive la miniatura con un file a 0 byte, sarò felice! Oh, e devi dirmi (o link) come far eseguire automaticamente lo script. La cosa migliore sarebbe reagire agli eventi del file system in quella cartella, se ciò fosse possibile ... Non ho idea di come darti quella grazia, immagino che @AB debba farlo come lui lo offre ...
Byte Commander

@ByteCommander qualcosa di simile a questo ?
AB,

@AB Sì, sembra buono. Se ora scrivessi un'altra risposta con quella sceneggiatura e tutto insieme, sarebbe fantastico! :-)
Byte Commander

@ByteCommander done :)
AB
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.