Thunar Custom Actions
The following actions can also be used in nautilus or any other file manager that supports custom actions. I personally prefer thunar because of speed.
If any of the actions don't work anymore (especially the upload ones), please report here, so I can fix it.
Latest added action:
thunar-gpg-sign.sh
thunar-gpg-verify-signature.sh
thunar-video-to-gif.sh
Actions
Multimedia
thunar-convert-to-png.sh
This action converts any image file to a png image. (Should also work with layered PSD files).
Requirements: convert
Thunar settings:
name | value |
---|---|
Name | Convert to png |
Command | thunar-convert-to-png.sh -f %f |
File pattern | * |
Appear on | Image files |
thunar-convert-to-jpg.sh
This action converts any image file to a jpg image. (Should also work with layered PSD files).
Requirements: convert
Thunar settings:
name | value |
---|---|
Name | Convert to jpg |
Command | thunar-convert-to-jpg.sh -f %f |
File pattern | * |
Appear on | Image files |
thunar-media-info.sh
This action pops up a zenity-based window and displays encoding information for an audio or video file.
Requirements: zenity
and ffmpeg
Thunar settings:
name | value |
---|---|
Name | Media info |
Command | thunar-media-info.sh -f %f -t %n |
File pattern | * |
Appear on | Audio files, Video files |
thunar-video-to-gif.sh
This action pops up a zenity-based window (or via read
on the shell) asking for the final video width and creates a high quality gif from your input video.
High quality gif: This is achieved by doing a two-way-run. The first run creates the color palette from the video and the second run creates the gif based on that palette.
Requirements: ffmpeg
Optional: zenity
for gui output
Note: Works for cli-only (-c
) or via zenity
-gui
Thunar settings:
name | value |
---|---|
Name | Video to Gif |
Command | thunar-video-to-gif.sh -f %f |
File pattern | * |
Appear on | Video files |
Security
thunar-openssl-encrypt-decrypt.sh
This action will encrypt/decrypt a file based on openssl's symmetric encryption.
Requirements: openssl
and zenity
Thunar settings:
name | value |
---|---|
Name | Openssl Encrypt/Decrypt |
Command | thunar-openssl-encrypt-decrypt.sh -f %f |
File pattern | * |
Appear on | Everything |
For detailed explanation and screenshots see this blog entry: alan-mushi.github.io
thunar-gpg-encrypt.sh
This action pops up a zenity-based window letting you choose from your gpg recipients and encrypts and signs the file with your chosen gpg key. (Asymmetric encryption).
Requirements: gpg
, zenity
and pinentry-gtk-2
Thunar settings:
name | value |
---|---|
Name | GPG Encrypt |
Command | thunar-gpg-encrypt.sh -f %f |
File pattern | * |
Appear on | Everything |
thunar-gpg-decrypt.sh
This action pops up a terminal window for password entry and decrypts the file with your private gpg key. (Asymmetric encryption).
Requirements: gpg
Todo: Make gui-based password entry form.
Thunar settings:
name | value |
---|---|
Name | GPG Decrypt |
Command | urxvtcd -e thunar-gpg-decrypt.sh -f %f |
File pattern | * |
Appear on | Other files |
thunar-gpg-sign.sh
This action pops up a zenity-based window, let's you choose from a list of your secret keys and creates an ascii-armored separate signature file.
Requirements: gpg
and zenity
Thunar settings:
name | value |
---|---|
Name | GPG Sign |
Command | thunar-gpg-sign.sh -f %f |
File pattern | * |
Appear on | Other files |
thunar-gpg-info.sh
This action pops up a zenity-based window and displays information about the encryption of the current file. (Asymmetric encryption).
Requirements: gpg
and zenity
Thunar settings:
name | value |
---|---|
Name | GPG Info |
Command | thunar-gpg-info.sh -f %f |
File pattern | * |
Appear on | Other files |
thunar-gpg-verify-signature.sh
This action pops up a zenity-based window and displays verification information about the gpg signature.
Requirements: gpg
and zenity
Thunar settings:
name | value |
---|---|
Name | GPG Verify Signature |
Command | thunar-gpg-verify-signature.sh.sh -f %f |
File pattern | * |
Appear on | Other files |
Uploads
thunar-paste-to-gist.sh
This action pastes a text file to gist (in private mode) and pops up a zenity-based window displaying the paste url (shortened). Additionally the paste url will also be copied to clipboard.
Requirements: zenity
and gist
Thunar settings:
name | value |
---|---|
Name | Paste to gist |
Command | thunar-paste-to-gist.sh -f %f |
File pattern | * |
Appear on | Text files |
thunar-paste-to-pastebin.sh
This action pastes a text file to pastebin and pops up a zenity-based window displaying the paste url.
Requirements: zenity
and curl
Note: The pastebin API only allows 25 pastes per free account per every 24 hours. I have added two API keys inside the source. If however you plan on using this thunar action, make sure to get your own API key and replace it. The second thought I had is not to use the API directly, but try to use the normal upload form via curl so that no API key is required at all.
Todo: Expand file type recognition to set the proper syntax highlighting scheme for var PB_API_FORMAT
.
Thunar settings:
name | value |
---|---|
Name | Paste to pastebin |
Command | thunar-paste-to-pastebin.sh -f %f |
File pattern | * |
Appear on | Text files |
thunar-upload-to-imgur.sh
This action uploads an image file to imgur and pops up a zenity-based window displaying the upload url.
Requirements: zenity
, gawk
, curl
Note: Upload key is included :-)
Todo: Evaluate if it is possible to get rid of gawk
requirement.
Thunar settings:
name | value |
---|---|
Name | Upload to imgur |
Command | thunar-upload-to-imgur.sh -f %f |
File pattern | * |
Appear on | Image files |
thunar-upload-to-postimage.sh
This action uploads an image file to postimage.org and pops up a zenity-based window displaying the upload url.
Requirements: zenity
, gawk
, curl
Todo: Evaluate if it is possible to get rid of gawk
requirement.
Thunar settings:
name | value |
---|---|
Name | Upload to postimage |
Command | thunar-upload-to-postimage.sh -f %f |
File pattern | * |
Appear on | Image files |
General Setup
All actions require the -f
parameter which specifies the file to work on. Prior Thunar/Nautilus integration you can test them all on the command line to make sure they do what they are supposed to do:
thunar-action.sh -f /path/to/file
The equivilent thunar command would be:
/path/to/thunar-action.sh -f %f
Note about substitutions in Thunar:
%f The path to the first selected file
%F The paths to all selected files
%d Directory containing the file that is passed in %f
%D Directory containing the files that are passed in %F
%n The first selected filename (without path)
%N The selected filenames (without paths)
TODO / Ideas
- Image: convert from ... to anything via list (dropdown or radio) of target formats (jpg, png, gif, etc). Possibly also some convert options via slider or checkboxes.
- Video: encode/re-encode videos to target format (dropdown or radio for target formats). Also some ffmpeg quality options via slider, textfields and/or checkboxes
- Video to gif
Contributions
Thanks to the following for contributing: