Script – afficher les donnees Exif sur Thunar

Afficher les métadonnées EXIF avec un clic droit sur Thunar

Ha, il y a longtemps que je n’ai pas écrit sur le sujet !

Sur les PC sous un environnement Gnome avec le gestionnaire de fichiers Nautilus j’applique la méthode décrite dans mon l’article « Afficher les métadonnées exif avec un clic droit sur Nautilus » écrit en 2015 (il y a une légère modification sur le script d’aujourd’hui, mais les deux fonctionnent).

Il se trouve que le PC que j’utilise le plus souvent ces derniers temps est sous Manjaro avec un environnement XFCE et donc Thunar comme gestionnaire de fichiers.

Pour infos

Il existe de nombreuses similitudes avec l’article mentionné plus haut. La principale différence réside dans l’emplacement du script ainsi qu’une procédure spécifique à effectuer sous Thunar, qui ne s’applique pas à Nautilus.
Il est possible de remplacer Zenity par Yad, et Exiv2 par Exiftool, mais je pense que Yad nécessite certainement des critères supplémentaires (je n’ai pas cherché). Bref, il existe plusieurs façons de faire, mais comme je suis de nature plutôt fainéante, je préfère me baser sur des solutions déjà en place et qui fonctionnent chez moi depuis 2015.

Mais voyons la procédure

Tu auras besoin de Zenity et de Exiv2 (Chez-moi, Exiv2 était déjà installé). Pour installer les deux :
Manjaro :

sudo pacman -S exiv2 zenity

Débian et dérivés

sudo apt install exiv2 zenity

Sous XFCE il n’y a pas de ./local/thunar, on va donc créer un répertoire sous .local, je l’ai appelé bin, vous pouvez le nommer scripts ou autres, mais il faudra en tenir compte pour les chemins.

Créer un répertoire bin

mkdir -p ~/.local/bin

On va écrire le script, j’utilise vim, mais vous pouvez utiliser nano ou autre éditeur.

vim ~/.local/bin/exif.sh

et on y écrit :

#!/bin/bash

# métadonnées exif avec exiv2

zenity --info --title="Métadonnées EXIF" --text="$(exiv2 "$1")"

Un peu de pédagogie

#!/bin/bash est un préfixe au nom de l’exécutable qui va effectivement traiter les lignes qui le suivent. On l’appelle « shebang » et doit être la première ligne du script. (il s’agit d’un copié/collé de mon article « Initiation au Shell – Boucle (for, do, done » écrit en 2015).

zenity --info --title="Métadonnées EXIF" --text="$(exiv2 "$1")"

zenity affiche une boite de dialogue d’info (–info), titre optionnel (–title) et enfin avec (–text) le contenu de la sortie de la commande exiv2, les métadonnées exif de $1, le premier argument passé au script, c’est-à-dire le chemin du fichier image.

Il faut rendre exécutable le script

chmod +x ~/.local/bin/exif.sh

– Pas certain que ma pédagogie fasse mouche
– Ouah ah ah… Et c’est toi Sima qui donne des cours d’initiation au Bash à Root66.Net ? Hé ben, ils sont pas aidés.
– Ho ça va, ta gueu… Tais-toi ! Bon, je continue.

Voyons maintenant comment configurer Thunar

On ouvre le gestionnaire de fichier Thunar puis on va dans :
Édition → Configurer les actions personnalisées…

Une boite de dialogue s’ouvre → clique sur le +

Une autre boite de dialogue s’ouvre sur l’onglet « Base »
On met le nom de son choix.
On peut mettre une description.
Dans commande on met le chemin absolu (en entier) vers l’exécutable avec le paramètre %f

Ensuite on va dans l’onglet « Conditions d’apparition » et on coche la case « Fichiers image »

Puis on valide
On voit que l’action « EXIF » a été ajouté. Tu peux fermer.

Sur Thunar vas sur une image et fais un clic droit, puis descend sur « EXIF »

Clic sur « EXIF » et une fenêtre s’ouvre avec les métadonnées Exif.


Si ça ne fonctionne pas, ferme et relance Thunar pour être certain que les modifications ont bien été prises en compte par Thunar.

Des idées pour améliorer ce petit script ou une autre approche à proposer ? Lâche-toi en commentaires.

Le billet « Script – afficher les données Exif sur Thunar » est apparu en premier sur le blog de Sima78.

Tuto – Diminuer la dimension des images par lot en ligne de commande

Tuto – Diminuer la dimension des images par lot en ligne de commande – Bash

Si comme moi vous devez envoyer un tas d’images via mail et que vos images pèsent trop lourd, ou que vous devez les publier et toujours ce problème de poids…

Voilà comment je procède pour leur faire un régime en ligne de commande bash.
Je le mets ici, si cela peut vous servir, tant mieux, moi ça me permet d’éviter de me recreuser la tête au besoin.

Pour cela nous allons utiliser deux commandes fournis dans le paquet imagemagick, « identify » et  « mogrify » et la commande « awk » qui comme la commande « sed » est une commande aussi très puissante et permet de faire énormément de choses car elles intègrent beaucoup de fonctions mais on ne rentra pas dans le détail de awk ici.

Imagemagick est un logiciel très puissant qui permet de nombreuses manipulations d’images en ligne de commande tel que rotation, conversion et bien plus.

Il faut donc avant tout installe imagemagick

sudo apt install imagemagick

Puis pour redimensionner par lot :

$ identify *.jpg | awk '{split($3, TAB, "x"); W = TAB[1]; H = TAB[2]; if(W > 1200){system("mogrify -resize 1200x "$1)} if (H > 1200){system("mogrify -resize x1200 "$1)}}'

identify *.jpg → identifie les fichiers se terminant par jpg et passe à la commande axk.
awk → pour faire simple, divise la chaîne en un tableau qui va permettre la comparaison.
mogrify → permet ici de redimensionner, elle a plein d’autres possibilités.

Bref : je redimensionne à 1200 maxi les fichiers jpg, pour la hauteur et la largeur.

Pour info : Extrait du man awk concernant « split »
split(s, a [, r [, seps] ])
Split the string s into the array a and the separators array seps on the regular expression r, and return the number of fields. If r is omitted, FS is used instead. The arrays a and seps are cleared first. seps[i] is the field separator matched by r between a[i] and a[i+1]. If r is a single space, then leading whitespace in s goes into the extra array element seps[0] and trailing whitespace goes into the extra array element seps[n], where n is the return value of split(s, a, r, seps). Splitting behaves identically to field splitting, described above. In particular, if r is a single-character string, that string acts as the separator, even if it happens to be a regular expression metacharacter.

Le billet Tuto – Diminuer la dimension des images par lot en ligne de commande est apparu en premier sur le blog de Sima78.

Tuto – Sur quel dev se trouve votre webcam

Tuto – Sur quel « dev » se trouve votre webcam

Et tester la webcam en ligne de commande.

Un petit tuto pense bête pour savoir sur quel « dev » se trouve votre webcam et la tester en migne de commande.

Système d’exploitation Linux, PC fixe avec une seule webcam connectée via USB.

Commande passé depuis un terminal en mode utilisateur « user »

Savoir si la webcam est reconnue sur l’un des ports usb.

$ lsusb
(...)
Bus 001 Device 004: ID 1d6c:0103 HD WEBCAM HD WEBCAM
(...)

Sur toute une série de lignes il y en a une où apparaît clairement la webcam, elle est donc reconnue.

Sur quel « /dev » elle se trouve :

$ ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 mars   4 10:50 /dev/video0
crw-rw----+ 1 root video 81, 1 mars   4 10:50 /dev/video1

J’en trouve deux alors que je n’ai qu’une webcam ? J’en déduis que peut-être que ma carte mère est prévue pour être installée sur d’autres machines avec webcam intègrée, ou que je peux en installer deux sur ports usb… J’avoue ne pas avoir la réponse précise, juste déduction.

Pour tester la webcam en ligne de commande on va utiliser MPlayer.

Je n’ai rien inventé tout est dans le très riche « man »

$ man mplayer

Nous avons donc les « device » possibles « /dev/video0 » ou « /dev/video1 », reste à trouver le bon « driver », pour cela :

$ mplayer tv:// -tv driver=help
(...)
Available drivers:
 v4l2    Video 4 Linux 2 input (first try, more to come ;-))

On a le driver  v4l2

Faisons donc un premier test :

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0

Normalement vous devez vous voir, si ça ne fonctionne pas tester donc avec /dev/video1
Il suffit de taper Quit pour quitter.

Vous pouvez aussi spécifier la taille de votre fenêtre mplayer. Par défaut c’est 640×480, on va spécifier une taille plus grande.

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=1280:height=800

Le billet Tuto – Sur quel « dev » se trouve votre webcam est apparu en premier sur le blog de Sima78.

Tuto – Convertir un fichier webm en gif avec ffmpeg

Logo ffmpeg, avr. 2022
Logo ffmpeg

Tuto – Convertir un fichier webm en gif avec ffmpeg

Petit tuto pense bête d’une ligne. J’avais besoin à tout prix d’un fichier gif depuis un fichier webm.
Attention, ce n’est pas forcément judicieux car là la conversion le fichier gif aura une moins bonne définition et va prendre du poids ; -)

La ligne de commande

ffmpeg -i source.webm -pix_fmt rgb24 destination.gif

Ce billet fait écho à celui de Tutox sur comment « Réduire le poids d’une vidéo avant de la publier sur le web » et que j’utilise assez souvent.

Le billet Tuto – Convertir un fichier webm en gif avec ffmpeg est apparu en premier chez Sima78.

Tuto – Erreur cron – root: not found

Tuto – Erreur cron – root: not found

Automatisation des tâches avec crontab

Voilà un message d’erreur qui arrive lorsque l’utilisateur root n’a pas de Shell.

# cat /var/log/backup-rdiff

/bin/sh: 1: root: not found

/bin/sh: 1: root: not found

Comment y remédier ?
Plutôt que de refaire un tutoriel sur ce billet, je vais compléter un billet existant qui traite aussi bien de Rdiff-backup, les tâches Cron et MySqlDump.

Donc pour la suite allez sur le billet :

Sauvegardes au quotidien – Rdiff-Backup et MySqlDump

Le billet Tuto – Erreur cron – root: not found sur le blog de Sima78.

Tuto – Geneweb – Raspberry – https – YunoHost

logo GRY, oct. 2022
logo GRY

Tuto – Geneweb – Raspberry – https – YunoHost

Sur ce Tuto je vais tenter de vous expliquer comment avoir un accès https sur Geneweb en mode pur service et non en page web sur « /var/www » et sans script cgi-bin.

Je vais également vous expliquer les raisons de mes choix, le matériel utilisé, les problèmes rencontrés et solutions trouvées.

Alors pas un tuto traditionnel, linéaire où l’on y fait des copiés/collés sans réfléchir, mais mon objectif et mes doutes, interrogations avant de trouver la solution. Démontrer que tout n’est pas toujours limpide même si la solution est finalement plus simple mais autrement que nous l’avions pensé. Et que si ce tuto ne fonctionne pas in-texto pour vous, la solution existe certainement.

Du coup Sima tu ne fais pas vraiment pro !
Je ne suis pas pro mais éternel amateur dont je revendique le statut. Comme aux jeux d’échecs, on apprend beaucoup plus en analysant nos déboires que nos victoires !
Ouah sima en plus t’es philosophe !
Ouais !

  1. Matériels
  2. Explication de mes choix
  3. Rapsberry
  4. Geneweb
  5. Défi https et problème rencontrée.
  6. Appel à un ami !
  7. La solution via Yunohost
  8. Pour conclure

1 Matériels

Rapsberry pi3 avec sd noobs et disque dur externe ssd pour les sauvegardes.
– Serveur avec couche YunoHost

Retour haut de page

2 Explication de mes choix

Je souhaitais que Geneweb soit séparé pour plusieurs raisons.

  • a – Des craintes dont certaines pas forcément fondées puisque pas testées mais je ne souhaitais pas prendre le risque. Mettre Geneweb sur le serveur sous Yunohost en mode service avec stunnel4 pour le https, seule solution que j’avais trouvé à une époque. Pas envie non plus de le mettre dans « /var/www/ » avec un cgi-bin qui m’aurait obligé à apporter des modifications que peut-être Yunohost aurait viré lors des mises à jours et aussi pour ne pas perturber la cohérence du serveur sous Yunohost.
  • b – Laisser la possibilité de donner la main en mode administrateur à ceux qui souhaiteraient parmi les membres de cette généalogie… Aller au-delà de compléter les informations généalogiques et pourquoi pas gérer la totalité en mode admin. On se doute que je ne souhaite pas donner des droits administrateurs sur mon serveur perso sous Yunohost. D’où l’idée de le séparer.
  • c – Je n’avais pas envie de gérer un ième serveur web avec Apache ou Nginx et le tutti-conti. Quelque chose qui soit le plus simple possible allant à l’essentiel.

Retour haut de page

3 Rapsberry

Un Rapsberry oppérationel, je ne vais pas faire un tuto sur le sujet pour peu que vous ayez une carte sd Noobs, vous avez juste à vous laisser guider, il existe plein de tutos sur le web.

Penser à changer le mot de passe par défaut, activer SSH, changer le numéro de port, mettre une IP fixe (moi je l’ai fait depuis ma freebox où j’attribue une ip au Raspberry). Pas d’Apache ou Nginx, ni base de données, on reste minimaliste.

Retour haut de page

4 Geneweb

Installer en mode service avec un simple apt. Du coup ce sera la version des dépôts, la version Geneweb 6.08 même s’il existe la version 7 sur un GitHub.

On peut juste faire :

apt install geneweb

et configurer certains fichiers à la main.

Le plus simple est de tout installer, ça reste très léger :

apt install geneweb geneweb-gui gwsetup gwtp

En allant sur localhost:2317 vous accédez à geneweb (vide).
En allant sur localhost:2316 vous accédez à gwsetup qui vous permettra de créer une base généalogique ou d’en charger une existante (ce que j’ai fait).

Vous retrouverez tout (l’essentiel) dans « /var/lib/geneweb/ »

J’ai modifié à la main le fichier ma_base.gwf car j’utilise des fonctions pas prévues dans l’outil gwsetup.

