#1 Le 09/09/2021, à 13:43
- Hizoka

[Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Bonjour,
suite à la demande de https://forum.ubuntu-fr.org/viewtopic.php?id=2066741, je me suis repenché sur les possibilités offertes pas KDE et les service-menus.
Je vais donc vous faire un retour d'expérience ![]()
Mes fichiers :
J'ai créé un dépôt ppa avec tous mes services.
Il également possible de télécharger les sources pour récupérer les scripts et les desktop.
Je mets également à disposition un zip qui contient tout.
PPA :
Installation du ppa et mise à jour des paquets.
sudo add-apt-repository ppa:hizo/service-menusIl ne reste plus qu'à installer les paquets voulus.
Sources :
Elles sont toutes dispo sur le ppa : https://launchpad.net/~hizo/+archive/ub … /+packages
De même, il est possible de télécharger les fichiers deb directement.
Fichier zip :
Le fichier zip contient tous les scripts et les fichiers desktop.
Il a également un fichier install qui copiera tous les fichiers aux bons emplacements locaux (n'hésitez pas à regarder son code).
Seul le binaire keneric doit être déplacé en sudo.
Infos générales :
Les scripts doivent être dans un dossier du PATH :
echo "$PATH"Les fichiers desktop doivent être dans un dossier de config kde5 :
kf5-config --path servicesTous les services sont regroupés dans un menu appelé Hizo Service Menus.
Pour connaitre le mimetype d'un élément (important pour la création des fichiers desktop).
mimetype ELEMENTTous mes scripts sont bien commentés, alors faites vous plaisir et jetez-y un oeil ![]()
Description des paquets et fichiers :
- keneric :
Ce sont les sources de Keneric sur le ppa.
Et c'est le binaire dans le fichier zip.
Il est possible de compiler depuis les sources sur lesquelles je me suis basées : https://github.com/yodor/keneric
Le fichier keneric.so doit se trouver dans le dossier "/usr/lib/x86_64-linux-gnu/qt5/plugins/"
Keneric est une idée géniale, permette de gérer les vignettes via un script (bash, python...).
Ça permet donc beaucoup de choses sans compétences poussées.
Voici son fonctionnement :
- Dolphin fait appelle à Keneric (via un desktop de type ThumbCreator).
- Keneric exécute le script bash nommé stripPicture (qui se trouve dans un dossier du PATH).
- stripPicture fait tout le traitement et en ressort une image.
- Keneric récupère l'image de stripPicture.
- Dolphin affiche la vignette.
Exemple d'un fichier desktop type :
[Desktop Entry]
Type=Service
# Nom qui sera affiché dans le menu des vignettes de Dolphin
Name=Dossier à une seule vignette (Keneric)
# Type spécifique aux vignettes
X-KDE-ServiceTypes=ThumbCreator
# Concerne tous les dossiers
MimeType=inode/directory;
# Utilisation de la libraire Keneric
X-KDE-Library=keneric
# Autorise la mise en cache des vignettes
CacheThumbnail=trueCode de base du script stripPicture :
#!/bin/bash
# Utilisation : stripPicture FullName mime exportPicture
# Nom du fichier pour lequel on veut une vignette
FullName="$1"
# Mimetype du fichier
MimeType="$2"
# URL de l'image attendue par Keneric
ExportPicture="$3"
# Fonction permettant de déterminer le nom final de la vignette qui diffère de ExportPicture
# Pas d'obligation de l'utiliser
function url_encode
{
# $1 : url du fichier sans file://
# Si aucune url donnée
[[ -z "${1}" ]] && return 1
local LANG=C i Char Thumb
# Traite les caractères de l'url
for (( i = 0; i < ${#1}; i++ ))
do
Char="${1:i:1}"
# Si c'est un caractère à ne pas modifier
if [[ "${Char}" == [[:alnum:]-.,_~/:\(\)\&\!@\[\]] ]]
then
Thumb+="${Char}"
# S'il faut encoder le caractère
else
Thumb+=$(printf '%%%02X' "'${Char}")
fi
done
# Encodage de l'url
Thumb="$(echo -n "file://${Thumb}" | md5sum)"
# Renvoie l'url encodée
echo "${Thumb%%[[:space:]]*}"
return 0
}
# En fonction du type des fichiers
case "${MimeType}" in
XXX) ...
esac - hizo-keneric :
Dépendances : keneric imagemagick jq mkvtoolnix
Facultatives : ffmpegthumbnailer rsvg-convert
Ajoute 2 lignes dans les aperçus de Dolphin.
Pensez à décocher l'aperçu des dossiers de base.
Les dossiers utiliseront la 1ere image de type (folder|front|cover|icon\).(jpg|png|jpeg|webp) comme icône au dessus de celle par défaut.
Si le fichier s'appelle icon.png, je ne réalise pas de diminution du nombre de couleur ni d'encadré autour de l'image, je l'applique directement afin qu'elle garde sa transparence.
Ce qui donne :
Pour les vignettes des fichiers MKV, je recherche les images attachées, je privilégie les fichiers s’appelant (cover|front|dvd) sinon, j'affiche la 1ere image trouvée.
Dans le cas où il n'y a pas d'image, on utilise ffmepgthumbnailers et si pas présent, on ne fait rien.
Avec pour résultat :
- hizo-service-menus :
Contient le script de base nécessaire au bon fonctionnement des autres qui doivent se trouver au même emplacement que ce 1er.
Le fichier hizo-service-menus doit être exécutable.
- hizo-mkv :
Dépendances : hizo-service-menus kdialog mkvtoolnix imagemagick qdbus jq
Service : MKV : Utiliser une image attachée comme vignette
Permet de choisir quelle image, interne au fichier MKV, utiliser comme vignette.
Pour cela, le script extrait les images attachées au fichier MKV et les affiches dans une fenêtre.
Montant mon dossier .cache (qui contient les vignettes) en ram, je perds son contenu à chaque reboot, de ce fait, j'ai ajouté l'utilisation d'un fichier ${HOME}/.config/HizoServiceMenus.cfg qui peut garder en mémoire les choix.
Le fichier n'est créé que si le dossier .cache est monté en ram.
Service : MKV : Supprimer les fichiers attachés
Menu permettant de supprimer tous les fichiers attachés à un fichier MKV avec demande de confirmation.
- hizo-remove-thumbnails :
Dépendances : hizo-service-menus
Menu supprimant les vignettes des éléments concernés du dossier .cache/thumbnails.
- hizo-url-copy :
Dépendances : hizo-service-menus qdbus|xlcip
Menu envoyant dans le presse papier les adresses des éléments sélectionnés.
Contrairement à un copié puis un collé dans un fichier texte, les adresses ne commencent pas par file://.
- hizo-tmdb :
Dépendances : hizo-service-menus kdialog qdbus jq curl
Menu récupérant les posters des films depuis le site The Movie Data Base.
Plus de détails en message 7.
Je continuerai de poster si j'en crée d'autres ![]()
Sites inintéressants :
la doc : https://doc.ubuntu-fr.org/service_menus
https://www.kubuntuforums.net/showthrea … -Previews/ (à partir des pages 2 ou 3)
https://forum.kde.org/viewtopic.php?f=224&t=156241
https://api.kde.org/frameworks/kio/html … eator.html
https://github.com/yodor/keneric
N’hésitez pas à me faire des retours et à partager vos service-menus !
Dernière modification par Hizoka (Le 23/09/2021, à 16:15)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#2 Le 22/09/2021, à 15:44
- Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Refonte complète du 1er message.
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#3 Le 22/09/2021, à 20:05
- gibkristen

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Salut
Le lien pour le fichier .zip n'est pas bon https://hizo.fr/linux/hizo-service-menu … -menus.zio
Merci pour ton boulot ![]()
11 septembre 2008, je découvre et adopte GNU/Linux avec Ubuntu 8.04 LTS ("The Hardy Heron")
Actuellement avec Archlinux XFCE4 et Debian Bullseye XFCE4
Hors ligne
#4 Le 22/09/2021, à 20:11
- Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Oups, c'est .zip pas .zio ![]()
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#5 Le 22/09/2021, à 20:28
- abecidofugy

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Ça m’a l’air cool. Je pense que ça passe aussi pour KDE neon ?
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
Hors ligne
#6 Le 22/09/2021, à 20:39
- Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Ouais tout à fait, je suis sous Neon ![]()
EDIT : Je finalise un système qui télécharge toutes les affiches de films depuis TMDB ![]()
Dernière modification par Hizoka (Le 22/09/2021, à 22:50)
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#7 Le 23/09/2021, à 16:13
- Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin
Je viens de faire quelques mini mises à jour.
Et surtout, je viens d'intégrer le service menu : hizo-tmdb - Vidéos : Télécharger les posters depuis le site TMDB
Son principe est de rechercher sur le super site The Movie Data Base les posters de films.
J'ai mis à jour la 1ere page, le zip est OK, le dépôt va mettre un peu de temps à créer tous les paquets.
Présentation :
Lors du 1er lancement, il y a besoin de quelques configs :
Le plus important est le jeton d'accès (token) :
Sa validité est testé :
Les langues disponibles vont être recherchées :
Il faut choisir les langues des posters qu'on veut, perso je prends : aucune, anglais, français et japonnais :
Et il ne reste plus qu'à définir la taille max des images affichées lors du choix du film :
Attention, ça définit le nombre de film affiché par la suite (plus les images sont grandes, moins on peut en afficher).
On en arrive à la partie la plus chouette ![]()
Il demande la liste des films à chercher, de base il reprend les noms des fichiers :
Dans cet exemple, je sais ce que je veux, du coup cela fera sauter l'étape de la sélection des films (si plusieurs films ne portent pas ce nom).
Ici, je ne suis pas trop sûr, du coup, j'utilise des * :
Du coup, il est pratiquement sûr que plusieurs films correspondent à la recherche.
La recherche se fait plus ou moins rapidement (comme toutes les actions avec TMDB) et il affiche les films correspondant :
Cette fenêtre n'est pas affichée s'il n'y a qu'un seul résultat.
Le téléchargement des posters se fait, cela peut aller très vite et d'autres fois, il bloque un peu :
Et on a le droit à un petit recap facultatif :
Franchement le résultat est pas mal je trouve.
Y a des fois, ça ne va prendre que 10s pour télécharger 50 images et d'autres fois il faudra 1 min pour 10 images.
C'est très dépendant de l'api de TMDB.
Malheureusement, je me trouvé bloqué par Kdialog :
- Le bug qui ne met pas d'icone avec la progressbar
- L'impossibilité d'afficher plus d'infos.
- L'impossibilité de rassembler les fenêtres.
- L'impossibilité d'afficher plus de pochette sans que la fenêtre ne devienne inexploitable.
...
Tout ça va surement me pousser à repartir faire mumuse en pyqt et essayé de pondre un vrai petit soft... quand j'aurais un peu plus de temps ![]()
Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne

