Sxiv: [solicitud de función] Cargue todas las imágenes en la misma carpeta

Creado en 12 oct. 2014  ·  3Comentarios  ·  Fuente: muennich/sxiv

Si hago clic en una imagen en el administrador de archivos, solo se abre la imagen en la que se hizo clic. Realmente me gustaría ver la función para cargar todas las imágenes en la misma carpeta para poder navegar a través de las imágenes.

Comentario más útil

Todos 3 comentarios

sxiv está diseñado para usuarios de línea de comandos. Utilice un script de envoltura para eso. Google sxiv-rifle o utilice el siguiente:

#!/bin/sh

if [ $# -ne 1 -o ! -f "$1" ]; then
    echo "usage: ${0##*/} FILE" >&2
    exit 1
fi

file -i "$(dirname "$1")"/* \
    | awk -F ': *' -v f="$1" '
        $2 ~ "^image" {
            files[cnt++] = $1;
            if ($1 == f)
                n = cnt;
        }
        END {
            for (i = 0; i < cnt; i++)
                print files[i] | "sxiv -i -n " n;
        }'

Sería bueno si la opción -n también pudiera tomar "nombre de archivo" en lugar de solo "número de índice", como abrir un administrador de archivos con un archivo específico seleccionado. Con esto, puede usar algo como sxiv -n x.png *.png

diff --git a/options.c b/options.c
index de02407..b9ca468 100644
--- a/options.c
+++ b/options.c
@@ -45,6 +45,7 @@ void parse_options(int argc, char **argv)
    int n, opt;
    char *end, *s;
    const char *scalemodes = "dfwh";
+   char *opt_n = NULL;   /* -n (starting picture number) can be index or filename */

    progname = strrchr(argv[0], '/');
    progname = progname ? progname + 1 : argv[0];
@@ -117,10 +118,7 @@ void parse_options(int argc, char **argv)
                _options.from_stdin = true;
                break;
            case 'n':
-               n = strtol(optarg, &end, 0);
-               if (*end != '\0' || n <= 0)
-                   error(EXIT_FAILURE, 0, "Invalid argument for option -n: %s", optarg);
-               _options.startnum = n - 1;
+               opt_n = optarg;
                break;
            case 'N':
                _options.res_name = optarg;
@@ -172,6 +170,21 @@ void parse_options(int argc, char **argv)
    _options.filenames = argv + optind;
    _options.filecnt = argc - optind;

+   if (opt_n != NULL) {
+       for (n = 0; n < _options.filecnt; n++) {
+           if (strcmp(_options.filenames[n], opt_n) == 0)
+               break;
+       }
+       if (n < _options.filecnt) {
+           _options.startnum = n;
+       } else {
+           n = strtol(opt_n, &end, 0);
+           if (*end != '\0' || n <= 0)
+               error(EXIT_FAILURE, 0, "Invalid argument for option -n: %s", optarg);
+           _options.startnum = n - 1;
+       }
+   }
+
    if (_options.filecnt == 1 && STREQ(_options.filenames[0], "-")) {
        _options.filenames++;
        _options.filecnt--;

EDITAR: Acabo de notar que ya hay una solicitud de extracción (https://github.com/muennich/sxiv/pull/371).

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

rpdelaney picture rpdelaney  ·  9Comentarios

Knusper picture Knusper  ·  4Comentarios

anko picture anko  ·  4Comentarios

SammysHP picture SammysHP  ·  3Comentarios

se7en-x230 picture se7en-x230  ·  5Comentarios