Présentation de SXIV - Un visualiseur d'image minimaliste

31
21
déc.
2020
Audiovisuel

Qu’est-ce que SXIV ?

SXIV est un visualiseur d’image simple pour X, comme son sigle anglais le laisse entendre : Simple X Image Viewer. SXIV supporte un grand nombre de formats d’image. Son interface est minimale et on a le choix de naviguer avec la souris ou le clavier.

Sommaire

Fonctionnalités

  • Deux modes d’opérations
    • Mode image : permet de visualiser une image. C’est le mode par défaut ;
    • Mode vignette (thumbnail) : permet de visualiser et de sélectionner différents aperçus d’images dans une grille.
  • Opérations de visualisation d’image
    • Agrandir l’image ;
    • Se déplacer dans l’image ;
    • Effectuer une rotation sur l’image.
  • Visualisation d’animation GIF
  • Mode diaporama. Permet de passer d’une image à l'autre automatiquement après un temps défini.

Interfaces

Commençons par l’interface visuelle de l’application et cela en mode image. Celle-ci consiste seulement d’une barre d’information située en bas de l’écran.

Interface SXIV Capture d’écran

Pour ce qui est du mode vignette, une grille des différents aperçus des images est affichée.

Interface vignette SXIV Capture d’écran

Utilisation

Pour utiliser SXIV il suffit de spécifier le chemin d'un ou des fichiers.

sxiv image_1.png ./un_dossier/image_2.jpg

Il est aussi possible de le faire avec des dossiers. On peut spécifier l’option -r si l’on veut chercher de manière récursive. Soit dans les dossiers spécifiés ainsi que leurs sous-dossiers.

sxiv ~/pictures/ -r

Interfaces utilisateur

La souris permet de réaliser les actions de base alors que le clavier possède une sélection d’actions plus complète.

Souris

  • Clic gauche : si la souris est dans la partie droite de l’écran on passe à l’image suivante, si elle est située à gauche on retourne à l’image précédente ;
  • Clic droit : active le mode vignette (thumbnail) ;
  • Molette de la souris :
    • permet d’agrandir et de réduire l’image ;
    • le clic permet de se déplacer dans l’image par rapport au positionnement du curseur, et cela pendant que le bouton reste enfoncé.

Clavier

Il existe plusieurs raccourcis clavier, je vous invite à regarder la page du manuel qui se rapporte à SXIV pour une liste complète.

Tous modes
  • q : Quitte le programme.
  • r : Recharge l’image sélectionnée.
  • f : active le mode plein écran.
  • b : Bascule l’affichage de la barre d’information.
  • + et - : agrandit ou réduit la vue.
  • m : bascule le marquage de l’image sélectionnée.
Mode image
  • n ou la barre d’espace : passe à la prochaine image.
  • p ou backspace : passe à l’image précédente.

Navigation

  • h, j, k, l ou les flèches du clavier : permet de naviguer dans l’image.
  • H, J, K, L : permet de naviguer aux extrémités de l’image.

Agrandissement (zoom)

  • = : agrandit à 100%.
  • w : agrandit à 100% et proportionne l’image afin qu'elle couvre la fenêtre en entier.
  • W : proportionne l’image afin qu’elle couvre la fenêtre en entier.
  • e : proportionne l’image selon la largeur de la fenêtre.
  • E : proportionne l’image selon la hauteur de la fenêtre.

Rotation

  • < rotation de 90° dans le sens anti-horaire.
  • > rotation de 90° dans le sens horaire.
  • ? rotation de 180°.

Miroir

  • | : Inverse l’image horizontalement.
  • _ : inverse l’image verticalement.

Autres:

  • a : bascule l’antialiasing.
  • A : bascule la visibilité de la transparence de l’image.
  • s : bascule le mode diaporama. Un nombre peut être entré avant d’appuyer sur « s » afin de configurer le nombre de secondes avant de passer à une autre image.
Mode vignette
  • h, j, k, l ou les flèches du clavier : permet de naviguer dans la liste d’image.
  • R : recharge toutes les vignettes.

