Sxiv: [solicitação de recurso] Carregar todas as imagens na mesma pasta

Criado em 12 out. 2014  ·  3Comentários  ·  Fonte: muennich/sxiv

Se eu clicar em uma imagem no gerenciador de arquivos, ele abrirá apenas a imagem clicada. Eu realmente gostaria de ver o recurso para carregar todas as fotos na mesma pasta para que eu pudesse navegar pelas fotos.

Comentários muito úteis

Minha solução alternativa para isso:
https://github.com/Parveshdhull/misc/tree/master/linux

Todos 3 comentários

sxiv é projetado para usuários de linha de comando. Por favor, use um script de wrapper para isso. Google sxiv-rifle ou use o seguinte:

#!/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;
        }'

Seria bom se -n option também pudesse receber "nome do arquivo" em vez de apenas "número do índice", como abrir um gerenciador de arquivos com um arquivo específico selecionado. Com isso, você pode 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--;

EDIT: Acabei de notar que já existe uma solicitação de pull (https://github.com/muennich/sxiv/pull/371).

Minha solução alternativa para isso:
https://github.com/Parveshdhull/misc/tree/master/linux

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Knusper picture Knusper  ·  4Comentários

rpdelaney picture rpdelaney  ·  9Comentários

se7en-x230 picture se7en-x230  ·  5Comentários

astier picture astier  ·  17Comentários

crocket picture crocket  ·  6Comentários