Xfce Wiki

Sub domains
 

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

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.

Back To Top


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)

Back To Top


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

Previous Releases

Back to Top


Source Code Repository

Reporting Bugs

Back To Top


Return to Main Xfce documentation page