Configuration des raccourcis clavier

Pour configurer les raccourcis clavier, puisque le programme se veut simple et semble suivre la philosophie du groupe Suckless.org, il faut modifier le fichier source config.c et recompiler le programme. Mais puisque le programme utilise des bibliothèques courantes, donc se trouve probablement en paquet dans les dépôts de votre distribution, la compilation sur un système d’exploitation Linux est possible sans problème.

Options

  • -f: lance l’application en mode plein écran
  • -i: visualise les images dont les chemins ont été spécifiés dans l’entrée standard.
  • -o : lors de la fermeture, donne en sortie standard les chemins des fichiers marqués.
  • -r : cherche de manière récursive les dossiers spécifiés.
  • -S: démarre en mode diaporama (slideshow), un nombre qui définit le délai entre chaque image doit suivre cette option.

Extensions et configurations

Il est aussi possible d’utiliser SXIV dans des scripts en interagissant avec le programme par l’entrée et la sortie standard si on lance SXIV avec l’option -o. Les chemins des images marquées à l’aide de ctrl+m lors de l’utilisation de l’application sont envoyés à la sortie standard. Si on le démarre avec l’option -i, SXIV ouvrira les images dont les chemins ont été envoyés à son entrée standard.

On peut alors s'imaginer un script, ou une simple commande, qui copie ses fichiers sélectionnés dans un autre dossier.

Exemple :

sh
sxiv ~/pictures -o | xargs cp -t ~/pictures_selected -v

Ici l’argument -o spécifie que les chemins des fichiers marqués lors de l’utilisation de SXIV à l’aide de ctrl+m sont envoyés à la sortie standard. Cette sortie standard est ensuite redirigée, à l’aide de l’opérateur |, vers xargs. Ce programme envoie les fichiers en argument de cp. Ensuite cp copie les fichiers dans le dossier suivant l’argument -t. L’option -v permet de suivre le progrès des opérations de copies.

On peut aussi ajouter des raccourcis clavier à SXIV. Lorsque l’on appuie sur CTRL la prochaine touche du clavier est envoyée à un script externe situé à ~/.config/sxiv/exec/key-handler. Un script qui démontre cette fonctionnalité est inclus lors de l’installation et se situe à /usr/share/sxiv/exec/key-handler.

Il est aussi possible de personnaliser la partie gauche de la barre de statut qui affiche les informations du fichier sélectionné à l’aide d’un script. Ce script doit être situé à ~/.config/sxiv/exec/image-info. Un script d’exemple est disponible à /usr/share/sxiv/exec/image-info.

Conclusion

En conclusion, SXIV est un visualiseur d’image qui effectue sa tâche à l’aide d’une interface simple et complète. De plus, il offre des mécanismes qui permettent de le personnaliser et de l’utiliser dans toute sorte de scénarios. Entre autres pour filtrer manuellement des images. Donc, il est parfait pour les systèmes avec peu de ressources ou pour les gens qui préfèrent les programmes ayant des interfaces graphiques simples et une interface clavier complète.

