Tumbler - Thumbnail Service
Introduction
Tumbler is a D-Bus service for applications to request thumbnails for various URI schemes and MIME types. It is an implementation of the thumbnail management D-Bus specification described on
https://wiki.gnome.org/DraftSpecs/ThumbnailerSpec
written in an object-oriented fashion using GLib and GObject. Its modular architecture makes it very flexible and useful in many situations. It provides plugin interfaces for extending the URI schemes and MIME types for which thumbnails can be generated as well as for replacing the storage backend that is used to store the thumbnails on disk. Tumbler's functionality can also be extended via specialized thumbnailer services implemented in accordance to the thumbnail management D-Bus specification.
Tumbler is used by Thunar, Ristretto, Xfce.
Configuration
You can override the default cache directory $HOME/.cache
in which, besides other non-essential files, thumbnails are stored:
- D-Bus/ systemd
- create a file below
~/.config/environment.d/
and inside set XDG_CACHE_HOME. E.g: XDG_CACHE_HOME=$HOME/.my_new_cache
- Other
- Extend $HOME/.profile, $HOME/.bash_rc or similar
export XDG_CACHE_HOME=$HOME/.my_new_cache
After that, re-login, make sure the variable is set, and check if it works fine.
Tumbler has a configuration file tumbler.rc
described in a dedicated page.
Available Plugins
Tumbler allows to load a number additional tumbler plugins to support different file formats. Most plugins are loaded by default, if the required libraries are provided.
Standards compliance
Tumbler supports and implements the following standards/specifications:
Debugging Support
Tumbler currently supports four different levels of debugging support, which can be setup using the configure flag `–enable-debug' (check the output of `configure –help'):
`full' Use this if you want to debug Tumbler to locate a bug. The build will most probably be noticably slower. This is also recommended for people that want to develop Tumbler stuff.
`yes' This is the default for git snapshot builds. It adds all kinds of checks to the code, and is therefore likely to run slower. Use this if you want to develop for Tumbler (e.g. writing Tumbler extensions and such).
`minimum' This is the default for release builds, and presents the recommended behaviour.
`no' Disables all sanity checks. Don't use this unless you know exactly what you do.
Required packages
Tumbler depends on the following packages:
- GLib >= 2.50.0
Tumbler can optionally use the following packages:
- gdk-pixbuf >= 2.14.0 (various image formats, some of them requiring the installation of optional libraries specific to gdk-pixbuf; also required for all other plugins below)
- FreeType >= 2.0.0 (font)
- FFmpegthumbnailer >= 2.0.0 (video)
- GStreamer >= 1.0.0 (video)
- Poppler >= 0.12 (PDF/PS)
- libgsf >= 1.14.9 (ODF)
- libopenraw >= 0.0.4 (RAW images)
- libpng >= 1.2.0 (for the Thumbnail Managing Standard storage backend)
- libgepub >= 0.6.0 (EPUB)
Latest Release
- tumbler 4.17.0 released (2022/01/01 20:28)
tumbler 4.17.0 is now available for download from https://archive.xfce.org/src/xfce/tumbler/4.17/tumbler-4.17.0.tar.bz2 https://archive.xfce.org/src/xfce/tumbler/4.17/tumbler-4.17.0.tar.bz2?sha1 https://archive.xfce.org/src/xfce/tumbler/4.17/tumbler-4.17.0.tar.bz2?sha256 What is tumbler? ================ Tumbler is a D-Bus service for applications to request thumbnails for various URI schemes and MIME types. It is an implementation of the thumbnail management D-Bus specification described on https://wiki.gnome.org/DraftSpecs/ThumbnailerSpec written in an object-oriented fashion using GLib and GObject. Its modular architecture makes it very flexible and useful in many situations. It provides plugin interfaces for extending the URI schemes and MIME types for which thumbnails can be generated as well as for replacing the storage backend that is used to store the thumbnails on disk. Tumbler's functionality can also be extended via specialized thumbnailer services implemented in accordance to the thumbnail management D-Bus specification. Website: https://gitlab.xfce.org/xfce/tumbler/ Release notes for 4.17.0 ======================== [Please note that this is a development release.] - Dependency Changes: - GLib >= 2.56.0 - gdk-pixbuf >= 2.36.2 - libxfce4util >= 4.17.1 - New Features: - Add support for thumbnail size x-large and xx-large (#51) - desktop-thumbnailer: Allow to override configuration in desktop files (#52) - desktop-thumbnailer: Allow for thumbnailer override (#53) - Try all available thumbnailers before declaring failure (#50) - Add a corresponding systemd user service for the D-Bus session services (#14) - Support shared thumbnail repositories of the freedesktop.org thumbnail spec - Performance Improvement: - pixbuf-thumbnailer: Stop animated image loading at first frame (#48) - pixbuf-thumbnailer: Increase loader buffer size (!19) - Code Refactoring: - Cleanup: Avoid code duplication - Use GLib structured logging - Debug: Add some config-file-related messages (#23) - Error handling: Fit to the spec and complete message if needed (#49) - Debug: Add or adjust some traces and dumps - Debug: Convert dump functions to `GString, g_debug()` - Debug: Prefer runtime to compile-time check for logging - Cleanup: Use `g_file_peek_path()` when appropriate - Cleanup: Remove deprecated GNOME build and TODO file - Do not translate warning messages - Define error messages in `tumbler/tumbler-error.h` - poppler-thumbnailer: Fix deprecation warning - ffmpeg-thumbnailer: Fix deprecation warning - Fix warnings from scan-build (Clang 13.0) - Fix `-Wclobbered` compilation warnings - Use GLIB_VERSION_MIN/MAX_REQUIRED/ALLOWED - Remove TUMBLER_ADD_INTERFACE (!16) - Fix compilation warnings (!16) - autoconf: Some updates (!16) - Remove GSourceFunc casts (!13) - Bug Fixes: - gepub-thumbnailer: Add missing sanity check - Reserve some third-party API messages to debug logging (#10, #29) - Set the priority of external thumbnailers to 0 - Revert "Set Max file sizes." - xdg-cache: Add missing sanity check - xdg-cache: Remove temporary file when saving failed - xdg-cache: Set thumbnail permissions to 600 - pixbuf-thumbnailer: Try to ignore `GDK_PIXBUF_ERROR_CORRUPT_IMAGE` - Use microsecond precision for last modification time (#15, !20) - poppler-thumbnailer: Fix error handling - pixbuf-thumbnailer: Simplify error handling - font-thumbnailer: Fix error handling - Cache cleanup when a request for a URI fails (#22) - jpeg-thumbnailer: Do not use low quality embedded thumbnail (#37) - gst-thumbnailer: Fix error handling - ffmpeg-thumbnailer: Fix error handling - odf-thumbnailer: Fix error handling - xdg-cache: Ensure read_thumbnail_info() always sets an error on failure - xdg-cache: Chain-up to parent in `finalize()` - desktop-thumbnailer: Fill in `finalize()` - gepub-thumbnailer: Fix a memory leak - desktop-thumbnailer: Fix some memory leaks - desktop-thumbnailer: Fix error handling - Fix some priority issues - pixbuf-thumbnailer: Use a mime-type-specific loader when possible (#20, #32, #36, !18) - raw-thumbnailer: Check for all possible pkg-config files (#44, !18) - Translation Updates: Albanian, Arabic, Armenian (Armenia), Basque, Belarusian, Bengali, Bulgarian, Catalan, Chinese (China), Chinese (Hong Kong), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, Eastern Armenian, English (Australia), English (United Kingdom), Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kabyle, Kazakh, Korean, Lithuanian, Malay, Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Uyghur
Source Code Repository
Reporting Bugs
- Reporting Bugs – Open bug reports and how to report new bugs