Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
xfce:tumbler:available_plugins [2022/01/02 08:32] – [Customized Thumbnailer for text-based documents] gaelxfce:tumbler:available_plugins [2023/07/04 15:45] (current) – Fix quoting in Exec commands gael
Line 12: Line 12:
   * **[[#Customized Thumbnailer for comic book archives|Customized Thumbnailer for comic book archives]]**   * **[[#Customized Thumbnailer for comic book archives|Customized Thumbnailer for comic book archives]]**
   * **[[#Customized Thumbnailer for webp content|Customized Thumbnailer for webp content]]**   * **[[#Customized Thumbnailer for webp content|Customized Thumbnailer for webp content]]**
 +  * **[[#Customized Thumbnailer for stl content|Customized Thumbnailer for stl content]]**
  
 ---- ----
Line 66: Line 67:
 ! Disable the plugin, the values ''true'' and ''false'' are accepted. ! Disable the plugin, the values ''true'' and ''false'' are accepted.
 ? Priority ? Priority
-! Numeric value to control the priority of the plugin. If plugins can provide thumbnails for the same scheme + mime-type combination, the plugin with the highest priority is used first.+! Numeric value to control the priority of the plugin. If two plugins can provide thumbnails for the same scheme + mime-type combination, the plugin with the highest priority is used first.
 ? Locations ? Locations
 ! A ;-separated path list the plugin will be used for. If the source file is not a child of one of the locations, the plugin won't be used and another plugin with a lower priority will be tried. Absolute paths, environment variables, ''~/'' and ''~username/'' are allowed. Leave empty to allow all locations. ! A ;-separated path list the plugin will be used for. If the source file is not a child of one of the locations, the plugin won't be used and another plugin with a lower priority will be tried. Absolute paths, environment variables, ''~/'' and ''~username/'' are allowed. Leave empty to allow all locations.
Line 72: Line 73:
 ! A ;-separated path list the plugin will not be used for. If the source file is a child of one of the locations, the plugin won't be used and another plugin with a lower priority will be tried. Absolute paths, environment variables, ''~/'' and ''~username/'' are allowed. Leave empty to exclude nothing. Please note that paths in ''Excludes'' precede those in ''Locations''. ! A ;-separated path list the plugin will not be used for. If the source file is a child of one of the locations, the plugin won't be used and another plugin with a lower priority will be tried. Absolute paths, environment variables, ''~/'' and ''~username/'' are allowed. Leave empty to exclude nothing. Please note that paths in ''Excludes'' precede those in ''Locations''.
 ? MaxFileSize ? MaxFileSize
-! Maximum size of the source file the plugin will still try to generate a plugin for. The size is in bytes, 0 disabled the check.+! Maximum size of the source file the plugin will still try to generate a thumbnail for. The size is in bytes, 0 disables the check
 + 
 +As of Tumbler 4.17.0 (first stable release 4.18.0), these settings extend to [[#customized_thumbnailers|external thumbnailers]] of the desktop-thumbnailer plugin, by adding the group "X-Tumbler Settings" to the ''.thumbnailer'' files. Further instructions and an example are given at the end of the ''tumbler.rc'' file.
  
 [[|Back to Top]] [[|Back to Top]]
Line 100: Line 103:
 ===== Customized Thumbnailers ===== ===== Customized Thumbnailers =====
 As of version 0.2.0, the desktop thumbnailer functionality has been added back into tumbler. This functionality supports custom ''.thumbnailer'' files placed in the ''XDG_DATA_DIRS/thumbnailers'' directories and the ''XDG_DATA_HOME/thumbnailers'' directory (which defaults to ''~/.local/share/thumbnailers''). The former is the place for system wide thumbnailers (normally in ''/usr/share/thumbnailers''), while the latter is the preferred place for the user's customized thumbnailers (see below). As of version 0.2.0, the desktop thumbnailer functionality has been added back into tumbler. This functionality supports custom ''.thumbnailer'' files placed in the ''XDG_DATA_DIRS/thumbnailers'' directories and the ''XDG_DATA_HOME/thumbnailers'' directory (which defaults to ''~/.local/share/thumbnailers''). The former is the place for system wide thumbnailers (normally in ''/usr/share/thumbnailers''), while the latter is the preferred place for the user's customized thumbnailers (see below).
 +
 +Since 4.17.0 (first stable release 4.18.0), in case of several ''.thumbnailer'' files with the same name in the thumbnailer directories, the one placed in the highest priority directory override all the others.
 +
  
 ==== Customized Thumbnailer for .dds files ==== ==== Customized Thumbnailer for .dds files ====
Line 111: Line 117:
 Name=dds Thumbnailer Name=dds Thumbnailer
 MimeType=image/x-dds; MimeType=image/x-dds;
-Exec=/usr/bin/convert -thumbnail %s %i %o+Exec=convert -thumbnail %s %i %o
 </file> </file>
   - Ensure that a dds mimetype exists in your system (you can view mimetypes with the Xfce4 Mime Type Editor). If it does not exist, create the necessary mime file:<file txt ~/.local/share/mime/packages/dds.xml><?xml version="1.0" encoding="UTF-8"?>   - Ensure that a dds mimetype exists in your system (you can view mimetypes with the Xfce4 Mime Type Editor). If it does not exist, create the necessary mime file:<file txt ~/.local/share/mime/packages/dds.xml><?xml version="1.0" encoding="UTF-8"?>
Line 134: Line 140:
 Name=Folder Thumbnailer Name=Folder Thumbnailer
 MimeType=inode/directory; MimeType=inode/directory;
-Exec=/usr/bin/folder-thumbnailer %s %i %o %u+Exec=sh -c '~/bin/folder-thumbnailer "$@"'%s %i %o %u
 </file> </file>
  
Line 158: Line 164:
 Don't forget to give execution permission to the file: Don't forget to give execution permission to the file:
  
-  chmod u+x /usr/bin/folder-thumbnailer+  chmod u+x ~/bin/folder-thumbnailer
      
 and to restart Thunar and Tumbler so that the new folder mime type is taken into account. and to restart Thunar and Tumbler so that the new folder mime type is taken into account.
Line 174: Line 180:
 Name=Text Thumbnailer Name=Text Thumbnailer
 MimeType=text/plain;text/html;text/css; MimeType=text/plain;text/html;text/css;
-Exec=/usr/local/bin/textthumb %s %i %o+Exec=sh -c '~/bin/textthumb "$@"'%s %i %o
 </file> </file>
  
Line 193: Line 199:
  
 ==== Customized Thumbnailer for comic book archives ==== ==== Customized Thumbnailer for comic book archives ====
-A thumbnailer for comic book archives (cbr, cbz, cbt, cb7) can be created using the comicthumb utility (search for it your distro's repositories). Use the following thumbnailer file: +A thumbnailer for comic book archives (cbr, cbz, cbt, cb7) can be created using the comicthumb utility (search for it your distro's repositories). If not already present as ''/usr/share/thumbnailers/comicthumb.thumbnailer'', create the following thumbnailer file: 
-<file txt /usr/share/thumbnailers/comicthumb.thumbnailer>+<file txt ~/.local/share/thumbnailers/comicthumb.thumbnailer>
 [Thumbnailer Entry] [Thumbnailer Entry]
 TryExec=comicthumb TryExec=comicthumb
Line 202: Line 208:
 </file> </file>
  
-==== Customized Thumbnailer for animated webp content ====+==== Customized Thumbnailer for webp content ====
 Note: Make sure there is an image/webp mimetype defined in your system. Note: Make sure there is an image/webp mimetype defined in your system.
-<file txt /usr/share/thumbnailers/webp.thumbnailer>+<file txt ~/.local/share/thumbnailers/webp.thumbnailer>
 [Thumbnailer Entry] [Thumbnailer Entry]
 Version=1.0 Version=1.0
Line 211: Line 217:
 Name=webp Thumbnailer Name=webp Thumbnailer
 MimeType=image/webp; MimeType=image/webp;
-Exec=/usr/local/bin/webpthumbs %s %i %o+Exec=sh -c '~/bin/webpthumbs "$@"'%s %i %o
 </file> </file>
  
 And supporting script: And supporting script:
  
-<file sh /usr/local/bin/textthumb>+<file sh ~/bin/webpthumbs>
 #!/bin/bash #!/bin/bash
  
-/usr/bin/webpmux -get frame 1 "$2" -o /tmp/w.webp > /dev/null 2<&+if tempfile=$(mktemp) && /usr/bin/webpmux -get frame 1 "$2" -o "$tempfile"; then 
- +  /usr/bin/convert -thumbnail "$1" "$tempfile" "$3" 
-if [ $? -eq 0 ]; then +
- /usr/bin/convert -thumbnail "$1" "/tmp/w.webp" "$3" +
 else else
- /usr/bin/convert -thumbnail "$1" "$2" "$3"+  /usr/bin/convert -thumbnail "$1" "$2" "$3"
 fi fi
  
-rm /tmp/w.webp+[ -f "$tempfile" ] && rm "$tempfile" 
 +</file> 
 + 
 +==== Customized Thumbnailer for stl content ==== 
 +<file txt ~/.local/share/thumbnailers/stl.thumbnailer> 
 +[Thumbnailer Entry] 
 +Version=1.0 
 +Encoding=UTF-8 
 +Type=X-Thumbnailer 
 +Name=STL Thumbnailer 
 +MimeType=model/stl; 
 +Exec=sh -c '~/bin/stl-thumbnailer "$@"' _ %i %o %s 
 +</file> 
 + 
 +And supporting script: 
 + 
 +<file sh ~/bin/stl-thumbnailer> 
 +#!/bin/bash 
 + 
 +if (($# < 3)); then 
 +  echo "$0: input_file_name output_file_name size" 
 +  exit 1 
 +fi 
 + 
 +INPUT_FILE=$1 
 +OUTPUT_FILE=$2 
 +SIZE=$3 
 + 
 +if TEMP=$(mktemp --directory --tmpdir tumbler-stl-XXXXXX); then 
 +  cp "$INPUT_FILE" "$TEMP/source.stl" 
 +  echo 'import("source.stl", convexity=10);' > "$TEMP/thumbnail.scad" 
 +  openscad --imgsize "500,500" -o "$TEMP/thumbnail.png" "$TEMP/thumbnail.scad" 2>/dev/null 
 +  convert -thumbnail "$SIZE" "$TEMP/thumbnail.png" "$OUTPUT_FILE" &>/dev/null 
 +  rm -rf $TEMP 
 +fi
 </file> </file>