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ă:
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:
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ță.
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
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.
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
Creeaza o script de miniaturi (daca este necesar)
- 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ă.
- Ș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:
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:
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:
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:
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