gwsetup vous propose de mettre un « Ami » (accès à tout l’arbre généalogique sans droit de modification) et un « Magicien » (droit de modification de l’arbre généalogique.
Or moi j’ai un fichier (file-friends.auth) où se trouvent tous les « Amis » et un autre (file-wizards.auth) où se trouvent tous les « Magiciens ». Ces fichiers se créent à la main, au fil du temps où vous ajoutez ou supprimez des « Amis » et/ou « Magiciens » et vous nommez vos fichiers comme vous voulez et les mettre dans « /var/lib/geneweb/ »

Il suffit dans « /var/lib/geneweb/ma_base.gwf » de mettre en commentaire deux lignes et en rajouter deux autres :

# friend_passwd=
# wizard_passwd=
friend_passwd_file=file-friends.auth
wizard_passwd_file=file-wizards.auth

Tout fonctionne bien en localhost:2317 et depuis un pc du réseau http://IpduRapsberry:2317 soit du genre : http://192.168.xx.xx:2317

Faire une redirection sur la freebox pour que tout ce qui vient sur le port 2317 arrive bien sur le Rapsberry et non sur l’autre serveur.

Test extérieur ça fonctionne mais en http et pas en https

Défi : que ça passe en https. Problème, difficulté rencontrée.

Retour haut de page

5 Défi https et problème rencontrée.

Donc dans mon idée il y avait

Sauf qu’à l’étape « a » ça se passe mal. « certbot » (qui permet de générer des certificats LetsEncrypt) me crie dessus me disant qu’il ne s’agit pas d’un serveur web qu’il n’y a ni Apache ou Nginx ou autre et que j’aille me faire foutre voir ailleurs, je n’aurais pas de certificats LetsEncrypt.

Là je reste interdit, que faire ? Des certificats auto-signés qui afficheraient des messages d’alerte sur les navigateurs ? Pas top…

Un petit tour chez mon fournisseur de nom de domaine (Gandi) et une solution possible… Je peux générer mes propres certificats et les soumettre à leur signature, solution possible, payante, sans certitude absolue mais une bonne piste…

Que faire ? Appel à un ami ?

Retour haut de page

6 Appel à un ami !

Quand on est confronté à un problème, on en fait parfois une fixette comme une poule ou un coq qui découvre un cure-dents.

Poule, oct. 2022
Coq

Appeler un ami c’est l’espoir d’avoir une solution, ou des pistes et au pire ça fait du bien de chialer sur l’épaule d’un autre.

La victime fût Benzo, Le pauvre… Pourquoi lui ? Déjà on s’entend bien, c’est un pro, et je sais qu’il connaît bien Yunohost et qu’il a des services en parallèle…

Il ne connaît pas Geneweb mais à bien identifié mon problème, pas de solution immédiate, mais plein d’échanges d’idées : (…) si tu crées un domaine sur yunohost et fait un script pour renvoyer les certificats, écrire une redirection (…).

Ça part dans tous les sens, ça fuse sans solution concrète… Mais, mais, mais ça fait du bien et de ma vision d’une poule face au cure-dents, j’ai une vision bien plus panoramique.

Dès qu’on raccroche, j’ai le déclic… domaine Yunohost, redirection !

Retour haut de page

7 La solution via Yunohost

Le domaine (sous domaine) YunoHost, j’en ai un inutilisé genre mon-arbre.MonNomDeDomaine.fr avec les certificats LestEncrypt générés et renouvelé automatiquement.

Si je ne l’avais pas ça se crée au simple clique sous Yunohost. Plus qu’à compléter deux lignes chez le fournisseur de nom de domaine, si vous ne savez pas quoi mettre, YunoHost vous le dit !

Bref, nom de domaine fait !

Je me souviens qu’il existe une app sous Yunohost pour les redirections.
J’installe sous Yunohost « Redirect » et le configure comme suit :

Redirect, oct. 2022
Redirect

* Après vérification, c’est juste le / avec rien derrière.

Si vous mettez « /votre_base »    « votre base » étant une base généalogique existante ça fonctionne et vous arrivez directement sur la base. Le souci est que si vous avez plusieurs bases, ou souhaitez en créer d’autre, vous n’arriverez que sur la base que vous aurez mise derrière le « / ».

Il n’est pas possible de vérifier la configuration après installation de Redirect, ni la modifier, il faut faire « Supprimer » et installer de nouveau, comme je l’ai dit, ça prend moins d’une minute.

Lors de vos tests geneweb depuis le navigateur, pensez à bien vider votre cache avant chaque tentative, pas un simple rafraîchissement de la fenêtre, j’ai galéré un moment à cause de cela.

Dans « Emplacement de destination » mettez l’IP interne d’accès à votre geneweb, donc sur le port 2317 et en http, soit http://192.168.xx.xx:2317

Dans « Type de redirection » 4 choix : choisissez Proxy, invisible accessible à tout le monde comme sur l’image.
Bref vous arriverez directement sur la page d’accueil en tapant sur votre navigateur :
https://nomsousdomaine.nomdomaine.fr

Le mieux est d’arriver sur la page d’accueil et taper le nom de la base généalogique sur laquelle on souhaite aller:

page accueil des bases geneweb, oct. 2022
page accueil des bases geneweb

page accueil des bases geneweb

Retour haut de page

8 Pour conclure

Un Raspberry avec Raspbian sur lequel on installe Geneweb et rien de plus.

Sur le serveur YunoHost créer un domaine et générer les certificats LetsEncrypt (chez votre fournisseur de nom de domaine apporter les précisions « AAAA » et « CNAME » à votre nouvelle création (si vous ne savez pas quoi mettre, suivez les conseils YunoHost, vous aurez juste à faire des copiés/collés). Installer l’application « Redirect », la configurer… Et c’est terminé.

Un Grand merci et bravo aux développeurs et contributeurs de Yunohost et de ses applications.

Je pense donc qu’il est possible d’installer geneweb avec simple « apt » sur un serveur Yunohost avec la redirection qui va bien… Mais ça je n’ai pas testé.

Les utilisateurs pourrons se connecter en https sur le domaine que vous aurez créé genre : hppts://geneweb.nom_domane.fr

Sur votre Yunohost, ne vous connectez pas directement en cliquant sur la brique, vous ne pourrez pas vous connecter en  « Ami » ou « Magicien » car je pensez qu’il est attendu un identifiant enregistré sous Yunohost.

Hein sima, tout ce baratin pour une si courte conclusion !
Hé oui, c’est plus un retour d’expérience qu’un tutoriel !

J’envisage écrire un autre tutoriel, plus technique, factuel, sans y raconter ma vie pour le site officiel Geneweb

Le billet Tuto – Geneweb – Raspberry – https – YunoHost est apparu en premier sur le blog de Sima78.

Retour haut de page

Rando – Matos – Chargeur smartphone solaire

chargeur solaire, juin 2022
chargeur solaire

Rando – Matos – Fabriquer un chargeur smartphone solaire.

Lors des randonnées nous nous entourons de plus en plus d’électronique et la question qui se pose est comment maintenir leur charge.

Je me suis donc lancé dans la fabrication d’un chargeur solaire, qui soit le plus léger possible et portable.

Avant tout un remerciement à Avril qui m’a fait pensé aux diodes, si elle passe par là, elle se reconnaîtra, et un merci à mon frère qui m’a fourni les diodes et puisqu’il était là, nous l’avons fait ensemble.

Dans cet article:

  • Matériels.
  • Conception.
  • Réajustement.
  • Retour d’expérience.

Poids une fois terminé : 223 g

Matériels

  • 4 Cellules solaires 12 V 1.5 W 1.5 – 2,62 € pièce.
  • 1 Module d’alimentation boost réglable DC-DC, carte de batterie USB 0.9V ~ 5V litre 5V 600MA 1A 1,5 a 3A, module de sortie USB – 0,20 € pièce.
  • 4 diodes anti-retour (diode Schottky), j’ai pris les plus petites que j’ai trouvés.
  • Fil électrique.
  • De la gaine thermorétractable.
  • Ruban nylon, attaches.
  • Fer à souder, étain à souder.
Module USB, juin 2022
Module USB
Panneaux solaires, juin 2022
Panneaux solaires
Diodes, juin 2022
Diodes

 

Conception

Il suffit de relier les panneaux en parallèle, c’est-à-dire les positifs avec les positifs et les négatifs avec les négatifs. Ne pas oublier de mettre les diodes anti-retour sue le positif de chaque panneau.

Si vous ne mettez pas de diode, ça fonctionnera tout de même, la diode sert de sécurité, dans le cas où un panneau lâche, cela évite que le courant repart sur ce panneau plutôt que sur le module d’alimentation et qu’il n’y ait plus assez de courant pour la charge.

Ensuite il ne reste plus qu’à brancher les deux derniers fils sur le module d’alimentation (+ sur + et – sur -).

N’oubliez pas avant de souder vos fils de passer votre gaine thermo.

Pour les sangles, je les ai achetées au mètre (2,20m) ainsi que les attaches et fait coudre chez le cordonnier. Ensuite il n’y a plus que les coller sur les panneaux. Concernant le choix de la colle j’hésitais, Avril et mon frère m’ont conseillé la néoprène, et en effet c’est ce qui tient le mieux.

Cela permet de l’accrocher au dos du sac à dos.

panneaux reliés avec diodes sur le +, juin 2022
panneaux reliés avec diodes sur le +
Panneaux reliés au module USB, juin 2022
Panneaux reliés au module USB
chargeur _ test, juin 2022
chargeur – test
collage des sangles, juin 2022
collage des sangles
chargeur terminé, juin 2022
chargeur terminé

 

Réajustement

Lors des tests sans la gaîne thermo sur le module de charge usb, tout fonctionnait très bien, une fois la gaîne posée sur le module, plus de charge ??? Cherchant une cause à effet, j’en ai déduit que le module chauffait peut-être de trop sous la gaîne… j’ai donc enlevé la gaîne thermo autout du module et fabriqué un petit boîtier que j’ai perforé pour la ventilation et ça a fonctionné de nouveau.

modif - boite ventilé pour module USB, juin 2022
modif – boite ventilé pour module USB

 

Retour d’expérience.

La charge est lente et dans les meilleures conditions, les panneaux plein soleil, il faut « 3h40 » pour recharger mon smartphone S7 à 50 %. ça permet de maintenir la charge ou éviter qu’il se décharge trop vite pendant mes marches, sachant que lorsque l’on marche, on est pas toujours bien orienté.

Si c’était à refaire j’en prendrais des panneaux un peu plus puissants, en 2W, ils sont à peine plus grands.

Le billet Rando – Matos – Chargeur smartphone solaire est apparu en premier chez Sima78.