From 6776568b6c73f92143ab7a9d8ab7117bbd81bd3f Mon Sep 17 00:00:00 2001 From: Ivan Oleynikov Date: Mon, 30 May 2022 14:56:29 +0300 Subject: [PATCH] Make imv-dir act like imv when called with multiple arguments This commit allows user to select a few files and open only them using imv-dir. When user opens just one file (typically by double-clicking on it in a file manager), imv-dir will behave like it used to and open open the whole directory. I think this behavior is more reasonable doesn't add much complexity to imv-dir. Now imv-dir conveniently accomodates the three use-cases which I think must be quite common: 1. If user wants to cycle through all files in current directory, they can just double click on one of them. 2. If the user wants to cycle through just a few specific files (say, if they have many files in this directory and don't want to see them all), they select them and hit Enter. 3. If the user wants to see just one file and doesn't care about cycling through them, they just click on one file. The cycling is available, but they don't have to use it. For me, 1 and 2 were the main use-cases and to accomodate them I had to switch between imv and imv-dir as default image viewers, which is rather suboptimal. Now both are cheaply accomodated by imv-dir. --- contrib/imv-dir | 8 ++++++-- files/imv-dir.desktop | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/contrib/imv-dir b/contrib/imv-dir index d9fb46f..b50ddcc 100755 --- a/contrib/imv-dir +++ b/contrib/imv-dir @@ -1,2 +1,6 @@ -#!/bin/sh -exec imv -n "$1" "$(dirname "$1")" +#!/bin/sh -efu +if [ $# -ge 2 ]; then + exec imv "$@" +else + exec imv -n "$1" "$(dirname "$1")" +fi diff --git a/files/imv-dir.desktop b/files/imv-dir.desktop index 5f04f86..85a8b24 100644 --- a/files/imv-dir.desktop +++ b/files/imv-dir.desktop @@ -4,7 +4,7 @@ Name[en_US]=imv GenericName=Image viewer GenericName[en_US]=Image viewer Comment=Fast freeimage-based Image Viewer | Open all images in a directory -Exec=imv-dir %f +Exec=imv-dir %F NoDisplay=true Terminal=false Type=Application