Putting Context Menus in Nautilus to Practical Uses

Dmitri Popov

Productivity Sauce

Nov 30, 2015 GMT
Dmitri Popov

Dolphin is not the only file browser that makes it possible to add custom commands to the context menu. If you happen to use Nautilus as your preferred file browser, you can add commands by placing executable scripts in the ~/.local/share/nautilus/scripts/ directory. In addition to popular languages like Python and Perl, you can use good old Bash to write scripts. When a script is called, Nautilus automatically sets a handful of variables that can be used in the script. Here is a simple Bash script that uses the mogrify tool to resize the currently selected image files:

#!/bin/bash
FILE=`echo $NAUTILUS_SCRIPT_SELECTED_URIS | sed 's@file://@@g'`
mogrify -resize "1600x1600>" $FILE

The script obtains full file paths via the $NAUTILUS_SCRIPT_SELECTED_URIS variable, and then uses the sed tool to remove the leading file:// string from them. Instead of hardwiring the resize value into the script, you can use the Zenity tool to specify the desired value on the fly:

#!/bin/bash
ZENITY='/usr/bin/zenity'
FILE=`echo $NAUTILUS_SCRIPT_SELECTED_URIS | sed 's@file://@@g'`
SIZE=$(zenity --entry --title="Resize Image" --text="Size in pixels:")
mogrify $FILE -resize "1600x1600>"

Save the script under a descriptive name like Resize image, make it executable using the chmod +x Resize\ image command, and place the script into the ~/.local/share/nautilus/scripts/ directory. You can then run the script by right-clicking on selected files and choosing the Scripts | Resize image item in the context menu.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News