Puncte:1

Cum se creează miniaturi personalizate pentru Nautilus, Nemo și Caja?

drapel dk

Nautilus (Fișiere GNOME) și managerii de fișiere bazați pe Nautilus, și anume Nemo și Caja, creează deja previzualizări pentru multe tipuri de fișiere obișnuite cu miniaturi implicite. Există, de asemenea, un număr de alte miniaturi care pot fi instalate din depozitele oficiale pentru a crea miniaturi pentru și mai multe fișiere. Cu toate acestea, există în mod natural anumite tipuri de fișiere pentru care nu există miniaturi. Câteva exemple de astfel de tipuri pe care le-am întâlnit sunt WebP, PSD, JP2, APK etc.

Ce trebuie să știu sau ce pași trebuie să fac pentru a crea miniaturi personalizate care pot fi folosite de Nautilus, Nemo sau Caja pentru a genera miniaturi pentru acele tipuri de fișiere?

Puncte:3
drapel dk

Referințe

Următoarele secțiuni oferă detalii importante despre procesul de miniaturi precum și pași pentru a crea miniaturi personalizate pentru Nautilus, Nemo și Caja care nu au fost menționate în documentele de mai sus.

Trebuie remarcat faptul că Nautilus se referă la versiunile recente ale Nautilus care implementează miniaturi sandboxing. Pe Ubuntu, acestea sunt versiunile de Nautilus pe care le utilizează libgnome-desktop 3.28.2 sau mai nou.

Thumbnailer & Thumbnailer Intrare

Pentru a genera miniaturi pentru fișiere, sunt necesare două lucruri de bază:

  • A program de miniaturi (sau doar thumbnailer): un program care poate într-un fel sau altul să convertească fișierele în imagini PNG, de preferință cu o opțiune de redimensionare a imaginilor. Câteva exemple sunt convertit, ffmpeg, gdk-pixbuf-thumbnailer, etc.
  • A intrare în miniatură: un fișier text cu .thumbnailer extensie care rezidă în oricare ~/.local/share/thumbnailers sau /usr/share/thumbnailers. Acest fișier conectează programul de miniaturi la tipul (tipurile) de fișiere pentru care programul va crea miniaturi. O intrare în miniatură arată cam așa:
    [Intrare în miniatură]
    TryExec=/usr/bin/gdk-pixbuf-thumbnailer
    Exec=/usr/bin/gdk-pixbuf-thumbnailer -s %s %i %o
    MimeType=imagine/jpeg;image/png;image/gif;image/tiff;
    

Fiecare intrare în miniatură este într-un format cheie-fișier care acceptă trei taste:

  • TryExec: (Opțional) această tastă este folosită pentru a verifica dacă programul thumbnailer este instalat. Valoarea sa este calea către programul thumbnailer sau numele programului care poate fi găsit în $PATH variabilă de mediu. Dacă programul nu este prezent sau nu este executabil, comanda din fișierul Exec cheia nu va fi executată. Nautilus, însă, ignoră această cheie și încearcă întotdeauna să execute miniatura.

  • Exec: (Necesar) comanda care urmează să fie executată pentru a genera miniaturi. Această comandă constă din calea completă a programului de miniaturi sau numele acestuia (în versiunea curentă $PATH) urmată de argumente separate prin spațiu. Un argument poate fi unul dintre câțiva parametri speciali care sunt înlocuiți automat înainte de a fi transmis la miniatura:

    • %i: (Necesar dacă %u nu este folosit) calea completă a fișierului care este miniat, de exemplu:
      /home/calico/Pictures/image.jpg
      /home/calico/Music/Pop Music/audio.mp3
      
      Calea este transmisă ca un singur argument programului de miniaturi, indiferent dacă conține spații sau alte caractere speciale.
    • %u: (Necesar dacă %i nu este folosit) URI-ul fișierului care este miniat. %u ar trebui folosit în loc de %i dacă programul thumbnailer poate gestiona sintaxa URI. Fișierele locale sunt transmise ca file://<calea-completă-la-fișier>, de exemplu:
      file:///home/calico/Pictures/image.jpg
      file:///home/calico/Music/Pop%20Music/audio.mp3
      
    • %o: (Necesar) calea completă a miniaturii de ieșire. Nautilus, Nemo și, respectiv, Caja scriu imaginea de ieșire la:
      /tmp/gnome-desktop-thumbnailer-XXXXXX/gnome-desktop-thumbnailer.png
      /tmp/.gnome_desktop_thumbnail.XXXXXX
      /tmp/.mate_desktop_thumbnail.XXXXXX
      
      XXXXXX este un șir de 6 caractere format din litere mari și cifre. Fiecare fișier imagine de ieșire primește un unic XXXXXX.
    • %s: (Opțional) dimensiunea implicită a miniaturii în pixeli.Dacă este folosit, %s este înlocuit cu oricare 128 (prin Caja sau versiuni mai vechi de Nemo) sau 256 (de Nautilus sau versiuni mai noi de Nemo).
  • MimeType: (Necesar) cel tip MIME(s) din fișierele pentru care programul de miniaturi va genera miniaturi. Mai multe tipuri MIME sunt separate prin punct și virgulă. Vedea Pași pentru a crea un miniaturi personalizat secțiunea pentru detalii despre cum să obțineți tipul mime al fiecărui fișier.

