Giter Club home page Giter Club logo

thunar-custom-actions's Introduction

Thunar Custom Actions

Build Status

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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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

Type GUI
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 fisrt 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:

License

license

thunar-custom-actions's People

Contributors

cytopia avatar matiasw avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.