Aller plus loin

  • # coquilles ?

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Salut,

    Merci pour la dépêche qui me fait découvrir ce visualiseur qui semble bien sympa.

    À la première lecture, j'ai été intrigué par certaines incohérences (comme \+ vs -) et la flopée d'options à la fin qui sont précédés de contre-obliques. Du coup, je suis allé voir le manuel pointé sur Mankier et il semble bien que les obliques arrières soient bien de trop (donc + et - pour le zoom, et juste les tirets pour les options.)
    De même, pour la partie sur les rotations, je m'attendais aux classiques demi et quart de tour horaire et anti-horaire (en fait ? et > et < donc) Mais en fait on parle des retournements (enfin je suppose que c'est ainsi qu'il faut traduire flip) par symétrie d'axe horizontale ou verticale (soit | ou _ respectivement.)

    Il y a d'autres choses notées en lisant le manuel, mais ma mémoire de poisson rouge (bel euphémisme pour une faible mémoire tampon) a oublié pendant que je rédigeais ce commentaire. Mais je pense que ce sera corrigé dans la foulée, sinon je les rajouterai en réponse à ce message.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Simple et efficace

    Posté par  (site web personnel) . Évalué à 4.

    Merci pour cette dépêche qui présente ce visualiseur d'image simple et efficace. Nul doute qu'il plaira aux adeptes d'interfaces minimalistes et utilisateurs de tiling WM.

    Je vais juste donner les deux exemples de scripts que tu cites afin que les curieux voient comment le configurer à leurs souhaits :

    /usr/share/sxiv/exec/key-handler

    #!/usr/bin/sh
    
    # Example for $XDG_CONFIG_HOME/sxiv/exec/key-handler
    # Called by sxiv(1) after the external prefix key (C-x by default) is pressed.
    # The next key combo is passed as its first argument. Passed via stdin are the
    # images to act upon, one path per line: all marked images, if in thumbnail
    # mode and at least one image has been marked, otherwise the current image.
    # sxiv(1) blocks until this script terminates. It then checks which images
    # have been modified and reloads them.
    
    # The key combo argument has the following form: "[C-][M-][S-]KEY",
    # where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X
    # keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix.
    
    rotate() {
    degree="$1"
    tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read file; do
    case "$(file -b -i "$file")" in
    image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;;
    *)           mogrify  -rotate "$degree" "$file" ;;
    esac
    done
    }
    
    case "$1" in
    "C-x")      xclip -in -filter | tr '\n' ' ' | xclip -in -selection clipboard ;;
    "C-c")      while read file; do xclip -selection clipboard -target image/png "$file"; done ;;
    "C-e")      while read file; do urxvt -bg "#444" -fg "#eee" -sl 0 -title "$file" -e sh -c "exiv2 pr -q -pa '$file' | less" & done ;;
    "C-g")      tr '\n' '\0' | xargs -0 gimp & ;;
    "C-r")      while read file; do rawtherapee "$file" & done ;;
    "C-comma")  rotate 270 ;;
    "C-period") rotate  90 ;;
    "C-slash")  rotate 180 ;;
    esac

    /usr/share/sxiv/exec/image-info

    #!/usr/bin/sh
    
    # Example for $XDG_CONFIG_HOME/sxiv/exec/image-info
    # Called by sxiv(1) whenever an image gets loaded.
    # The output is displayed in sxiv's status bar.
    # Arguments:
    #   $1: path to image file
    #   $2: image width
    #   $3: image height
    
    s="  " # field separator
    
    exec 2>/dev/null
    
    filename=$(basename -- "$1")
    filesize=$(du -Hh -- "$1" | cut -f 1)
    geometry="${2}x${3}"
    
    echo "${filesize}${s}${geometry}${s}${filename}"

    « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

  • # Adopté

    Posté par  . Évalué à 2.

    Chargement très rapide avec mon vieux portable et Manjaro Xfce, mais la navigation au clavier ou à la souris pour passer d'une image à une autre au sein d'un dossier ne marche pas chez moi.

    arnauld

    • [^] # Re: Adopté

      Posté par  (site web personnel) . Évalué à 4.

      Est-ce que tu as tenté d'ouvrir les dossiers directement avec SXIV ? Contrairement à d'autre visualisateur d'image, SXIV ouvre seulement les dossiers et les images qu'on lui passe en paramètre. Cette section du wiki de Arch montre quelques solutions : Naviguer dans un dossier après avoir ouvert qu'une seule image.

      Si tu ne vois pas d'autre image lorsque tu appuis sur Enter c'est peut-être cela ton problème. Sinon, si c'est vraiment les touches n et p ou barre d'espace et backspace seulement qui ne fonctionne pas, je ne sais pas trop de où est-ce que peut provenir le problème.

  • # Nostalgie

    Posté par  (site web personnel, Mastodon) . Évalué à 4.

    La lecture de cette dépêche m'a fait penser à XV que les plus jeunes ici ne connaissent probablement pas, ça m'a subitement mis un coup de vieux !

    https://www.funix.org mettez un manchot dans votre PC

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.