DIY photography tools
Follow the Script
DIY tools and shell scripts can make for a smooth photographic workflow on Linux.
Photographic workflow is more than just keeping tabs on your photo library and processing RAW files. There are plenty of other tasks you might want to manage: from backing up RAW files and photos when you are on the move, to publishing your best work on the web.
Developing custom tools that keep a photographic workflow smooth is arguably as much fun as taking photos. So for several years now, I've been working on a number of simple applications and scripts that I use on a daily basis. All the tools described in this article are released under the GPLv3 license.
Little Backup Box
When you are traveling, having a backup of all your photos and RAW files makes a lot of sense. Even if your camera has two card slots, it still pays to have a separate backup on a different storage media. Of course, you can spend serious money on something like WD My Passport Wireless SSD. Aside from the price, this otherwise clever device has one major drawback: You can't tweak, extend, or upgrade it. Theoretically, you can upgrade storage, but doing this requires neurosurgery-level skills and most certainly voids the warranty. And as soon as the battery inside the device dies, you are left with an expensive paperweight.
Instead of paying through the nose for a commercial product with limited functionality and a nonexistent upgrade path, you can easily transform a Raspberry Pi into a simple yet versatile backup device using Little Backup Box [1].
Opting for the DIY solution offers several advantages. To begin with, Little Backup Box is based on mature and reliable open source tools. Depending on your skills, you can customize, extend, and improve Little Backup Box to meet your specific needs. For example, with a bit of work, you can implement cloud backup functionality, add hardware buttons to trigger a backup action, and much more.
Little Backup Box is designed to run on a Raspberry Pi, which is by far the most popular single-board computer on the market. You can buy it, along with the rest of the required parts, from practically any reputable store. Using the available parts, you can build a tiny Little Backup Box device based on a Raspberry Pi Zero that fits any pocket and can be powered by a small power bank (Figure 1). Or you can opt for a more powerful and versatile device based on Raspberry Pi 3. Better still, thanks to its modular design, you can easily replace the battery, upgrade storage, and swap any faulty component. More importantly, Little Backup Box comes with a script that automates the entire installation and configuration process.
To build your own photo backup device, you need three things: a Raspberry Pi, a power supply or power bank, a microSD card, and a high-capacity USB drive that will act as a backup storage device. Theoretically, it's possible to use Little Backup Box with a conventional hard disk or solid-state drive, but you need to either use a powered USB hub or a hard disk with its own power source.
Transforming a Raspberry Pi into a photo backup device is a three-step procedure. First, create a bootable microSD card with the Raspbian Lite system on it. Second, boot the Raspberry Pi using the created card, run the raspi-config
tool and configure the system. Also, edit the /etc/wpa_supplicant/wpa_supplicant.conf
file to connect the Raspberry Pi to the desired wireless network. Third, run the command
curl -sSL https://is.gd/littlebackupbox | bash
to install Little Backup Box. That's all there is to it.
Little Backup Box supports three backup modes: Card backup (automatically backs up the contents of a storage card to an external storage device), Camera backup (transfers photos, RAW files, and videos from the camera connected directly to the Raspberry Pi), and Remote control (access all features via a web interface). The first two modes make it possible to run backup operations without user interaction, while the Remote control mode allows you to activate any of the two modes manually. In addition to that, the Remote control mode allows you to enable the DLNA and Samba servers, view system info, and shut down the Raspberry Pi.
During installation, the installer prompts you to choose the default mode. If you want to use Little Backup Box strictly as a backup device, choose either the Card backup or Camera backup mode. To access all the available features, choose the Remote control mode.
Using Little Backup Box in the Card backup or Camera backup modes couldn't be easier (Figure 2). Boot the Raspberry Pi and plug the backup storage device into it. Depending on which mode Little Backup Box operates in, connect either a card reader with a card or your camera. The backup operation then starts automatically, and the Raspberry Pi shuts down as soon as the backup is complete.
In the Remote control mode, the Raspberry Pi connects to the specified wireless network, and you can access Little Backup Box's web interface using any device on the same network. Point the browser to http://ipaddress:8000, where ipaddress is the IP address of the Raspberry Pi, and you should see Little Backup Box's web interface.
Otto
When it comes to transferring RAW files and photos from a storage card or directly from your camera, there are plenty of tools at your disposal: from dedicated tools like Rapid Photo Downloader, to the Import module in digiKam. Although these tools excel at what they do, they might not always fit your particular needs. For example, I prefer to store important information about a photo in the Exif metadata Comments field. The information includes the camera model, lens, and weather conditions. This way, when I view the photo in digiKam, I can immediately see what camera and lens combination I used to take the photo and what the weather was on that particular day. I also wanted to streamline the import procedure, so it would not only transfer files, but also geotag, rename, and organize them by date – all in one go.
The Otto shell script [2] does all of this with practically no user interaction. During the first run, the script prompts you to specify the required info, such as the destination directory for the transferred RAW files and photos, the desired copyright notice, a key for the Dark Sky weather service API, and a Notify key. After that, using Otto to transfer RAW files and photos from a storage card is as easy as it gets. Plug a card reader with a storage card into your machine, mount the card, and note the path to it. Run the command
./otto.sh /path/to/card [OPTION]
(where /path/to/card
is the path to the mounted card). If you run the script without any options, it assumes that the photos it's about to import are already geotagged. If the photos are not geotagged, you have three options. Using the -g
followed by the name of the city where the photos were taken, you can do coarse geotagging. If you have a GPX file, you can specify the path to it with the -c
parameter, and the script geo-correlates the photos for you. And in case you have multiple GPX files spanning several days, use the -m
parameter followed by the path to the folder containing GPX files. This instructs the script to merge the GPX files before performing geo-correlation. Once RAW files and photos have been transferred and geotagged, the script obtains the required info and writes it, along with the specified copyright notice, into the appropriate fields in Exif metadata. Once this task is completed, the script renames the transferred files and neatly organizes them by date. Finally, if you've provided a Notify key, the script sends a notification to your Android device running the Notify app [3] to let you know that the import process is finished.
To install the script, clone the project's Git repository using the command
git clone https://gitlab.com/dmpop/otto.git
or download the latest version of the script from the project's page. On openSUSE, move the otto.sh
script to the ~/bin
directory. On other Linux distributions, you can install the script using the following commands:
sudo cp otto.sh /usr/local/bin/otto sudo chown root:root /usr/local/bin/otto sudo chmod 755 /usr/local/bin/otto
Finally, install the required packages. On openSUSE, this can be done using the command:
sudo zypper in getopt bc jg curl ExifTool
Konbini
There are plenty of reasons to like KDE. One of them is the ability to add context actions to the Dolphin file browser. Need to quickly resize a photo directly in the file browser? Create a context action, and you can resize any photo by right-clicking on the file and choosing the action. Need to upload a photo to your blog? Create another action, and you are good to go.
While the process of creating custom context actions is not particularly complicated, it does consist of several steps. If you'd rather not spend time on that, you might want to give Konbini [4] a try. This is a collection of actions that let you perform several useful actions (Figure 3): resizing and recompressing photos, renaming photos using Exif metadata, and converting RAW files into JPEG format. In addition to that, Konbini features tools for adding comments to photos, geotagging photos, as well as viewing the currently selected geotagged photo on OpenStreetMap. If you happen to run openSUSE, Debian, or Ubuntu, you can deploy Konbini using a dedicated installer script. Run the command
curl -sSL https://is.gd/konbini | bash
in the terminal, and it will install all the required packages and files.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
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.
News
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.