Note pentru Exec cheie:

  • În general, doar unul dintre %i sau %u este folosit în comandă.
  • Caracterele procentuale literale sunt escape ca %% (de exemplu, folosiți 50%% pentru 50 la sută).
  • Vedea Specificații de intrare desktop - Tasta Exec pentru mai multe detalii.

Să luăm ca exemplu intrarea în miniatură de mai sus: gdk-pixbuf-thumbnailer este folosit ca program de miniaturi pentru imagini JPEG, PNG, GIF și TIFF. Dacă deschidem un folder, să spunem, /home/calico/Imagini, care contine imagine.gif:

  • Nemo (pe Ubuntu 20.04 sau o versiune ulterioară) va executa această comandă:
    /usr/bin/gdk-pixbuf-thumbnailer -s 256 /home/calico/Pictures/image.gif /tmp/.gnome_desktop_thumbnail.1ABC20
    
  • Caja va executa această comandă:
    /usr/bin/gdk-pixbuf-thumbnailer -s 128 /home/calico/Pictures/image.gif /tmp/.mate_desktop_thumbnail.DE3450
    
  • Nautilus (cu libgnome-desktop 3.37.2 sau mai recent) va face următoarele:
    • Creați un director temporar: /tmp/gnome-desktop-thumbnailer-67FG80.
    • Montați acel director pe /tmp în cutia cu nisip.
    • montură imagine.gif pe /tmp/image.gif în cutia cu nisip.
    • Executați această comandă (în interiorul sandbox):
      /usr/bin/gdk-pixbuf-thumbnailer -s 256 /tmp/image.gif /tmp/gnome-desktop-thumbnailer.png
      

Script de miniaturi

Se execută o singură comandă dintr-o intrare în miniatură: primul șir (separat de altele printr-un spațiu) după Exec= este considerată numele sau calea programului de executat şi Tot după aceea se consideră argumente ce urmează a fi transmise programului. Cu toate acestea, există multe cazuri în care sunt necesare mai multe comenzi pentru a crea o miniatură adecvată. De exemplu, dwebp poate converti o imagine WebP în format PNG într-o singură comandă, dar are nevoie de ajutor de la alte programe, cum ar fi webpmux și bc, pentru a calcula lățimea și înălțimea corespunzătoare pentru imaginea de ieșire. În astfel de cazuri, a script de miniaturi este pusă în folosință.

  • A script de miniaturi: un script care conține comenzi pentru crearea de miniaturi. Ar putea fi un script shell, un script Python etc., în funcție de tipurile de fișiere și programe implicate. Scripturile Shell sunt foarte frecvent utilizate și arată cam așa:
    #!/bin/bash
    
     in_file="$1"
        dimensiune="$2"
    out_file="$3"
    
    <comanda>
    <o altă comandă>
    
    <thumbnailer-program> -i „$in_file” -s „$size” -o „$out_file”
    

Un script poate fi folosit direct ca program de executat sau ca fișier text care conține comenzi. De exemplu:

# un script folosit ca program
Exec=/home/calico/Documents/example-thumbnailer-script %i %s %o
# un script folosit ca fișier care conține comenzi
Exec=bash /home/calico/Documents/example-thumbnailer-script %i %s %o

Dacă este folosit un script shell, argumentele de după calea scriptului (de ex. %i, %s, și %o) sunt alocate parametrilor poziționali ($1, $2, $3, etc.) în scenariu.

Vezi asta Răspuns și asta articol pentru exemple de scripturi shell care creează miniaturi pentru imaginile WebP și, respectiv, fișierele APK sau aceasta articol pentru un exemplu de script Python care creează miniaturi pentru imaginile MRC.

Pași pentru a crea un miniaturi personalizat

  1. Găsiți și instalați un program de miniaturi

    Găsiți un program care poate converti tipul de fișiere pe care doriți să le modificați în format PNG. Înainte de a instala un nou program, poate doriți să încercați miniaturi preinstalate:

    • gdk-pixbuf-thumbnailer: miniatura implicită pentru imagini de pe desktop-uri bazate pe GNOME și GNOME.
    • totem-video-miniatura și ffmpegthumbnailer: miniaturi implicite pentru videoclipuri de pe desktop-urile GNOME și, respectiv, Cinnamon/MATE.
    • evince-thumbnailer, xreader-thumbnailer, și atril-thumbnailer: miniaturile implicite pentru PDF-uri și alte fișiere de document pe desktop-urile GNOME, Cinnamon și, respectiv, MATE.
    • gnome-miniatură-font și mate-miniatură-font: miniaturale implicite pentru fonturile de pe desktop-urile GNOME/Cinnamon și, respectiv, MATE.

    Încercați să le invocați manual într-un terminal pentru a crea o imagine PNG dintr-un fișier de intrare. De exemplu:

    cd ~/Imagini
    gdk-pixbuf-thumbnailer -s 256 example.webp out.png
    ffmpegthumbnailer -s 256 -i exemplu.webp -o out.png
    

    Dacă aceste programe nu pot gestiona tipul de fișiere pe care doriți să le miniaturi, este timpul să căutați noi miniaturi. convertit (din magicmagick) și ffmpeg sunt utilizate în mod obișnuit pentru a accepta o mare varietate de formate de fișiere. Le puteți instala cu:

    sudo apt install imagemagick
    sudo apt install ffmpeg
    

    De asemenea, puteți alege să utilizați un program specializat în manipularea anumitor tipuri de fișiere. De exemplu, dwebp și opj_decompress sunt special concepute pentru a decoda imaginile WebP și, respectiv, imaginile JPEG-2000.

  2. Obține tip MIME a fișierelor care urmează să fie miniaturi

    • Faceți clic dreapta pe un fișier de tipul pe care doriți să îl miniați, selectați Proprietăți.
    • Pe De bază fila, acordați atenție Tip camp. Tipul MIME este afișat în paranteze.

    Alternativ, puteți utiliza xdg-mime. De exemplu, pentru a obține tipul mime de exemplu.pdf în ~/Documente, lansați această comandă:

    tip de fișier de interogare xdg-mime ~/Documents/example.pdf
    
  3. Creeaza o script de miniaturi (daca este necesar)

    • Dacă este nevoie de mai multe comenzi sau programe pentru a genera miniaturi pentru fișierele dvs., utilizați un editor de text, cum ar fi nano sau gedit pentru a crea un script de miniaturi care să conțină acele comenzi.
    • Dacă utilizați Nemo sau Caja, puteți pune scriptul undeva în directorul dvs. de acasă. Dacă utilizați Nautilus, totuși, puteți plasa scriptul doar în directoarele care sunt montate pe cutie cu nisip (vedea Probleme de miniaturi â Miniaturile nereușite din cauza miniaturilor în sandbox de mai jos). Dacă nu ești sigur, /usr/local/bin este recomandat.
    • Dacă scriptul urmează să fie folosit ca program, trebuie să îl faceți executabil. De exemplu:
      chmod +x /home/calico/Documents/webp-thumbnailer-script
      sudo chmod +x /usr/local/bin/psd-thumbnailer-script
      
  1. Creeaza o intrare în miniatură
    • Utilizați un editor de text pentru a crea o intrare în miniatură (un fișier text cu .thumbnailer extensie). Dați-i un nume descriptiv, cum ar fi webp.thumbnailer sau psd.thumbnailer.

    • Puneți intrarea în miniatură ~/.local/share/thumbnailers sau /usr/share/thumbnailers astfel încât să fie disponibil utilizatorului curent sau, respectiv, tuturor utilizatorilor. Dacă plănuiești să-l pui /usr/share/thumbnailers, folosind nano pentru a crea și edita intrarea este recomandat cu tărie. De exemplu:

      sudo nano /usr/share/thumbnailers/webp.thumbnailer
      
    • În ceea ce privește conținutul intrării (vezi Thumbnailer & Thumbnailer Intrare mai sus pentru detalii):

      • Prima linie a fișierului trebuie să fie: [Intrare în miniatură]
      • Folosește TryExec tasta dacă doriți să verificați dacă un program sau un script este prezent și executabil.
      • Specificați numele sau calea programului care urmează să fie executat și argumentele care îi vor fi transmise în Exec cheie. Dacă se folosește un script de miniaturi, acesta trebuie să fie fie programul, fie un argument (vezi Script de miniaturi mai sus pentru detalii).
      • Puneți tipul mime găsit la pasul 2 în MimeType cheie. Dacă această cheie trebuie să conțină mai multe tipuri de mime, separați fiecare dintre ele cu un punct și virgulă (;) și, opțional, încheiați valoarea cheii cu punct și virgulă.
  1. Ștergeți vechile miniaturi din cache și reporniți managerul de fișiere
    • După ce este creată o nouă intrare în miniatură, managerul de fișiere ar trebui să fie complet închis, astfel încât să poată scana și înregistra corect intrarea. Puteți face acest lucru lansând una dintre aceste comenzi:
      nautilus -q
      nemo -q
      caja -q
      
    • Apoi, ștergeți memoria cache a miniaturilor eșuate pentru a forța managerul de fișiere să regenereze miniaturile pentru fișierele pentru care miniaturile anterioare nu au reușit să genereze miniaturi:
      rm -r ~/.cache/thumbnails/fail
      
    • Opțional, ștergeți toate miniaturile stocate în cache dacă au fost utilizate anterior intrări de miniaturi neoptimizate sau scripturi:
      rm -r ~/.cache/thumbnails/*
      
    • În cele din urmă, redeschideți managerul de fișiere. Fișierele al căror tip mime este în MimeType cheia ar trebui să aibă miniaturile lor acum. Dacă nu, înseamnă că ceva nu merge bine, dar nu vă temeți, pentru asta sunt următoarele secțiuni.

Rezolvarea problemelor de miniaturi

Una dintre cele mai bune modalități de a afla ce a mers prost cu miniaturile este să rulați managerul de fișiere cu mesajele de depanare activate:

  • Mai întâi, închideți complet managerul de fișiere cu una dintre aceste comenzi:
    nautilus -q
    nemo -q
    caja -q
    
  • Ștergeți toate miniaturile din cache:
    rm -r ~/.cache/thumbnails/*
    
  • Lansați managerul de fișiere de pe un terminal cu codul de depanare activat:
    • Nautilus (din acest):
      G_MESSAGES_DEBUG=toate NAUTILUS_DEBUG=Nautilus fereastră
      
    • Nemo:
      nemo --debug
      
    • Caja (de la acest): lansați următoarea comandă, apoi tastați alerga și apăsați introduce
      gdb caja
      
  • Mergi la ~/.cache/thumbnails, care ar trebui să fie goală până acum.
  • Deschideți un folder care conține fișiere de tipul pe care doriți să le depuneți într-o filă nouă. De aici se pot întâmpla trei lucruri:
    • A mare sau normal directorul este creat în ~/.cache/thumbnails. Aceasta înseamnă că miniaturile au reușit și au fost generate miniaturi pentru fișierele dvs.
    • Nu este creat niciun director în ~/.cache/thumbnails (adică directorul rămâne gol). Aceasta înseamnă comanda din Exec cheia nu a fost executată și, ca urmare, fara pictograma a fost creat. Consultați secțiunea următoare pentru posibilele cauze ale acestei situații.
    • A eșuează directorul este creat în ~/.cache/miniaturi. Aceasta înseamnă că managerul de fișiere a încercat să execute comanda în fișierul Exec cheie, dar a existat ceva care a împiedicat crearea miniaturilor, rezultând miniaturi nereușite. Mesajele de eroare de la terminal ar putea oferi indicii despre ce a mers prost. De asemenea, puteți găsi câteva cauze comune în secțiunea următoare.
  • Ieșiți din modul de depanare:
    • Nautilus & Nemo: închideți managerul de fișiere și apăsați Ctrl+C în terminal.
    • Caja: închideți managerul de fișiere, apăsați introduce în terminal, apoi tastați părăsi și apăsați introduce.

Note:

  • Cu versiuni mai vechi de Nemo care nu oferă --depanare opțiune, folosire gdb in schimb:

    gdb nemo
    
  • Dacă utilizați Caja într-o sesiune MATE (de exemplu, pe Ubuntu MATE), trebuie să rulați gdb ca rădăcină (vezi acest pentru mai multe detalii):

    sudo gdb caja
    

    În acest caz, puteți depana numai intrările de miniaturi în /usr/share/thumbnailers și scripturi de miniaturi în afara directorului principal.

    Alternativ, puteți utiliza Eclipsă pentru a depana Caja și miniaturi.

Probleme de miniaturi

Această secțiune discută mai multe situații care ar putea duce la fără miniaturi sau miniaturi nereușite.

Fără miniaturi pentru fișiere mari

Nautilus, Nemo și Caja stabilesc o limită de dimensiune pentru fișierele miniaturi. Un fișier a cărui dimensiune este peste această limită va primi doar o pictogramă generică, indiferent dacă există un program de miniaturi valid pentru tipul său.

Pentru a modifica această limită de dimensiune:

  • Deschideți managerul de fișiere, accesați Preferințe â previzualizare (Nemo, Caja) sau Căutare și previzualizare fila (Nautilus).
  • Alegeți o dimensiune de fișier din Doar pentru fișiere mai mici decât.

Fără miniaturi pentru fișierele de la distanță

Când răsfoiți fișiere pe alte computere prin rețele, Nautilus, Nemo și Caja în mod implicit nu creează miniaturi pentru ele.

Pentru a activa previzualizările în miniatură pentru acele fișiere:

  • Deschideți managerul de fișiere, accesați Preferințe â previzualizare (Nemo, Caja) sau Căutare și previzualizare fila (Nautilus).
  • A stabilit Afișați miniaturile la Toate filele (Nautilus), da (Nemo), sau Mereu (Caja).

Nu există miniaturi pentru fișierele din anumite foldere

Nemo poate dezactiva miniaturile pentru fișierele din anumite foldere:

  • Deschideți un folder, apoi faceți clic Vedere în bara de meniu.
  • Dacă Afișați miniaturile nu este bifată, atunci miniaturarea este dezactivată pentru fișierele din acel folder.
  • Clic Editați | × în bara de meniu â Preferințe â previzualizare fila.
  • Dacă Moșteniți vizibilitatea miniaturilor de la părinte este bifată, apoi miniaturile pentru fișierele din subdosarele acelui folder pot fi, de asemenea, dezactivate.

Pentru a reactiva previzualizările în miniatură pentru fișierele dintr-un dosar:

  • Deschideți folderul, apoi faceți clic Vedere în bara de meniu.
  • A te asigura Afișați miniaturile este bifat.

Nu există miniaturi pentru anumite tipuri de fișiere

Managerul de fișiere poate dezactiva miniaturile pentru anumite tipuri de mime. Pentru a verifica dacă acesta este cazul, lansați una dintre aceste comenzi, pentru Nautilus, Nemo și respectiv Caja:

gsettings dezactivează org.gnome.desktop.thumbnailers
gsettings dezactivează org.cinnamon.desktop.thumbnailers
gsettings dezactivează org.mate.thumbnailers

Dacă rezultatul este [] sau [''], atunci managerul de fișiere nu dezactivează miniaturile pentru niciun tip de fișier. Cu toate acestea, dacă există tipuri de mime între paranteze, de exemplu ['image/jp2'], ['image/jp2', 'application/x-ms-dos-executable'], etc., atunci miniaturile pentru fișierele de acest tip nu vor fi create.

Pentru a activa previzualizările în miniatură pentru toate tipurile de fișiere, lansați una dintre aceste comenzi (pentru Nautilus, Nemo și respectiv Caja):

gsettings set org.gnome.desktop.thumbnailers dezactivează „[]”
gsettings set org.cinnamon.desktop.thumbnailers dezactivează „[]”
gsettings set org.mate.thumbnailers dezactivează „[]”

Alternativ, puteți utiliza dconf Editor:

  • Mai întâi, instalați dconf-editor:
    sudo apt install dconf-editor
    
  • Deschis dconf Editor, apoi mergeți la unul dintre aceste locuri (pentru Nautilus, Nemo și respectiv Caja):
    • org â gnom â desktop â miniaturi â dezactivați.
    • org â scorţişoară â desktop â miniaturi â dezactivați.
    • org â mate â desktop â miniaturi â dezactivați.
  • Opriți Utilizați valoarea implicită.
  • Schimbați valoarea în Valoare personalizată cutie la oricare [] sau [''] pentru a activa miniaturi pentru toate tipurile de fișiere sau pentru a elimina selectiv anumite tipuri de mime din listă pentru a reactiva doar previzualizările pentru acele tipuri.
  • Clic aplica în colțul din dreapta jos al ferestrei.

Nu există miniaturi pentru toate fișierele

Este posibil ca previzualizările în miniatură să fie dezactivate pentru toate fișierele. Există două locuri pe care trebuie să le verificați:

  • Preferințe manager de fișiere:

    • Deschideți managerul de fișiere, accesați Preferințe â previzualizare (Nemo, Caja) sau Căutare și previzualizare fila (Nautilus).
    • Dacă Afișați miniaturile este setat sa Nu (Nemo) sau Nu (Nautilus, Caja), managerul de fișiere nu va crea și nu va afișa miniaturi pentru niciun fișier.
    • Pentru a reactiva previzualizările, setați Afișați miniaturile la Numai fișiere locale (Nemo, Caja) sau Numai fișierele de pe acest computer (Nautilus). Alternativ, puteți seta această caracteristică la Toate filele (Nautilus), da (Nemo), sau Mereu (Caja) pentru a previzualiza și fișierele de la distanță.
  • Setări pentru mediul desktop:

    Lansați una dintre aceste comenzi, pentru Nautilus, Nemo și, respectiv, Caja:

    gsettings obține org.gnome.desktop.thumbnailers disable-all
    gsettings obține org.cinnamon.desktop.thumbnailers dezactivează-toate
    gsettings get org.mate.thumbnailers disable-all
    

    Rezultatul ar trebui să fie fals, care este implicit, dar dacă este Adevărat, atunci toate miniaturile sunt dezactivate și, ca urmare, nu vor fi generate miniaturi.

    Pentru a reactiva miniaturi, lansați una dintre aceste comenzi (pentru Nautilus, Nemo și, respectiv, Caja):

    gsettings set org.gnome.desktop.thumbnailers disable-all false
    gsettings set org.cinnamon.desktop.thumbnailers dezactivați-toate false
    gsettings set org.mate.thumbnailers disable-toate false
    

    Alternativ, puteți utiliza dconf Editor:

    • Mai întâi, instalați dconf-editor:
      sudo apt install dconf-editor
      
    • Deschis dconf Editor, apoi mergeți la unul dintre aceste locuri (pentru Nautilus, Nemo și respectiv Caja):
      • org â gnom â desktop â miniaturi
      • org â scorţişoară â desktop â miniaturi
      • org â mate â desktop â miniaturi
    • Opriți Dezactivează toate miniaturile externe.
    • Clic Reîncărcați în colțul din dreapta sus al ferestrei.

Miniaturile eșuate din cauza codecurilor lipsă

Codecurile necesare unui program de miniaturi pentru a minia anumite tipuri de fișiere ar putea să nu fie disponibile deoarece nu sunt incluse în program sau nu sunt furnizate de una dintre dependențele acestuia. De exemplu, totem-video-miniatura are nevoie gstreamer1.0-libav pentru a minia MP4 și alte fișiere video, dar gstreamer1.0-libav este doar o sugerat pachet și, prin urmare, nu este instalat cu totem-video-miniatura.

Pentru a găsi codecurile lipsă, încercați să creați o imagine PNG dintr-un fișier de tipul care va fi miniat folosind programul de miniaturi dintr-un terminal. Mesajele de eroare de la terminal ar putea oferi indicii despre ce biblioteci de codec sunt necesare pentru conversie. Dacă programul are un verboroasă opțiunea, poate doriți să o utilizați pentru mai multe informații de depanare. De exemplu:

totem-video-thumbnailer --size 256 --verbose in.webp out.png

Un alt mod este să încerci sugerat pachete și vedeți dacă vreunul dintre ele oferă codecurile necesare:

  • Utilizare apt-cache depinde pentru a obține lista de pachete sugerate. De exemplu:
    apt-cache depinde de totem | grep Sugerează
    apt-cache depinde de ffmpegthumbnailer | grep Sugerează
    
  • Utilizare spectacol apt-cache pentru a obține informațiile despre fiecare pachet sugerat. De exemplu:
    apt-cache arată gstreamer1.0-libav
    apt-cache arată gstreamer1.0-plugins-bad
    
  • Dacă informațiile nu vă pot ajuta să determinați ce pachet conține codecurile, vă recomandăm să încercați să instalați pachetele sugerate unul câte unul.

Trebuie remarcat faptul că este, de asemenea, posibil ca codecul să nu fie disponibil în depozitele oficiale sau programul în cauză să nu accepte deloc tipul de fișiere pe care încercați să le miniaturi. În astfel de cazuri, este recomandabil să vizitați site-ul oficial al programului pentru a obține mai multe informații despre formatele acceptate sau pur și simplu să utilizați un alt thumbnailer.

Miniaturile eșuate din cauza extensiilor de nume de fișiere incorecte

Fișierele pe care încercați să le previzualizați pot avea extensii incorecte de nume de fișiere, ceea ce duce la apelarea unor miniaturi inadecvate pentru a le minia. De exemplu, aveam câteva fișiere cu .jpg extensie, dar erau de fapt imagini WebP. Managerul de fișiere le-a văzut ca imagini JPEG indiferent și le-a transmis gdk-pixbuf-thumbnailer. Deoarece programul nu a putut gestiona imaginile WebP, miniaturile a eșuat.

Pentru a remedia această problemă, trebuie să obțineți adevăratele tipuri ale acelor fișiere folosind fişier instrument și redenumiți-le în consecință. De exemplu, pentru a verifica tipul de imagine.png în ~/Imagini, lansați această comandă:

fișierul ~/Pictures/image.png

Dacă fișierul este cu adevărat o imagine PNG, rezultatul ar fi similar cu acesta:

/home/calico/Pictures/image.png: date de imagine PNG, 1024 x 640, 8 biți/color RGB, neîntrețesat

La fel de fişier scanează conținutul unui fișier pentru a-i determina tipul, chiar dacă încercați să dați fișierului o extensie diferită, rezultatul ar fi același:

/home/calico/Pictures/image.png.gif: date de imagine PNG, 1024 x 640, 8 biți/color RGB, neîntrețesat

Interesant, dacă verificați tipul mime al fișierului folosind xdg-mime înainte și după schimbarea extensiei, vor exista două rezultate diferite:

$ xdg-mime tip de fișier de interogare ~/Pictures/image.png
imagine/png
$ mv ~/Pictures/image.png ~/Pictures/image.png.gif
$ xdg-mime tip de fișier de interogare ~/Pictures/image.png.gif
imagine/gif

Miniaturile eșuate din cauza formatului de fișier imagine nerecunoscut

După cum se poate vedea în Thumbnailer & Thumbnailer Intrare secțiunea, Nemo și Caja (și, de asemenea, versiunile mai vechi ale Nautilus) dau fiecărei miniaturi de ieșire un fel aleatoriu .XXXXXX sufix în loc de extensie de imagine. Dacă programul de miniaturi nu scrie implicit fișiere în format PNG (sau un format acceptat de gdk-pixbuf-thumbnailer), nu va putea crea miniaturi pentru acei manageri de fișiere.

Din fericire, programele care sunt concepute pentru a fi un thumbnailer, cum ar fi ffmpegthumbnailer și totem-video-miniatura, de obicei creează miniaturi PNG în mod implicit. Cu alte programe care nu folosesc implicit acest lucru, formatul fișierului de ieșire trebuie specificat în mod explicit pentru a se asigura că este generată o miniatură validă.

Cel mai bine este dacă programul are o opțiune convenabilă pentru specificarea formatului. De exemplu, convertit are png:, și ffmpeg are -f apng:

Exec=/usr/bin/convert %i png:%o
Exec=/usr/bin/ffmpeg -i %i -f apng %o

Pentru programele care nu au o astfel de opțiune, soluția universală este să dați mai întâi fișierului de ieșire .png sufix și apoi redenumiți-l cu numele de fișier original dat de managerul de fișiere. Acest lucru se poate face într-un script shell. De exemplu:

#!/bin/bash

infile="$1"
outfile="$2"

/usr/bin/opj_decompress -i „$infile” -o „$outfile”.png
mv "$outfile".png "$outfile"

Chiar dacă fișierul imagine de ieșire poate fi în orice format acceptat de gdk-pixbuf-thumbnailer (JPEG, PNG, BMP, GIF, TGA etc.), crearea de miniaturi în format PNG este recomandată pentru motive de securitate.

Miniaturile nereușite din cauza miniaturilor în sandbox

Versiunile recente ale Nautilus miniaturi sandbox și permite doar accesul procesului de miniaturi la anumite directoare. Dacă programul de miniaturi are nevoie de fișiere sau se află într-un director în afara sandbox-ului, miniaturarea va eșua.

Pentru a obține lista directoarelor care sunt montate pe sandbox, procedați în felul următor:

  • Închideți complet Nautilus cu:
    nautilus -q
    
  • Ștergeți toate miniaturile din cache:
    rm -r ~/.cache/thumbnails/*
    
  • Lansați Nautilus de pe terminal cu codul de depanare activat:
    G_MESSAGES_DEBUG=toate NAUTILUS_DEBUG=Nautilus fereastră
    
  • Accesați un folder care conține fișiere miniaturi (imagini, videoclipuri etc.).
  • Găsiți în terminal un mesaj similar cu acesta:
    Pe cale de a lansa scriptul: bwrap --ro-bind /usr /usr --ro-bind /etc/ld.so.cache /etc/ld.so.cache --symlink
    /usr//bin /bin --symlink /usr//lib64 /lib64 --symlink /usr//lib /lib --symlink /usr//sbin /sbin --ro-bind-try
    /var/cache/fontconfig /var/cache/fontconfig --ro-bind-try /etc/alternatives /etc/alternatives --proc /proc --dev
    /dev --chdir / --setenv GIO_USE_VFS local --unshare-all --die-with-parent --setenv G_MESSAGES_DEBUG all --bind 
    /tmp/gnome-desktop-thumbnailer-90H120 /tmp --ro-bind /home/calico/Pictures/image.webp /tmp/image.webp --seccomp
    36 /usr/bin/gdk-pixbuf-thumbnailer -s 256 file:///tmp/image.webp /tmp/gnome-desktop-thumbnailer.png
    
  • Acordați atenție la --lega, --ro-bind, --ro-bind-try, și --legătură simbolică Opțiuni. Argumentul imediat după fiecare dintre ele este un fișier sau un director montat pe sandbox.

Pentru a evita miniaturile eșuate când utilizați Nautilus:

  • Dacă utilizați scripturi de miniaturi, asigurați-vă că acestea sunt plasate într-un director montat pe sandbox (de ex. /usr/local/bin).
  • Dacă programul thumbnailer chiar are nevoie de fișiere în directoare în afara sandbox-ului, un script cum ar fi Aceasta de Nicolas Bernaerts poate fi folosit pentru a adăuga acele directoare la sandbox. Cu toate acestea, acest lucru poate învinge scopul sandbox-urilor de miniaturi, așa că ar fi mai bine să utilizați un alt program de miniaturi care nu are nicio problemă cu sandbox-ul.

Pentru mai multe detalii despre programul de sandboxing (folie cu bule) și opțiunile sale, rulați această comandă:

om bwrap

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.